[RESOLU]Problème résultat requête MySQL

Problème résultat requête MySQL [RESOLU] - SQL/NoSQL - Programmation

Marsh Posté le 03-05-2005 à 15:11:45    

Bon voilà je vous expose déjà le but: récupérer l'id d'une table dont la date est juste au-dessous de la date obtenue avec le premier select. Ce qui m'étonne le plus c'est que la requête inverse (la date juste au-dessus) à l'air de marcher, en tous cas sur 5 ou 6 enregistrements. Voici donc les 2 requêtes, et c'est la 2eme qui ne marche pas (date juste en dessous je rappelle). ça serait sympa de jeter un coup d'oeil merci.
 
EDIT: Au cas ou ça pourrait aider, au lieu de ce que je recherche, la fonction prev_vie_s me retourne l'id du champ pour lequel la date est la plus ancienne de la table.
 

Code :
  1. function next_vie_s($id1)
  2. {
  3. $sql1="SELECT date_vie_sociale FROM VIE_SOCIALE";
  4. $sql1.=" WHERE id_vie_sociale='$id1'";
  5. $res1=mysql_query($sql1);
  6. $date1=mysql_result($res1,0,0);
  7. $sql1="SELECT id_vie_sociale,MIN(date_vie_sociale) FROM VIE_SOCIALE";
  8. $sql1.=" WHERE date_vie_sociale > '$date1'";
  9. $sql1.=" AND id_visible='1'";
  10. $sql1.=" GROUP BY date_vie_sociale";
  11. $res1=mysql_query($sql1);
  12. if (mysql_num_rows($res1)>0)
  13. {
  14. return mysql_result($res1,0,0);
  15. }
  16. }


 

Code :
  1. function prev_vie_s($id2)
  2. {
  3. $sql2="SELECT date_vie_sociale FROM VIE_SOCIALE";
  4. $sql2.=" WHERE id_vie_sociale='$id2'";
  5. $res2=mysql_query($sql2);
  6. $date2=mysql_result($res2,0,0);
  7. $sql2="SELECT id_vie_sociale,MAX(date_vie_sociale) as maxdate FROM VIE_SOCIALE";
  8. $sql2.=" WHERE date_vie_sociale < '$date2'";
  9. $sql2.=" AND id_visible='1'";
  10. $sql2.=" GROUP BY date_vie_sociale";
  11. echo $sql2;
  12. $res2=mysql_query($sql2);
  13. if (mysql_num_rows($res2)>0)
  14. {
  15. return mysql_result($res2,0,0);
  16. }
  17. }


Message édité par crazywolf le 10-05-2005 à 13:56:37
Reply

Marsh Posté le 03-05-2005 à 15:11:45   

Reply

Marsh Posté le 10-05-2005 à 14:02:00    

Je m'en suis sorti en virant les fonctions MIN et MAX, et en remplaçant par ORDER BY date_vie_sociale LIMIT 1 ( et order by desc pour l'autre). Au passage vous savez si y'a moins de charge pour le serveur en utilisant MAX plutot qu'en sélectionnant toute une plage de résultats et en faisant un LIMIT 1 ? ça parait logique mais ça dépend comment marche la fonction MAX.  

Reply

Sujets relatifs:

Leave a Replay

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