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

  FORUM HardWare.fr
  Programmation
  PHP

  [ PHP MySQL ] Acces au prochain enregistrement ?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[ PHP MySQL ] Acces au prochain enregistrement ?

n°161189
massanu
Posté le 17-06-2002 à 17:28:58  profilanswer
 

Voila, j'ai une table avec un id en autoincrement cependant il peut y avoir des trous c a dire
 
1
2
3
5
6
7
 
comme vous voyez entre 3 et 5 le 4 n'existe pas
alors y a til une methode pour avoir acces au prochain sans avoir a passé par l'id
 
c a dire si je suis sur le 3 lui dire d'alle sur le prochain et pas sur le 3+1 vu qu'il nexiste pas ?
 
je sais pas si jai été clair, mais bon j'espere que vous pourrez m'aider


---------------
Oui je sais, je suis une merde en orthographe et alors ? Altcoin list: https://docs.google.com/spreadsheet [...] =286417424
mood
Publicité
Posté le 17-06-2002 à 17:28:58  profilanswer
 

n°161197
Je@nb
Kindly give dime
Posté le 17-06-2002 à 17:32:53  profilanswer
 

C koi ta requète ?
Tu fais comment pour accéder à tes données MySQL ?

n°161198
Cherrytree
cn=?
Posté le 17-06-2002 à 17:33:07  profilanswer
 

Ben... Généralement quand tu fais une requête sur les tuples, tu récupères une référence sur l'ensemble des réponses à cette requêtes. En général tu parse cet ensemble sans faire attention à l'id. Enfin, ce que je veux dire c'est que ce n'est pas un problème.


---------------
Le site de ma maman
n°161203
Je@nb
Kindly give dime
Posté le 17-06-2002 à 17:38:01  profilanswer
 

Moi non plus c pour ça que je pose les questions car je vois pas comment il accède aux données
moi je fous un while($data= mysql_fetch_array($le_resultat_de_la_requete))

n°161206
Cherrytree
cn=?
Posté le 17-06-2002 à 17:41:15  profilanswer
 

Je@nb a écrit a écrit :

Moi non plus c pour ça que je pose les questions car je vois pas comment il accède aux données
moi je fous un while($data= mysql_fetch_array($le_resultat_de_la_requete))  



Pareil que toi. Sincèrement je vois pas son problème. A moins qu'il ne fasse la technique du gros sale...

Code :
  1. for ($id = 0; $id < IDMAX; $id++) {...}


---------------
Le site de ma maman
n°161220
Je@nb
Kindly give dime
Posté le 17-06-2002 à 17:46:59  profilanswer
 

lol je savais même pas que ça existait

n°161221
Cherrytree
cn=?
Posté le 17-06-2002 à 17:48:57  profilanswer
 

Je@nb a écrit a écrit :

lol je savais même pas que ça existait  



C'est une nouvelle feature du forum. Ca fait qu'une semaine mais c'est bien pratique.


---------------
Le site de ma maman
n°161223
Je@nb
Kindly give dime
Posté le 17-06-2002 à 17:51:12  profilanswer
 

non non ça je c lol je parle de la structure de aprcours d'id.

n°161376
massanu
Posté le 17-06-2002 à 23:02:39  profilanswer
 

et bien j'ai une requete sur un systeme de news :
 
et je fait un
while (list($contenu,$titre,$id)=mysql_fetch_array($resultat))
 
bien et ce que je veut c que cette requete qui recupere mes news, j'aimerais passé d'une news à l'autre cependant si j'applique le systeme simple, je me trouve avec des pages cassé
 
vous comprenez ?


Message édité par massanu le 17-06-2002 à 23:05:03
n°161579
massanu
Posté le 18-06-2002 à 11:07:24  profilanswer
 

bonjour


---------------
Oui je sais, je suis une merde en orthographe et alors ? Altcoin list: https://docs.google.com/spreadsheet [...] =286417424
mood
Publicité
Posté le 18-06-2002 à 11:07:24  profilanswer
 

n°161602
Cherrytree
cn=?
Posté le 18-06-2002 à 11:29:33  profilanswer
 

massanu a écrit a écrit :

et bien j'ai une requete sur un systeme de news :
 
et je fait un
while (list($contenu,$titre,$id)=mysql_fetch_array($resultat))
 
bien et ce que je veut c que cette requete qui recupere mes news, j'aimerais passé d'une news à l'autre cependant si j'applique le systeme simple, je me trouve avec des pages cassé
 
vous comprenez ?  



Non, pas un mot. C'est quoi une page cassée ?


---------------
Le site de ma maman
n°161603
Max Evans
Posté le 18-06-2002 à 11:30:21  profilanswer
 

Cherrytree a écrit a écrit :

Non, pas un mot. C'est quoi une page cassée ?  




 
Un page cassée, c une page qui n'a pas d'ID, du coup, rien ne d'affiche :)


---------------
Envie d'un bol d'air ? Traxxas Revo 3.3
n°161607
Cherrytree
cn=?
Posté le 18-06-2002 à 11:31:21  profilanswer
 

Max Evans a écrit a écrit :

 
 
Un page cassée, c une page qui n'a pas d'ID, du coup, rien ne d'affiche :)  



Je ne connaissais pas ce problème. Une page qui n'a pas d'ID c'est quoi ? (Je suis sérieux, j'ai l'impression d'être dans la 4è dimension).


---------------
Le site de ma maman
n°161627
massanu
Posté le 18-06-2002 à 11:48:33  profilanswer
 

bah c tout a fait simple a comprendre
 
jai un systeme de news qui passe d'une news a l'autre avec un bouton suivant
donc tu passe en parametre l'id de la news
 
1 -> 2 -> 3 -> 4 etc...
 
cependant si la news 3 n'existe pas ca donne  
 
1 -> 2 ->  -> 4
ca fait un trou te donc rien ne s'affiche ca casse le systeme
 
understand ?
 
donc je voulais savoir si ya pas une maniere de passé au prochain enregistrement sans passé par son id


---------------
Oui je sais, je suis une merde en orthographe et alors ? Altcoin list: https://docs.google.com/spreadsheet [...] =286417424
n°161714
Cherrytree
cn=?
Posté le 18-06-2002 à 13:42:11  profilanswer
 

Ben ouais, enfin... il me semble que tu dois faire une requête dont tu parses les réponses (avec un while) tant qu'il y en a. C'est sur les réponses que tu parses, pas sur l'id. J'ai pas de codes sous la main (ça fait 3 mois que j'ai pas fait de PHP), mais c'est la méthode que tu dois suivre. Si qqn peut mettre du code pour te montrer, et ben ce sera cool.


---------------
Le site de ma maman
n°161723
omega2
Posté le 18-06-2002 à 14:00:21  profilanswer
 

Quand tu cherches à afficher la news d'ID n° N, il faut que dans ta requête tu mettes "where ID>=N " et " LIMIT 0,1 ". Ca te ramèneras la prochaine news existante.
pour conaitre le numéro de la news qui a été trouvé, n'oublis pas de le ramener dans le résultat de la requête et de créé lesliens de ta page a partir de ce numéro là et non pas à partir du numéro qui a servi à afficher la page.

n°162185
massanu
Posté le 18-06-2002 à 23:42:16  profilanswer
 

et comment peut on recuperer le plus grand
 
SELECT MAX(id) FROM....
 
mais je veut recuperer le resultat dans une variable pour qu'il soit utilisable dans le reste de la page
 
comment faire ?


---------------
Oui je sais, je suis une merde en orthographe et alors ? Altcoin list: https://docs.google.com/spreadsheet [...] =286417424
n°162193
Cherrytree
cn=?
Posté le 18-06-2002 à 23:55:53  profilanswer
 

massanu a écrit a écrit :

et comment peut on recuperer le plus grand
 
SELECT MAX(id) FROM....
 
mais je veut recuperer le resultat dans une variable pour qu'il soit utilisable dans le reste de la page
 
comment faire ?  



Ben comme d'hab. Ta requête, tu la soumets et tu retire le résultat :??:

Code :
  1. $result = mysql_query($query);
  2. $row = mysql_fetch_row($result);


 
Ce code n'est pas top propre, mais bon ça illustre le truc. Qu'est ce qui te bloque ?


---------------
Le site de ma maman
n°162409
massanu
Posté le 19-06-2002 à 11:47:46  profilanswer
 

ce qui me cloquais c que l'id max nest pas egale au nombre de row retourné par la requete ;-(
 
donc j'ai fait 2 while imbriqué, ca a l'air de marché pour l'instant
 
merci pour toutes vos aides


---------------
Oui je sais, je suis une merde en orthographe et alors ? Altcoin list: https://docs.google.com/spreadsheet [...] =286417424
n°162938
Dost67
Posté le 19-06-2002 à 23:57:29  profilanswer
 

1. Très important mais je pense que ça doit déjà être fait : ton ID doit être PRIMARY KEY (et pas simplement UNIQUE).
 
2. Pour avoir l'enregistrement ayant l'id max :

Code :
  1. SELECT * FROM matable ORDER BY ID DESC LIMIT 1


 
3. Pour le nombre d'enregistrements :

Code :
  1. SELECT COUNT(*) AS cpt FROM matable


 
4. Pour le problème de pages cassées :

Code :
  1. $result = mysql_query("SELECT * FROM matable WHERE ID>=$N ORDER BY ID DESC LIMIT 1" );

puis pour le lien

Code :
  1. $res = mysql_fetch_object($resultat);
  2. $N = $res->ID;
  3. $lien = "nexpage.php?N=$N";


Message édité par Dost67 le 19-06-2002 à 23:59:14
n°162956
Cherrytree
cn=?
Posté le 20-06-2002 à 01:13:03  profilanswer
 

En fait ça sert à quoi UNIQUE ? J'ai vu que Primary key en cours.


---------------
Le site de ma maman
n°163025
massanu
Posté le 21-06-2002 à 00:42:24  profilanswer
 

merci mon cher
ca aidera ce qui conaisse pas certains trucs de base
 
unique c comme sont nom l'indique, a etre une clé unique lol


---------------
Oui je sais, je suis une merde en orthographe et alors ? Altcoin list: https://docs.google.com/spreadsheet [...] =286417424
n°163033
Cherrytree
cn=?
Posté le 21-06-2002 à 00:48:51  profilanswer
 

Ben ouais, mais je vois pas à quoi ça peut servir. J'ai besoin que de clés primaires dans mes tables.


---------------
Le site de ma maman
n°163038
massanu
Posté le 21-06-2002 à 00:55:04  profilanswer
 

Dost67 a écrit a écrit :

1.  
 
4. Pour le problème de pages cassées :

Code :
  1. $result = mysql_query("SELECT * FROM matable WHERE ID>=$N ORDER BY ID DESC LIMIT 1" );

puis pour le lien

Code :
  1. $res = mysql_fetch_object($resultat);
  2. $N = $res->ID;
  3. $lien = "nexpage.php?N=$N";

 




 
Ya un truc
ca marche pas cette portion de code
 
pour la page suivante je met  
 

Code :
  1. $id_suiv=$id++;


 
et ca marche pour le lien suivant ca evite les page cassé
par contre pour les pages précedentes ca marche pas, ca regle pas les pages cassé, mais bon c deja pas mal comme résultat
 
quand je met
 

Code :
  1. $res = mysql_fetch_object($resultat);
  2. $id_suiv=$res->id


 
mon $id_suiv ne prend aucune valeur, bizarre...


---------------
Oui je sais, je suis une merde en orthographe et alors ? Altcoin list: https://docs.google.com/spreadsheet [...] =286417424
n°163176
Dost67
Posté le 21-06-2002 à 10:51:29  profilanswer
 

C'est normal ça fonctionne pas je me suis planté dans les variable : $result et $resultat c'est les mêmes !!!!!!
 
Sinon évite le $id_suiv++ et utilise plutôt $id_suiv = $res->id comme j'ai dit parce que sinon :
1 > 2 > 3 > > > 6
Quand t'es à 3 ça va t'afficher le 6 et $id vaudra 4 mais après $id vaudra 5 et t'affichera encore 6...
 
Faudrait aussi transmettre une autre variable dans l'URL, par exemple nextpage.php?$down_or_up=down pour savoir si la requête SQL est WHERE ID>=N (si faut monter) ou WHERE ID<=N (si faut descendre).

n°163179
omega2
Posté le 21-06-2002 à 10:55:23  profilanswer
 

Cherrytree a écrit a écrit :

Ben ouais, mais je vois pas à quoi ça peut servir. J'ai besoin que de clés primaires dans mes tables.  



Le UNIQUE, ca sert juste à éviter qu'il y ai deux fois la même valeur dans la colone qui est mise en UNIQUE.

n°163253
Cherrytree
cn=?
Posté le 21-06-2002 à 12:03:02  profilanswer
 

omega2 a écrit a écrit :

Le UNIQUE, ca sert juste à éviter qu'il y ai deux fois la même valeur dans la colone qui est mise en UNIQUE.  



OK.


---------------
Le site de ma maman
n°163490
massanu
Posté le 21-06-2002 à 15:55:06  profilanswer
 

Dost67 a écrit a écrit :

C'est normal ça fonctionne pas je me suis planté dans les variable : $result et $resultat c'est les mêmes !!!!!!
 
Sinon évite le $id_suiv++ et utilise plutôt $id_suiv = $res->id comme j'ai dit parce que sinon :
1 > 2 > 3 > > > 6
Quand t'es à 3 ça va t'afficher le 6 et $id vaudra 4 mais après $id vaudra 5 et t'affichera encore 6...
 
Faudrait aussi transmettre une autre variable dans l'URL, par exemple nextpage.php?$down_or_up=down pour savoir si la requête SQL est WHERE ID>=N (si faut monter) ou WHERE ID<=N (si faut descendre).  




 
ok jessaye l'object $id_suiv=$res->$id
 
javais pensé a down et tup , donc je vais reflechir au probleme et je vous tiens au courant
 
jpense que ce systeme pourra en aidé plus d'un car je pense pas etre le premier a vouloir affiché les enws par page
 
merci les copaing ;-) :jap:


---------------
Oui je sais, je suis une merde en orthographe et alors ? Altcoin list: https://docs.google.com/spreadsheet [...] =286417424
n°163621
Dost67
Posté le 21-06-2002 à 18:08:49  profilanswer
 

Je viens de penser à quelque chose :

Code :
  1. SELECT * FROM matable ORDER BY id DESC LIMIT $id_suiv,1


 
Dans le cas 1 > 2 > 3 > > > 6 > 7, si tu demandes le 0 ça affiche le 1, si tu demandes le 2 ça t'affiche 3, si tu demandes le 3 ça affiche le 6, si tu demandes le 4 ça affiche le 7, etc.
 
Le seul problème c'est que $id_suiv et le vrai id dans la table ne correspondent plus.


Message édité par Dost67 le 21-06-2002 à 18:10:57
mood
Publicité
Posté le   profilanswer
 


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

  [ PHP MySQL ] Acces au prochain enregistrement ?

 

Sujets relatifs
[PHP] requete SQL, bug ou normal ?est il possible de remplacer un fichier .htpasswd par une table MySQL
[PHP] Fonction pour les mots de passe[PHP] Remplissage de tableaux
[PHP] mail()[ PHP ] Probleme pour systeme de News (DATE)
clefs dans mySQL[PHP] Formulaire --> Mail --> Inscription
[PHP] Protection page?[PHP] php://stdout
Plus de sujets relatifs à : [ PHP MySQL ] Acces au prochain enregistrement ?


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