par
zeus » 23 sept. 2007, 17:09
En formatant ta requête ou en lisant le message d'erreur, tu aurais pu trouver tout seul que non
Code : Tout sélectionner
SELECT
*
FROM article
WHERE nom_article='$nom' OR
WHERE categorie='$cat' OR
WHERE id_article='$num'
N'y a-t'il pas un souci dans cette requête ?
Sinon, pour te donner quelques conseils :
1/ Il faut éviter les SELECT *. Il ne faut sélectionner que les champs que tu as besoin.
2/ Si tu n'utilises pas les enregistrements retournées par ta requête, il est beaucoup plus optimisé de faire un SELECT count(*)
3/ Il vaut mieux construire la requête dans une variable et passer cette variable plutôt que de construire la requête directement dans la fonction mysql_query()
4/ Il est préférable d'extraire les variables des chaines de caractères
Mon optimisation pour ton code (
ATTENTION, je n'ai pas corrigé la requête) serait la suivante :
$str_requete = "SELECT COUNT(*) AS nb_result
FROM article
WHERE nom_article='". $nom ."' OR
WHERE categorie='". $cat ."' OR
WHERE id_article='". $num ."'";
$o_result = mysql_query($str_requete);
$a_result = mysql_fetch_array($o_result);
$nombreligne = $a_result['nb_result'];
En formatant ta requête ou en lisant le message d'erreur, tu aurais pu trouver tout seul que non ;)
[code]SELECT
*
FROM article
WHERE nom_article='$nom' OR
WHERE categorie='$cat' OR
WHERE id_article='$num'[/code]
N'y a-t'il pas un souci dans cette requête ?
Sinon, pour te donner quelques conseils :
1/ Il faut éviter les SELECT *. Il ne faut sélectionner que les champs que tu as besoin.
2/ Si tu n'utilises pas les enregistrements retournées par ta requête, il est beaucoup plus optimisé de faire un SELECT count(*)
3/ Il vaut mieux construire la requête dans une variable et passer cette variable plutôt que de construire la requête directement dans la fonction mysql_query()
4/ Il est préférable d'extraire les variables des chaines de caractères
Mon optimisation pour ton code ([b]ATTENTION, je n'ai pas corrigé la requête[/b]) serait la suivante :
[php]$str_requete = "SELECT COUNT(*) AS nb_result
FROM article
WHERE nom_article='". $nom ."' OR
WHERE categorie='". $cat ."' OR
WHERE id_article='". $num ."'";
$o_result = mysql_query($str_requete);
$a_result = mysql_fetch_array($o_result);
$nombreligne = $a_result['nb_result'];[/php]