Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2551 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Optimisation SQL + question [Réglé]

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Optimisation SQL + question [Réglé]

n°969853
cvex
$CveX
Posté le 02-02-2005 à 19:54:09  profilanswer
 

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 :D 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
mood
Publicité
Posté le 02-02-2005 à 19:54:09  profilanswer
 

n°969883
naceroth
Posté le 02-02-2005 à 20:31:00  profilanswer
 

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 ?

n°969886
Berceker U​nited
PSN : berceker_united
Posté le 02-02-2005 à 20:35:24  profilanswer
 

cvex a écrit :

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 :D 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 ;)


 
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.

n°969926
cvex
$CveX
Posté le 02-02-2005 à 21:44:59  profilanswer
 

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


---------------
http://forum.hardware.fr/hardwaref [...] 1293-1.htm
n°969932
Master p
My new cock ring :D
Posté le 02-02-2005 à 21:48:41  profilanswer
 

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 [:kurrupt]  


---------------
HAHAHA I M USING TEH INTERNET
n°969935
Master p
My new cock ring :D
Posté le 02-02-2005 à 21:49:36  profilanswer
 

SELECT pseudo FROM $table1 ORDER BY DESC id_pseudo LIMIT 1
ça suffit


---------------
HAHAHA I M USING TEH INTERNET
n°969938
Master p
My new cock ring :D
Posté le 02-02-2005 à 21:50:44  profilanswer
 

cvex a écrit :

oui je veux juste récupérer le max d'une table
 
berceker united => La requete me fait une erreur

L'erreur en détail ?


---------------
HAHAHA I M USING TEH INTERNET
n°969945
cvex
$CveX
Posté le 02-02-2005 à 21:55:32  profilanswer
 

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


---------------
http://forum.hardware.fr/hardwaref [...] 1293-1.htm
n°969953
cvex
$CveX
Posté le 02-02-2005 à 22:04:05  profilanswer
 

Apparament c'est le LIMIT qui pose problème mais je vois toujours pas comment l'erreur peu survenir...


---------------
http://forum.hardware.fr/hardwaref [...] 1293-1.htm
n°969960
Master p
My new cock ring :D
Posté le 02-02-2005 à 22:10:34  profilanswer
 

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.


---------------
HAHAHA I M USING TEH INTERNET
mood
Publicité
Posté le 02-02-2005 à 22:10:34  profilanswer
 

n°970023
cvex
$CveX
Posté le 02-02-2005 à 22:59:50  profilanswer
 

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


---------------
http://forum.hardware.fr/hardwaref [...] 1293-1.htm
n°970043
Master p
My new cock ring :D
Posté le 02-02-2005 à 23:07:15  profilanswer
 

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.


---------------
HAHAHA I M USING TEH INTERNET
n°970101
naceroth
Posté le 02-02-2005 à 23:52:57  profilanswer
 

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.
A mon avis, ça peut être que ça.


 
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...

n°970110
cvex
$CveX
Posté le 03-02-2005 à 00:03:13  profilanswer
 

gg naceroth c'était ca! :)
LOL merci beaucoup :)


---------------
http://forum.hardware.fr/hardwaref [...] 1293-1.htm
n°970112
Master p
My new cock ring :D
Posté le 03-02-2005 à 00:05:40  profilanswer
 

naceroth a écrit :

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...

[:rofl] 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...


---------------
HAHAHA I M USING TEH INTERNET
n°970185
Berceker U​nited
PSN : berceker_united
Posté le 03-02-2005 à 02:11:27  profilanswer
 

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.

n°970211
Master p
My new cock ring :D
Posté le 03-02-2005 à 09:46:20  profilanswer
 

berceker united a écrit :

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.

Code :
  1. $sql = SELECT pseudo FROM $table1 ORDER BY id_pseudo DESC LIMIT 1';
  2. $req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());

Je trouve ça plus propre


---------------
HAHAHA I M USING TEH INTERNET
n°970454
Berceker U​nited
PSN : berceker_united
Posté le 03-02-2005 à 12:54:35  profilanswer
 

Master p a écrit :

Code :
  1. $sql = SELECT pseudo FROM $table1 ORDER BY id_pseudo DESC LIMIT 1';
  2. $req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());

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.

n°970538
Master p
My new cock ring :D
Posté le 03-02-2005 à 14:06:46  profilanswer
 

Quand je mets en ligne, y a plus d'erreurs  [:jagstang]


---------------
HAHAHA I M USING TEH INTERNET
n°970990
Berceker U​nited
PSN : berceker_united
Posté le 03-02-2005 à 18:55:03  profilanswer
 

Master p a écrit :

Quand je mets en ligne, y a plus d'erreurs  [:jagstang]


donc tu peux retirer le or die

n°971011
cvex
$CveX
Posté le 03-02-2005 à 19:39:01  profilanswer
 

LOL ;) ok merci beaucoup :)


---------------
http://forum.hardware.fr/hardwaref [...] 1293-1.htm
mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Optimisation SQL + question [Réglé]

 

Sujets relatifs
Aide+Aprentissage en cours + questionoptimisation conception base de donnees
Petite question, concernant le référencement d'un site.Comment afficher une page html depuis une application java [Réglé]
[SQL Light] Info ??! please[SQL] Récuperer une chaine sans les deux premieres lettres ?
[QUESTION] Executer un .bat dans une page php ?[SQL] UPDATE dans une requete SELECT ?
Question de synchronisation pour des classes différentesjava JADE (multi agent), question sur les behaviours en parrallèle
Plus de sujets relatifs à : Optimisation SQL + question [Réglé]


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR