Optimisation SQL + question [Réglé] - PHP - Programmation
Marsh Posté le 02-02-2005 à 20:31:00
Je vais sûrement dire une connerie, mais pourquoi ne pas utiliser order by et limit si tout ce que tu veux c'est récupérer le max d'une table ?
Marsh Posté le 02-02-2005 à 20:35:24
cvex a écrit : Bonsoir à tous! |
Les requettes dans une requette fonctionne pas sur toute les version de Mysql.
SELECT pseudo FROM $table1 ORDER BY DESC id_pseudo LIMIT 0,1
essais ça.
Marsh Posté le 02-02-2005 à 21:44:59
naceroth a écrit : Je vais sûrement dire une connerie, mais pourquoi ne pas utiliser order by et limit si tout ce que tu veux c'est récupérer le max d'une table ? |
oui je veux juste récupérer le max d'une table
berceker united => La requete me fait une erreur
Marsh Posté le 02-02-2005 à 21:48:41
naceroth a écrit : Je vais sûrement dire une connerie, mais pourquoi ne pas utiliser order by et limit si tout ce que tu veux c'est récupérer le max d'une table ? |
Trop gros, passera pas
Marsh Posté le 02-02-2005 à 21:49:36
SELECT pseudo FROM $table1 ORDER BY DESC id_pseudo LIMIT 1
ça suffit
Marsh Posté le 02-02-2005 à 21:50:44
cvex a écrit : oui je veux juste récupérer le max d'une table |
L'erreur en détail ?
Marsh Posté le 02-02-2005 à 21:55:32
ba oui ca doi etre la requete :
Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in c:\program files\wamp\www\compta_caps_v2\index.php on line 69
Marsh Posté le 02-02-2005 à 22:04:05
Apparament c'est le LIMIT qui pose problème mais je vois toujours pas comment l'erreur peu survenir...
Marsh Posté le 02-02-2005 à 22:10:34
Rien à voir avec une erreur SQL, c'est toi qui a mal dû gérer le code php. Poste le code qui donne l'erreur.
Marsh Posté le 02-02-2005 à 22:59:50
$dernier_membre = mysql_query("SELECT pseudo FROM $table1 ORDER BY DESC id_pseudo LIMIT 1" );
$dernier_membre = mysql_fetch_row($dernier_membre);
echo $dernier_membre[0];
Marsh Posté le 02-02-2005 à 23:07:15
La variable de requête est réinitialisé par le mysql_fetch_row. Ce n'est donc plus un résultat SQL. Change le nom de la variable.
A mon avis, ça peut être que ça.
Marsh Posté le 02-02-2005 à 23:52:57
Master p a écrit : La variable de requête est réinitialisé par le mysql_fetch_row. Ce n'est donc plus un résultat SQL. Change le nom de la variable. |
N'importe quoi.
C'est surtout que le DESC est supposé se trouver derrière le nom du champs de la clause order, et pas avant...
Marsh Posté le 03-02-2005 à 00:03:13
gg naceroth c'était ca!
LOL merci beaucoup
Marsh Posté le 03-02-2005 à 00:05:40
naceroth a écrit : N'importe quoi. |
trop con
J'y ai pensé, mais je me suis dit que ça sortirait une erreur SQL, oubliant qu'il faisait pas un die avec le mysql_query.
Je retourne me pendre dans ma chambre...
Marsh Posté le 03-02-2005 à 02:11:27
Oui exacte c'est ainsi.
SELECT pseudo FROM $table1 ORDER BY id_pseudo DESC LIMIT 0,1
Pour afficher les erreur Mysql il faut faire un echo mysql_error(); apres le query.
Marsh Posté le 03-02-2005 à 09:46:20
berceker united a écrit : Oui exacte c'est ainsi. |
Code :
|
Je trouve ça plus propre
Marsh Posté le 03-02-2005 à 12:54:35
Master p a écrit :
Je trouve ça plus propre |
Pour le développement tu peux affichier cela mais lorsque que tu placeras cela en ligne évite d'afficher des erreurs tu rediriges les erreurs dans un fichier de log.
Marsh Posté le 03-02-2005 à 14:06:46
Quand je mets en ligne, y a plus d'erreurs
Marsh Posté le 03-02-2005 à 18:55:03
ReplyMarsh Posté le 03-02-2005 à 19:39:01
Reply
Marsh Posté le 02-02-2005 à 19:54:09
Bonsoir à tous!
Je desire optimiser cette requete :
$req_dernier_membre_a = mysql_query("SELECT MAX(id_pseudo) FROM ".$table1);
$dernier_membre_a = mysql_fetch_row($req_dernier_membre_a);
$req_dernier_membre_b = mysql_query("SELECT pseudo FROM ".$table1." WHERE id_pseudo='".$dernier_membre_a[0]."'" );//".$dernier_membre_a[0]."
$dernier_membre = mysql_fetch_row($req_dernier_membre_b);
Elle a pour but de récupère le dernier inscrit
Mais je trouve cette requete un peu lourde a mes yeux et je pense bien qu'on peu faite plus simple...
Est-il possible d'optimiser cette requete?
Peut-on imbriquer plusieurs SELECT dans une requete?
J'ai essayé ceci mais ca marche pas :
$dernier_membre = mysql_query("SELECT pseudo FROM ".$table1." WHERE id_pseudo = 'SELECT MAX(id_pseudo) FROM utilisateur'" );
$dernier_membre = mysql_fetch_row($dernier_membre);
Merci de m'éclairecir
Message édité par cvex le 03-02-2005 à 00:03:32
---------------
http://forum.hardware.fr/hardwaref [...] 1293-1.htm