Acces au prochain enregistrement ? [ PHP MySQL ] - PHP - Programmation
Marsh Posté le 17-06-2002 à 17:32:53
C koi ta requète ?
Tu fais comment pour accéder à tes données MySQL ?
Marsh Posté le 17-06-2002 à 17:33:07
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.
Marsh Posté le 17-06-2002 à 17:38:01
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))
Marsh Posté le 17-06-2002 à 17:41:15
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 :
|
Marsh Posté le 17-06-2002 à 17:48:57
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.
Marsh Posté le 17-06-2002 à 17:51:12
non non ça je c lol je parle de la structure de aprcours d'id.
Marsh Posté le 17-06-2002 à 23:02:39
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 ?
Marsh Posté le 18-06-2002 à 11:07:24
bonjour
Marsh Posté le 18-06-2002 à 11:29:33
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 ?
Marsh Posté le 18-06-2002 à 11:30:21
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
Marsh Posté le 18-06-2002 à 11:31:21
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).
Marsh Posté le 18-06-2002 à 11:48:33
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
Marsh Posté le 18-06-2002 à 13:42:11
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.
Marsh Posté le 18-06-2002 à 14:00:21
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.
Marsh Posté le 18-06-2002 à 23:42:16
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 ?
Marsh Posté le 18-06-2002 à 23:55:53
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 :
|
Ce code n'est pas top propre, mais bon ça illustre le truc. Qu'est ce qui te bloque ?
Marsh Posté le 19-06-2002 à 11:47:46
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
Marsh Posté le 19-06-2002 à 23:57:29
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 :
|
3. Pour le nombre d'enregistrements :
Code :
|
4. Pour le problème de pages cassées :
Code :
|
puis pour le lien
Code :
|
Marsh Posté le 20-06-2002 à 01:13:03
En fait ça sert à quoi UNIQUE ? J'ai vu que Primary key en cours.
Marsh Posté le 21-06-2002 à 00:42:24
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
Marsh Posté le 21-06-2002 à 00:48:51
Ben ouais, mais je vois pas à quoi ça peut servir. J'ai besoin que de clés primaires dans mes tables.
Marsh Posté le 21-06-2002 à 00:55:04
Dost67 a écrit a écrit : 1. 4. Pour le problème de pages cassées :
puis pour le lien
|
Ya un truc
ca marche pas cette portion de code
pour la page suivante je met
Code :
|
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 :
|
mon $id_suiv ne prend aucune valeur, bizarre...
Marsh Posté le 21-06-2002 à 10:51:29
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).
Marsh Posté le 21-06-2002 à 10:55:23
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.
Marsh Posté le 21-06-2002 à 12:03:02
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.
Marsh Posté le 21-06-2002 à 15:55:06
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 ;-)
Marsh Posté le 21-06-2002 à 18:08:49
Je viens de penser à quelque chose :
Code :
|
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.
Marsh Posté le 17-06-2002 à 17:28:58
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