2012-01-05 4 views
0

J'essaie de comparer les URLs dans mysql mais la requête renvoie des résultats correspondant à n'importe quelle URL.Comparaison des chaînes dans mysql

Voici ma requête.

SELECT 
    a.comment_ID, 
    a.comment_post_ID, 
    a.comment_content, 
    a.comment_date_gmt, 
    a.comment_author_url, 
    b.post_title, b.ID 
FROM 
    `wp_comments` a, 
    `wp_posts` b 
WHERE 
    a.comment_post_ID = b.ID 
    AND 
    ('a.comment_author_email' = '$email' 
    OR 
    'a.comment_author_url' = '$url') 
    AND a.comment_approved = 1 
GROUP BY a.comment_ID 
ORDER BY a.comment_ID DESC 

Merci!

modifier: full query

+0

envisager de réviser cette condition ** ET ('a.comment_author_email' = '$ email' OR 'a.comment_author_url' = '$ url') ** Cela renvoie vrai pour l'une ou l'autre email de l'auteur ou l'URL fournie. Quelles valeurs passez-vous? – dkulkarni

+0

si possible, envoyez-nous cette requête avec des valeurs et non des variables, il sera plus facile d'aider =) – Gerep

+0

Voici presque le code complet ... http://pastebin.com/QJmPfd0e –

Répondre

2

Dans votre requête, assurez-vous de remplacer tous les caractères ' (guillemets simples) caractères avec le ` (backtick).

0

Conseils:

  • Supprimer ' autour variable php
  • Ecrire des accents graves ` autour de la table des attributs au lieu de '
  • peut être utilisé de INNER JOIN peut rendre les choses plus facile

ESSAYEZ cette

$qry = " SELECT { watever} FROM `wp_comments` a, 
     INNER JOIN `wp_posts` b ON `a`.`comment_post_ID` = `b`.`ID` 
     WHERE 
       `a`.`comment_author_email` = '".$email."' 
      OR `a`.`comment_author_url` ='". $url."'  
     GROUP BY `a`.`comment_ID` 
     ORDER BY `a`.`comment_ID` DESC "; 
+0

Même résultat. Renvoie simplement toutes les lignes avec une URL dans le fichier comment_author_url: / –