2010-09-09 9 views
0

J'ai besoin d'afficher les résultats de cette requête:requête fonctionne sur MySQL, mais pas en PHP, pourquoi?

SELECT * FROM projects WHERE PrestaCmd LIKE '% A - CREP - DPE - %' 

mais en PHP, cette requête ne fonctionne pas: s

Ceci est mon code:

$req = "SELECT * FROM ".$table." WHERE PrestaCmd LIKE '%".$ch."%'"; 

echo $req; //returns : SELECT * FROM jos_projectlog_projects WHERE PrestaCmd LIKE '% A - CREP - DPE - %' 

$results = mysql_query($req); 

while ($row = mysql_fetch_array($results, MYSQL_ASSOC)) { 
    print_r($row); 
} 

Je pense que la Le problème vient de la variable '$ ch'. Mais quand je mets un écho de la requête, il est correct, et quand je mets une requête comme ceci:

$req = "SELECT * FROM jos_projectlog_projects WHERE PrestaCmd LIKE '% A - CREP - DPE - %'"; 

echo $req; 
$results = mysql_query($req); 

while ($row = mysql_fetch_array($results, MYSQL_ASSOC)) { 
    print_r($row); 
} 

cela fonctionne: s

+0

S'il vous plaît montrer la requête en écho. –

+0

Que voulez-vous dire par "ne fonctionne pas"? – RedFilter

+0

s'il vous plaît changer '$ results = mysql_query ($ req);' à $ results = mysql_query ($ req) ou mourir (mysql_error()); '. Si elle meurt et vous obtenez une erreur poster ici. – Cfreak

Répondre

1

@ Bahumat100, si vous pensez que vous avez   faire de la place qui est à l'origine problème, utilisez html_entity_decode et de le faire comme ceci:

$req = "SELECT * FROM ".$table." WHERE PrestaCmd LIKE '%".html_entity_decode($ch)."%'"; 
+0

Je ne voudrais pas l'encoder .... –

+1

@Col. oui je suis complètement d'accord mais que se passe-t-il si la variable '$ ch' vient de quelque part (une autre fonction/fichier) qui n'est pas facilement modifiable. Dans ce cas, ce serait une solution facile. – shamittomar

+0

Non, html_entity_decode n'a pas fonctionné. – bahamut100

Questions connexes