Variable utilisée dans where

ViPHP
ViPHP | 2577 Messages

27 avr. 2011, 14:38

Bonjour,

Si tu regardes l'ordre sql, l'erreur doit être évidente^^

C'est l'intérêt de ne pas faire mysql_query("select...")
mais
$sql = "select ... "; // avec tes diverses variables
$result = mysql_query($sql) or die($sql."<br>".mysql_error());

Dans la majorité des cas la lecture du message permet de voir l'erreur.

chimonito
Invité n'ayant pas de compte PHPfrance

27 avr. 2011, 16:12

En faite pour être le plus clair possible voici mon code résumé

$toto= isset ( $_POST['toto'] ) ? $_POST['toto'] : 'non';
$tata= isset ( $_POST['tata'] ) ? $_POST['tata'] : '';
$toto1= 'AND urgent='.$toto;
......
$result = $sql->query( "SELECT ....... FROM ...... WHERE validation='oui' AND activation='oui' '$urgentrech' ORDER BY register_un DESC LIMIT $limite,$nombre");
.......

Voilà pour être clair

Merci

ViPHP
ViPHP | 2577 Messages

27 avr. 2011, 16:25

$toto1= 'AND urgent='.$toto;

à remplacer par $toto1= 'AND urgent=\''.$toto.'\'';

Comme ca tu as and urgent = 'non' au lieu de and urgent = non

Il n'en demeure pas moins qu'il est mieux de faire :
$sql =  "SELECT ....... FROM ...... WHERE validation='oui' AND activation='oui' '$urgentrech' ORDER BY register_un DESC LIMIT $limite,$nombre";
$result = $sql->query($sql) or die($sql.'<br>'.mysql_error();
et surement remplacer '$urgentrech' par $urgentrech

chimonito
Invité n'ayant pas de compte PHPfrance

27 avr. 2011, 16:37

Est ce que la syntaxe est bonne car j'ai comme erreur

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'non'' ORDER BY register_un DESC LIMIT 0,20' at line 1

Merci encore

ViPHP
ViPHP | 2577 Messages

27 avr. 2011, 16:45

Affiche la requete SQL, tu verras si elle est bonne ou pas normalement.

J'ai édité plusieurs fois mon message, tu as du raté le remplacer '$urgentrech' par $urgentrech (ca correspond à non'')

Il faut quand même comprendre qu'étudier le source PHP est plus dur que de regarder la requête SQL directement

chimonito
Invité n'ayant pas de compte PHPfrance

27 avr. 2011, 16:55

Bien vu, merci beaucoup je m'en excuse je n'avais pas lu en entier.

Et en réfléchissant bien, c'est logique mais ce qui me faisait défaut c'était le \ que j'ai oublié pour faire '$toto'

Merci encore pour tout

Et si je peux aider c'est avec plaisir, mais je pense que mon aide ne sera pas utile :D

Benjamin

ViPHP
ViPHP | 2577 Messages

27 avr. 2011, 17:06

ouf^^

En fait ce qu'il faut comprendre c'est que ton traitement génère une requête SQL et que tu l'exécutes ensuite. Les erreur peuvent provenir du fait que la requête que tu souhaites est fausse comme du fait que tu te trompes en générant ta requête. Il ne faut jamais oublié ces 2 aspects dans la recherche de bugs.

Il y a le même problème pour le html ou l'erreur peut venir de ce que tu ne génère pas le html que tu souhaites ou que ce que tu souhaites ne corespond pas à ce que tu veux afficher.

On peut dire que PHP sert à générer un programme (requete SQL ou page html ou javascript) le bug peut venir de ce que l'on veux générer est faux aussi bien que d'une erreur dans la génération.

chimonito
Invité n'ayant pas de compte PHPfrance

27 avr. 2011, 18:23

Désolé mais c'est trop philosophique pour moi
Le prend pas mal, mais les explication à la JCVD me dépasse, lol