Comment accéder à l'enregistrement suivant ou précédent? - PHP - Programmation
Marsh Posté le 12-08-2008 à 14:19:21
Heu pourquoi id_membre < .. ou > ... ?
Si tu veux sortir un record à la fois :
precendent : id_membre = $_GET['id_membre]-1
suivant : id_membre = $_GET['id_membre]+1
Marsh Posté le 12-08-2008 à 14:31:09
esox_ch a écrit : Heu pourquoi id_membre < .. ou > ... ? |
Mais si les id ne se suivent pas, c'est la merde.
Dans ce cas, il faut jouer avec le LIMIT. Tu appelles ta table toujours dans le même sens (DESC ou ASC, au choix) et tu stockes id_aff qui sera l'id à afficher. Et tu fais :
Code :
|
Marsh Posté le 12-08-2008 à 16:05:48
bingojm a écrit : Salut à tous,
|
Il faut que tu échappes tes données avec mysql_real_escape_string() avant de les placer dans ta requête SQL.
($_GET['id_membre'])
Marsh Posté le 12-08-2008 à 18:31:00
Je suis perdu moi...
Si on prend ca dans l'ordre, je dois faire un mysql_real_escape_string() avant mon $result2=mysql_query...?
Si tel est le cas, vous voulez bien me donner un exemple d'écriture, parce que j'ai vmt du mal à suivre...
Mais après, quel lien dois-je mettre pour avoir un suivant, précédent?
et mon $result2 va me permettre de passer au champ suivant ou juste afficher une info?
Merci pour votre aide, vmt sympa.
Marsh Posté le 12-08-2008 à 18:39:10
=> mysql_read_escape_string() est une fonction de la doc, le plus simple pour que tu comprennes à quoi elle sert c'est que tu regardes dans la doc
=> T'as compris à quoi sert mysql_query?
=> T'as compris ce que fait ta requete?
Parce que ta phrase "et mon $result2 va me permettre de passer au champ suivant ou juste afficher une info? " veut rien dire
Marsh Posté le 13-08-2008 à 09:42:27
Voilà où j'en suis. J'ai récupéré les données de ma table une par une, maintenant, le problème est bien "comment passer au champ suivant en cliquant sur suivant et précédent":
Est-ce que les $result1 et $result2 sont corrects? Mais je ne vois pas comment exécuter ca avec une lien sur suivant et précédent...
Code :
|
Merci d'avance pour votre aide!
Marsh Posté le 13-08-2008 à 09:44:38
avant ta requête, fait :
Code :
|
Puis dans ta requête remplace $_GET['id_membre'] par $id_membre. Ca remplace le mysql_real_escape_string, et force le type de id_membre à int.
Marsh Posté le 13-08-2008 à 09:53:31
Merci bien. Voici les modifs. sachant que cette page s'appelle liste_membres.php, comment dois-je adapter les liens "suivant" et "précédent" pour que la page se recharge et affiche les infos suivantes (ou précédentes).
Code :
|
Marsh Posté le 13-08-2008 à 10:00:09
Tu fais :
Code :
|
Marsh Posté le 13-08-2008 à 10:22:12
Voilà ce que j'ai mis:
Code :
|
Et avec ca, j'ai le message suivant: Unknown column '$id_membre' in 'where clause'
Une idée?
Marsh Posté le 13-08-2008 à 11:03:09
J'ai trouvé une erreur, j'ai oublié les quotes.
Maintenant, voici mon code, mais je n'arrive pas à passer à l'enregistrement suivant. Est-ce que $id_membre--; et $id_membre+=2; sont bien liés avec $result1 et $result2? J'ai plutôt l'impression que ca me fait juste +1 ou -1, mais j'aime mieux utiliser < et > (voir $result1) car si un enregistrement est supprimé, ca n'ira plus...
Mais je coince vraiment pour afficher cet enregistrement suivant. Si $result1 et $result2 sont corrects, comment écrire le lien "suivant" en le liant avec $result1?
Code :
|
Marsh Posté le 13-08-2008 à 12:12:30
T'aime bien te faire chier toi
T'as pas l'impression que ce serait plus simple comme ça :
Code :
|
(ou en remplaçant <?= par <?php echo au besoin quoi).
Et de toute façon ça va pas ton truc... C'est PAS parce qu'un membre à l'ID 591 que le membre précédent à le 590 et le suivant le 592
Marsh Posté le 13-08-2008 à 13:46:50
Il peut s'en sortir avec un select sur toute la base avec id > $id_membre LIMIT 1 (et id < $id_membre respectivement) mais niveau perf c'est bof
Doit surement avoir moyen de faire mieux
Marsh Posté le 13-08-2008 à 13:58:23
esox_ch a écrit : Doit surement avoir moyen de faire mieux |
Yes, le mieux est de gérer directement l'emplacement dans la table (attention, ca ne marche bien que si : ou une seule personne travaille sur la table, ou les enregistrements s'ajoutent à la fin)
Tu vas gérer un nouvel id (seulement dans les pages php), en pseudo code, ca donne :
Code :
|
Marsh Posté le 13-08-2008 à 20:39:10
Dj YeLL a écrit :
|
Marche pas chez moi (short_open_tags)
Dj YeLL a écrit : |
Marsh Posté le 13-08-2008 à 20:43:37
Y'a quelque chose de pas clair dans ce que j'ai mis entre parenthèses ?
Quoi ? T'arrives pas comprendre que j'ai oublié un "pas"
Marsh Posté le 13-08-2008 à 21:06:25
Dj YeLL a écrit : |
Dj YeLL a écrit : |
Dans les deux cas j'ai lu trop, vite c'est bon quoi
Marsh Posté le 12-08-2008 à 13:29:59
Salut à tous,
Je cherche désespérément le moyen d'afficher les enregistrements de ma table, un par un, avec des liens 'suivant' et 'précédent'.
Voilà où j'en suis, mais après, j'ignore vmt ce que je dois mettre...
Merci d'avance...