[RESOLU] requete php formulaire de recherche ne fonctionne pas

Eléphanteau du PHP | 19 Messages

16 sept. 2011, 21:30

Bonjour a tous

J'ai formulaire de recherche avec des champs text et une page qui affiche le résultat en fonction du valeur de session et des champs rempli éventuellement

la valeur de session seul ok
un valeur supplémentaire aussi mais lorsque je tente de passer d'autre valeur plus rien

Pouvez vous m'aidez
Merci
<?php mysql_select_db($database_tdl, $tdl);
$query_recherche = sprintf("SELECT * FROM histo WHERE codecli LIKE %s AND recep LIKE %s AND desti LIKE %s AND dept LIKE %s AND ville LIKE %s AND reference LIKE %s", GetSQLValueString($colname_recherche, "text"),GetSQLValueString($colname2_recherche, "text"),GetSQLValueString($colname3_recherche, "text"),GetSQLValueString($colname4_recherche, "text"),GetSQLValueString($colname5_recherche, "text"),GetSQLValueString($colname6_recherche, "text"));
$recherche = mysql_query($query_recherche, $tdl) or die(mysql_error());
$row_recherche = mysql_fetch_assoc($recherche);
$totalRows_recherche = mysql_num_rows($recherche);?>

Eléphanteau du PHP | 19 Messages

18 sept. 2011, 18:20

Personne pour m'aider ?

Mammouth du PHP | 19672 Messages

18 sept. 2011, 22:09

stcrea, il serait appréciable que tu réalises que tu es sur un forum animé exclusivement par des bénévoles.

Ça signifie qu'il vaut mieux faire en sorte que ceux qui seraient capables de te donner une réponse satisfaisante aient envie de le faire. Là, tu nous balances un code imbuvable, non qu'il soit techniquement faux ou syntaxiquement erroné, c'est la manière dont tu le mets en forme : c'est illisible.

Donc, prends l'habitude d'écrire un code clairement lisible pour un développeur, et accessoirement pour toi aussi, ce qui donnerait quelque chose comme ceci :
<?php
mysql_select_db($database_tdl, $tdl);
$sql  = "SELECT * ".
        "FROM histo ".
        "WHERE codecli LIKE %s ".
        "  AND recep LIKE %s ".
        "  AND desti LIKE %s ".
        "  AND dept LIKE %s ".
        "  AND ville LIKE %s ".
        "  AND reference LIKE %s";
$query_recherche = sprintf(
  $sql,
  GetSQLValueString($colname_recherche, "text"),
  GetSQLValueString($colname2_recherche, "text"),
  GetSQLValueString($colname3_recherche, "text"),
  GetSQLValueString($colname4_recherche, "text"),
  GetSQLValueString($colname5_recherche, "text"),
  GetSQLValueString($colname6_recherche, "text")
);
$recherche           = mysql_query($query_recherche, $tdl) or die(mysql_error());
$row_recherche       = mysql_fetch_assoc($recherche);
$totalRows_recherche = mysql_num_rows($recherche);
?>
Maintenant, technique de débogage : faire afficher la requête SQL générée avant son exécution. Pour ça, tu peux utiliser echo() ou var_dump() : ça va t'afficher la requête à l'écran, tu pourras alors la copier et la tester ensuite directement dans un outil comme phpMyAdmin et voir ce qui est retourné : soit tu as des résultats et dans ce cas l'erreur est après, soit tu as un message d'erreur. Là tu pourras avancer efficacement.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe: