2012-06-05 4 views
0

je:mysql_query choisir parmi plusieurs colonnes avec OU

$sql = mysql_query("select * from articles where articletitle OR articledescription OR articletags like '%$term%'");

et renvoie aucun résultat. Est-ce que j'utilise OR incorrectement ici?

Merci

+0

Merci les gars. Je vous ai tous voté, je vais donner la réponse à Dacto car il a le moins de réputation en ce moment ... si c'est juste? – Zrb0529

+0

Bonne chance et amusez-vous avec la programmation! À votre santé. – Dacto

Répondre

2

Vous devrez ajouter LIKE pour les trois clauses:

SELECT * FROM articles WHERE (articletitle LIKE '%$term%') OR (articledescription LIKE '%$term%') OR (articletags LIKE '%$term%'); 
+0

Vous n'avez pas besoin de la parens puisque vous êtes ORing chaque article – Aknosis

+0

Oui, je sais, mais cela aide à séparer ce que quelqu'un qui étudie regarde. – Dacto

1

.. Non, vous devez utiliser le comme '...' à chaque fois que

$sql = mysql_query("select * from articles where articletitle like '%$term%' OR 
articledescription like '%$term%' OR articletags like '%$term%'"); 
1

Oui . :-) Vous l'utilisez incorrectement.

select * from articles where (articletitle like '%$term%') 
OR (articledescription like '%$term%') OR (articletags like '%$term%') 
0

Sur un commentaire côté, ce qui se passerait si terme $ est exactement (moins entre guillemets) « '; SUPPRIMER des articles; - « ? (Ajoutez une parenthèse de fermeture après le guillemet simple si votre requête originale avait tel.) Je vous recommande de compter sur une facilité de type sprintf (en PHP, cela signifie souvent que vous aurez besoin d'instructions préparées) plutôt que sur les malpropres désaccords.

Questions connexes