ligne suivante et précédante -> Mysql

ligne suivante et précédante -> Mysql - PHP - Programmation

Marsh Posté le 14-09-2004 à 16:09:41    

C'est peut-être une question toute bête à première vue mais j'ai pas encore trouver d'astuce pour minimiser le code php !  
 
1.
Imagions une table avec un champ ID en autoincrement, certaines entrées on peut-être été supprimées impliquant la non continuité dans les id.
 
2.  
Une précédente requete me fourni un id du champ ID existant !
 
3.
Je souhaite sélectionner l'entrée juste avant l'entrée pointée par ID et l'ID située juste après celle pointée par ID
 
4. Comment faire ?
 
Ma première idée fut la suivante:  
 

Code :
  1. // Je connais l'id
  2. $id = valeur;
  3. // Ligne suivante
  4. $query = mysql_query("SELECT * FROM tableX" );
  5. while($ligneSuivante = mysql_fetch_array($query) && $ligneSuivante['ID'] != $id);
  6. $ligneSuivante = mysql_fetch_array($query);
  7. // Ligne précédente
  8. $query = mysql_query("SELECT * FROM tableX" );
  9. while($lignePrec = mysql_fetch_array($query) && $lignePrec['ID'] < $id);


 
Mais faut quand même avouer que c'est le merdier !!!
 
Ne peut-on pas acceder au numéro de l'enregistrement ?


Message édité par kalios le 14-09-2004 à 16:22:39

---------------
.:coin:.
Reply

Marsh Posté le 14-09-2004 à 16:09:41   

Reply

Marsh Posté le 14-09-2004 à 16:10:26    

LIMIT 1 :)

Reply

Marsh Posté le 14-09-2004 à 16:12:27    


 
Ca ne résoud pas le problème !!!

Reply

Marsh Posté le 14-09-2004 à 16:14:01    

ah oui en effet [:joce]

Reply

Marsh Posté le 14-09-2004 à 16:16:23    

SELECT * FROM tableX WHERE id='".$id-1."' OR id='".$id+1."'


---------------
Faux & usage de faux ¤ Machins roses ¤ ASCIImage ¤ HFR Enhance v0.8.6
Reply

Marsh Posté le 14-09-2004 à 16:17:20    

ouais mais non ses ID sont pas continu

Reply

Marsh Posté le 14-09-2004 à 16:20:34    

He :p  Pô si facile comme problème !  

Reply

Marsh Posté le 14-09-2004 à 16:21:38    

Hmmm...
 
SELECT * FROM tableX WHERE id < '".$id."' ORDER BY id DESC LIMIT 1
SELECT * FROM tableX WHERE id > '".$id."' ORDER BY id ASC LIMIT 1
 
?


---------------
Faux & usage de faux ¤ Machins roses ¤ ASCIImage ¤ HFR Enhance v0.8.6
Reply

Marsh Posté le 14-09-2004 à 16:24:01    

:wahoo: J'y avais vraiment pas du tout pensé !!!!!! (je suis burne)


Message édité par kalios le 14-09-2004 à 16:24:13

---------------
.:coin:.
Reply

Marsh Posté le 14-09-2004 à 16:30:09    

Euh !  
 
Et maintenant, si je désire afficher le numéro de l'entrée  
( entrée x sur n )
 
Dois-je faire une requete SELECT count(*) FROM tableX
et une boucle while($a = mysql_fetch_array($res) && $a != $id) $x++; ?


---------------
.:coin:.
Reply

Marsh Posté le 14-09-2004 à 16:30:09   

Reply

Marsh Posté le 14-09-2004 à 16:31:38    

heu non
 
select id from blablabla
apres un mysql_fetch_xxxx SANS boucle
 
et tu recupere l'id.
 
tu veut recuperer qu'un ID avant ET apres, c'est ca :??:


Message édité par Profil supprimé le 14-09-2004 à 16:31:45
Reply

Sujets relatifs:

Leave a Replay

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