soucis de requête?

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : soucis de requête?

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'];

par pulsar60 » 23 sept. 2007, 16:55

Ok, merci a vous, j'ai reglé le problème....
Je me permet ddnoc de poser une autre question:

est ce que ceci est correct?
$resul_sql = mysql_query("select * from article WHERE nom_article='$nom' OR WHERE categorie='$cat' OR WHERE id_article='$num'");
$nombreligne = mysql_num_rows($resul_sql);
:?:
merci d'avance

par zeus » 23 sept. 2007, 11:54

ca marche toujours pas
Il nous faut le détail de ce qui te fait dire ça ... message d'erreur, problème d'affichage, ...

C'est pratiquement tout le temps le message d'erreur qui donne la solution ;)


Edit ---
Regarde la coloration syntaxique de cette ligne et dit moi si tu ne vois pas une erreur.
echo'nom de l'article => $nom_art'; 
PS : tu vois, comme quoi, utiliser un colorateur syntaxique, et d'utiliser les balises
 plutôt que [quote], aide à voir des erreurs ;)

par pulsar60 » 23 sept. 2007, 10:39

oulà....
effectivement, j'avais oublié le ";" mais je sais que c'est aps l'erreur, je l'ai rajouté et ca marche toujours pas
autre proposition? :(

par Sékiltoyai » 23 sept. 2007, 10:18

Ya pas quelquechose qui te choque à la fin de la ligne 40 ainsi que dans les premiers caractères de la ligne 41 ?

soucis de requête?

par pulsar60 » 23 sept. 2007, 10:03

Salutations!
Bon, j'ai un ptit soucis avec ceci, effectivement, a chaque fois, je me retrouve avec l'erreur,

Code : Tout sélectionner

Parse error: parse error, expecting `','' or `';'' in c:\program files\easyphp1-8\www\pulsar\admin.php on line 41
sachant que la ligne 41 correspond a
	echo'nom de l'article => $nom_art';
Je vous met tout le petit coin Php qui va avec voir si je me suis pas tromper autour!

merci de votre aide!;)
<?
$a=0;
$resul_sql = mysql_query("select * from article");
$nom_art = mysql_result($resul_sql,$a,"nom_article");
$nombreligne = mysql_num_rows($resul_sql);

for ($a=0;$a<=$nombreligne;$a++)
{
	echo '$a';
	echo'nom de l'article => $nom_art';
}


?>