[SQL] requete errone

requete errone [SQL] - SQL/NoSQL - Programmation

Marsh Posté le 29-07-2005 à 20:35:22    

bonjour  
 
j'ai une requete qui retourne une erreur pourriez vous m'aider ?
 
 
merci voici ma requete  
 

Code :
  1. $reponse = mysql_query("SELECT * FROM lignes LIMIT 0,1 WHERE pseudo='$pseudo' AND bus_id=''  ORDER BY RAND(); " );
  2. while ($donnees = mysql_fetch_array($reponse) )
  3. {


 
voici l'erreur retourne :  
 

Citation :


Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in f:\program files\easyphp1-7\www\bus\perso\affect.php on line 64


 
merci encore de m'aide

Reply

Marsh Posté le 29-07-2005 à 20:35:22   

Reply

Marsh Posté le 29-07-2005 à 20:36:39    

Rappel : PHP <> MySQL.


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
Reply

Marsh Posté le 29-07-2005 à 20:37:00    

As-tu executé le query en dehors de PHP ?
 
[:pingouino]


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
Reply

Marsh Posté le 29-07-2005 à 21:02:00    

SELECT *


 
 [:hide]  
 
Les "select *", c'est mal.
 
 

ORDER BY RAND()


 
Bon je suis pas expert MySQL, en fait j'ai jamais touché à cette SGBD. Mais normalement, ce qui suit "order by" c'est soit le nom de la colonne, soit son numéro.  
"rand()", j'vois pas ce que ça peut donner comme résultat.

Reply

Marsh Posté le 29-07-2005 à 21:03:18    

Le LIMIT doit être à la fin de la requête :o

Reply

Marsh Posté le 29-07-2005 à 21:43:19    

je l'ai execute avec mysql_query  
 
 
pourquoi select est mal ??  
 
order by rand()  
retourne un enregistrement au hasard

Reply

Marsh Posté le 29-07-2005 à 21:46:16    

mysql_query(...) or die(mysql_error());
 
A mon avis, il doit pas aimer le LIMIT en plein milieu...


---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
Reply

Marsh Posté le 29-07-2005 à 21:59:38    

iowafr a écrit :

pourquoi select est mal ??


 
C'est pas "select" qui est mal, c'est "select *".
 
On ne devrait utiliser "select *" que pour des requêtes manuelles, histoire d'aller plus vite, sinon c'est bien mieux de mettre le détail des colonnes que l'on souhaite récupérer. Surtout que souvent on n'a pas besoin de toutes les colonnes.
 
 

iowafr a écrit :

order by rand()  
retourne un enregistrement au hasard


 
Tu es sûr de toi sur ce coup-là ?  :heink:  
 
Moi, pas, sous réserve d'une syntaxe propre à MySQL (connais pas, je me méfie des différentes implémentations SQL).  
Tes résultats seront ordonnés selon une colonne aléatoire. Dans l'hypothèse que ce que retourne rand() corresponde à un numéro de colonne (rand() retourne pas un nombre entre 0 et 1, au fait ?).
Et même si ça fonctionne, tu n'auras pas un résultat aléatoire, mais (1,n) résultats possibles, n étant le nombre de colonnes de ta table.


Message édité par Elmoricq le 29-07-2005 à 22:01:44
Reply

Marsh Posté le 29-07-2005 à 22:19:52    

order by rand() range bien "au pif", c'est un fonctionnement un peu exceptionnel et qui n'a donc pas vraiment d'explication logique par rapport à ce que fait rand() ailleurs (sortir un nombre entre 0 et 1).


Message édité par sielfried le 29-07-2005 à 22:20:16

---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
Reply

Marsh Posté le 29-07-2005 à 22:21:48    

sielfried a écrit :

order by rand() range bien "au pif", c'est un fonctionnement un peu exceptionnel et qui n'a donc pas vraiment d'explication logique par rapport à ce que fait rand() ailleurs (sortir un nombre entre 0 et 1).


 
Oki, au temps pour moi.   [:romf]  
Pas le genre de chose qui sert souvent.

Reply

Marsh Posté le 29-07-2005 à 22:21:48   

Reply

Marsh Posté le 30-07-2005 à 20:39:42    

comme repete + haut le limit doit se trouver a la fin

Reply

Marsh Posté le 31-07-2005 à 11:28:17    

je test et je vous dit

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed