[RESOLU] Problème de condition

Eléphanteau du PHP | 39 Messages

30 avr. 2013, 10:52

Je pense que tu n'as pas compris...

Le probleme ne vient pas de la condition ou je rentre SEULEMENT un nom de rapporteur ?

Cela marche ca me renvoit le bon tableau ?

Le probleme reside dans le fait que en rentrant SEULEMENT un nom de rapporteur ca me renvoit le bon tableau MAIS AUSSI le tableau ayant la condition :
if ((empty($_POST['nomClient'])) and (empty($_POST['idFiche'])) and (isset($_POST['dateReclamation'])) and (isset($_POST['nomRapporteur'])))

ALORS QUE JE NE RENTRE AUCUNE DATE...

Eléphanteau du PHP | 39 Messages

30 avr. 2013, 10:53

Concrétement, en rentrant seulement un nom de rapporteur, cela me renvoit 2 tableaux identiques :
le premier correspondant à la condition : if ((empty($_POST['nomClient'])) and (empty($_POST['idFiche'])) and (isset($_POST['dateReclamation'])) and (isset($_POST['nomRapporteur'])))
le deuxieme correpondant à la condition : if ((isset($_POST['nomRapporteur'])) and (empty($_POST['nomClient'])) and (empty($_POST['idFiche'])) and (empty($_POST['dateReclamation'])))


Le probleme c'est que POURQUOI ca rentre dans le premier IF sachant que je ne saisis aucune date...

Mammouth du PHP | 619 Messages

30 avr. 2013, 11:00

tu lui demande si date existe c'est bien le cas explique moi se que doivent faire tes deux conditions en claire et je vais te faire un truc

Eléphanteau du PHP | 39 Messages

30 avr. 2013, 11:07

Concrétement, en rentrant seulement un nom de rapporteur je veux seulement l'affichage d'un seul tableau :
condition : if ((isset($_POST['nomRapporteur'])) and (empty($_POST['nomClient'])) and (empty($_POST['idFiche'])) and (empty($_POST['dateReclamation'])))

Si l'on remplit uniquement le nom du rapporteur : on affiche le tableau avec la bonne requete et C'EST TOUT.

Le probleme c'est que en rentrant UNIQUEMENT le nom du rapporteur, ca me renvoit aussi le tableau (identique à celui du dessus dont je te parle) correspondant à la condition:
if ((empty($_POST['nomClient'])) and (empty($_POST['idFiche'])) and (isset($_POST['dateReclamation'])) and (isset($_POST['nomRapporteur'])))



Pour information, quand je rentre LES DEUX CRITERES COMBINES ma requete marche et me renvoi le bon tableau :
quand je rentre un nom de rapporteur et une date ensemble : ca me renvoit le bon tableau avec toutes les fiches de ce rapporteur là à partir de la date saisie.


Ce que je veux c'est que en rentrant UNIQUEMENT le nom du rapporteur je veux seulement le tableau correspondant à la condition
condition : if ((isset($_POST['nomRapporteur'])) and (empty($_POST['nomClient'])) and (empty($_POST['idFiche'])) and (empty($_POST['dateReclamation'])))

Mammouth du PHP | 619 Messages

30 avr. 2013, 11:14

regarde pour moi cela doit marche
<?php
//si $_POST['nomRapporteur'] existe et n'est pas vide mais que le reste et vide
if (isset($_POST['nomRapporteur']) and !empty($_POST['nomRapporteur']) and empty($_POST['nomClient']) and empty($_POST['idFiche']) and empty($_POST['dateReclamation'])){
	
	
}
//si $_POST['nomClient'] existe et n'est pas vide mais que le reste et vide
if(isset($_POST['nomClient']) and !empty($_POST['nomClient']) and empty($_POST['idFiche']) and empty($_POST['dateReclamation']) and empty($_POST['nomRapporteur'])){
	
}

?>

le mieux et meme de mettre elseif

Eléphanteau du PHP | 39 Messages

30 avr. 2013, 11:22

Marche toujours pas...

Je pense que tu n'as toujours pas saisi le problème ?

Le probleme (je pense) vient de la condition ou je combine mes 2 criteres.

