Utiliser virgule ou opérateur AND dans requête SQL

Eléphanteau du PHP | 24 Messages

12 nov. 2006, 09:07

Bonjour,

Je viens d'écrire la requête suivante :
$req= "SELECT nom ".
"AND UNIX_TIMESTAMP(date_modification) as date_modification_UNIX ". 
"FROM cherc ".
"WHERE (nom = '".$nom."')"
Or, je suis tracassé par le "AND" à la deuxième ligne. En effet, si j'utilise cette requête dans PhpMyAdmin, elle ne renvoie aucun résultat. Or, si je remplace le "AND" par une virgule, j'obtiens l'enregistrement. Quelle en est la raison ? Vaut-il donc mieux utiliser la virgule ?

Au fait, ma concaténation est-elle valable ? Cyrano m'a vivement recommandé, voilà quelques semaines, de l'utiliser dans mes requêtes, et j'essaie de m'y employer.

Merci.

Bonne journée,

I.

Mammouth du PHP | 19672 Messages

12 nov. 2006, 09:59

La requête se sépare en plusieurs parties :
-1- SELECT : on sépare les champs qui suivent par une virgule
-2- FROM : dans le cas où on effectue une sélection sur plusieurs tables, on sépare les noms de tables par des virgules également
-3- la clause WHERE : on sépare chaque clause ou groupe de clauses par "OR" ou "AND"
-4- autre clause possible, HAVING, ayant éventuellement plusieurs arguments séparés par "OR" ou "AND";
-5- autres clauses possibles ayant éventuellement plusieurs arguments : GROUP BY, ORDER BY, arguments séparés par des virgules.

C'est là le fonctionnement standard SQL.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Invité
Invité n'ayant pas de compte PHPfrance

12 nov. 2006, 10:23

Merci Cyrano.

Bon dimanche.

Cordialement,

I.