2010-02-05 9 views
1

je la requête suivante qui recherche une base de données de guide des épisodes pour les données entrées utilisateur:Ma requête MySQL ne fonctionnera pas

$query = "SELECT * 
      FROM epguide 
      WHERE EpisodeTitle LIKE '%$trimmed%' 
       OR Synopsis LIKE '%$trimmed%' 
       OR Notes LIKE '%$trimmed%' 
     ORDER BY o"; 

Cela fonctionne bien, mais quand j'ajoute « série = « ser $ » ET » il s'arrête:

$query = "SELECT * 
      FROM epguide 
      WHERE Series = '$ser' 
      AND EpisodeTitle LIKE '%$trimmed%' 
       OR Synopsis LIKE '%$trimmed%' 
       OR Notes LIKE '%$trimmed%' 
     ORDER BY o"; 

Il semble que cela devrait fonctionner. Que puis-je faire pour le réparer?

Répondre

3

Utilisation:

SELECT * 
    FROM epguide 
    WHERE Series = '$ser' 
    AND (EpisodeTitle LIKE '%$trimmed%' 
      OR Synopsis LIKE '%$trimmed%' 
      OR Notes LIKE '%$trimmed%') 
ORDER BY o 

Vous avez besoin des parenthèses pour séparer les instructions/groupe dans la clause WHERE.

+0

Merci, Juste ce dont j'avais besoin – Zack

2

Vous allez avoir besoin de décider si vous voulez dire

SELECT * FROM epguide WHERE (Series = '$ser' AND EpisodeTitle LIKE '%$trimmed%') OR Synopsis LIKE '%$trimmed%' OR Notes LIKE '%$trimmed%' ORDER BY o 

ou

SELECT * FROM epguide WHERE Series = '$ser' AND (EpisodeTitle LIKE '%$trimmed%' OR Synopsis LIKE '%$trimmed%' OR Notes LIKE '%$trimmed%') ORDER BY o 

et de modifier la requête appropriée.