Et pas celle ou je fais simplement un test ISSET sur le nom du rapporteur et EMPTY pour le reste.

En gros en rentrant seulement un nom de rapporteur, la condition ci dessous s'execute. Alors qu'elle ne devrait pas puisque je ne saisis aucune date..
if ((empty($_POST['nomClient'])) and (empty($_POST['idFiche'])) and (isset($_POST['dateReclamation'])) and (isset($_POST['nomRapporteur'])))

Mammouth du PHP | 619 Messages

30 avr. 2013, 11:28

Bonjour,

si car tu lui demande si $_POST['dateReclamation'] existe c'est le cas

tu dois confondre les deux

isset demande de verifie si la variable existe comme tu l'envoi depuis le formulaire elle existe
empty demande de verifie si la valeur et vide

si on ajoute un ! devant cela veux dire n'existe pas ou n'est pas vide

donc demande bien a ta condition

je ne veux pas que ce champ sois vide !empty($_POST['nomRapporteur']) mais le reste oui empty($_POST['nomClient']) and empty($_POST['idFiche']) and empty($_POST['dateReclamation'])

Eléphanteau du PHP | 39 Messages

30 avr. 2013, 11:32

Donc comment modifier cette condition(ci-dessous) pour qu'en saisissant UNIQUEMENT un nom de rapporteur, celle ci ne s’exécute pas :
if ((empty($_POST['nomClient'])) and (empty($_POST['idFiche'])) and (isset($_POST['dateReclamation'])) and (isset($_POST['nomRapporteur'])))

Mammouth du PHP | 619 Messages

30 avr. 2013, 11:35

comme cela
if (empty($_POST['nomClient']) and empty($_POST['idFiche']) and empty($_POST['dateReclamation']) and !empty($_POST['nomRapporteur'])){
	
}
$_POST['nomClient'] vide
$_POST['idFiche'] vide
$_POST['dateReclamation'] vide
$_POST['nomRapporteur'] rempli

Eléphanteau du PHP | 39 Messages

30 avr. 2013, 11:40

Oh My God je crois que ça marche....
J'enleve mon print_r mon message aussi. Je te tiens au jus l'ami. MERCI je teste et je te dis !

Eléphanteau du PHP | 39 Messages

30 avr. 2013, 11:47

CA MARCHE ! MERCI INFINIMENT !

Y me reste plus qu'a bidouiller une dernière condition

Car là j'ai :
nomRapporteur
nomRapporteur ET date
dateReclamation

Reste plus qu'a modifier la date de réclamation car en entrant seulement une date j'ai le bon tableau mais aussi le tableau de la condition ou j'ai combiné les 2 criteres.

En gros je fais pareil pour la date

Eléphanteau du PHP | 39 Messages

30 avr. 2013, 11:53

PARFAIT. Ça marche bien !

Je te remercie infiniment Ghost. Depuis vendredi j'ai ce problème. Je me débarrasse enfin !!!

Merci bien ! =D>

Mammouth du PHP | 619 Messages

30 avr. 2013, 12:01

Bonjour,

good news avec plaisir


apres comme ta requette et toujours la meme tu pouvais faire quelque chose comme
if (!empty($_POST['nomClient']) or !empty($_POST['idFiche']) or !empty($_POST['dateReclamation']) and !empty($_POST['nomRapporteur'])){
	$where="where ";	
}
else{
	$where="";	
}

if(isset($_POST['nomRapporteur']) and !empty($_POST['nomRapporteur'])){$where.="nomRapporteur = '".$_POST['nomRapporteur']."' and ";}
if(isset($_POST['nomClient']) and !empty($_POST['nomClient'])){$where.="nomClient = '".$_POST['nomClient']."' and ";}
if(isset($_POST['idFiche']) and !empty($_POST['idFiche'])){$where.="idFiche = '".$_POST['idFiche']."' and ";}
if(isset($_POST['dateReclamation']) and !empty($_POST['dateReclamation'])){$where.="dateReclamation >='".$_POST['dateReclamation']."' and ";}


if(!empty($where)){$where = substr($where, 0, -4);}

$req = $bd->query("SELECT * from RECHERCHE_RC1 $where");

cela fais une requete et autant de possibilité que tu veux