|
|||||||
| Développements Tout ce qui touche au développement d'applications ou du Web |
![]() |
|
|
LinkBack (4) | Outils de la discussion | Modes d'affichage |
|
|
#1 (permalink)
|
|
Débutant
![]() Date d'inscription: août 2004
Localisation: Lyon
Messages: 738
Pouvoir de réputation: 61
![]() |
Bonjour,
Voilà j'aimerai savoir si quelqu'un peu me donné des info sur comment cree un requete specifique. En fait j'ai un fait un blog sur lequel, je post des messages, bon pour afficher les messages, le listing pas de problème mais là j'aimerai rajouter sur la page ou l'on vois un post, un lien precedent et suivant vers les posts precedent et suivant. Malheureusement pour moi je ne vois plus comment faire car les post sont enregistrer dans la BD avec un ID qui ne suis pas specialement donc je ne peux pas faire l'ID du post en cours -1 ou +1. Y a t'il une fonction qui permet de demander a aller chercher l'entrée precedente/suivante dans MySQL ? Genre ma requete est ainsi là pour le post a afficher : [PHP]SELECT UNIX_TIMESTAMP(date) AS date,id,ref,titre,texte,musique,tv,vtt FROM blog WHERE `id`='980'[/PHP] Le post precedent à un ID à 976 mais cela pourrait etre 978 ou autre. Merci
__________________
Un écran s'éteint, un être s'éveille... |
|
|
|
|
|
#3 (permalink) |
|
Informaticien du dimanche
![]() Date d'inscription: mars 2003
Localisation: Autrefois, on appelait cela Europe
Messages: 7 010
Pouvoir de réputation: 386
![]() ![]() |
Salut,
* Si les id suivent l'ordre chronologique, c'est à dire si l'assertion suivante est vérifiée : si id1 > id2 alors date1 > date2 Avancer d'un message Code:
SELECT UNIX_TIMESTAMP(date) AS date,id,ref,titre,texte,musique,tv,vtt FROM blog WHERE `id`> $id_affiche ORDER BY id ASC LIMIT 0,1 Code:
SELECT UNIX_TIMESTAMP(date) AS date,id,ref,titre,texte,musique,tv,vtt FROM blog WHERE `id`< $id_affiche ORDER BY id DESC LIMIT 0,1 * Dans le cas contraire on peut se baser de façon plus sûre sur la date selon le même schéma : Code:
SELECT UNIX_TIMESTAMP(date) AS date,id,ref,titre,texte,musique,tv,vtt FROM blog WHERE date > $date_affiche ORDER BY date ASC LIMIT 0,1 Code:
SELECT UNIX_TIMESTAMP(date) AS date,id,ref,titre,texte,musique,tv,vtt FROM blog WHERE date < $date_affiche ORDER BY date DESC LIMIT 0,1 N'oublie pas de tenir compte des extrêmités de la chaîne (premier et derniers messages).
__________________
Turn the page, the question lies between the lines Will we, will you... Can we, can you, can we change? - Symphony X - |
|
|
|
|
|
#4 (permalink) |
|
Débutant
![]() Date d'inscription: août 2004
Localisation: Lyon
Messages: 738
Pouvoir de réputation: 61
![]() |
Merci de vos reponses, j'ai fais ainsi comme suis
Message suivant [PHP]<?php $req_inf = mysql_query("CREATE TEMPORARY TABLE temp SELECT ID,REF,TITRE FROM $dbblog WHERE REF =0"); $req_inf = mysql_query("SELECT MAX(ID) FROM temp WHERE ID <$id"); $res_inf = mysql_result($req_inf, 0); $req_inf2 = mysql_query("SELECT TITRE FROM temp WHERE ID =$res_inf"); $res_inf2 = mysql_result($req_inf2, 0); $req_inf = mysql_query("DROP TABLE temp");[/PHP] Message précédent [PHP]<?php $req_sup = mysql_query("CREATE TEMPORARY TABLE temp SELECT ID,REF,TITRE FROM $dbblog WHERE REF =0"); $req_sup = mysql_query("SELECT MIN(ID) FROM temp WHERE ID >$id"); $res_sup = mysql_result($req_sup, 0); $req_sup2 = mysql_query("SELECT TITRE FROM temp WHERE ID =$res_sup"); $res_sup2 = mysql_result($req_sup2, 0); $req_sup = mysql_query("DROP TABLE temp");[/PHP] Y a surement plus facile mais bon j'apprend doucement
__________________
Un écran s'éteint, un être s'éveille... |
|
|
|
|
|
#5 (permalink) |
|
Informaticien du dimanche
![]() Date d'inscription: mars 2003
Localisation: Autrefois, on appelait cela Europe
Messages: 7 010
Pouvoir de réputation: 386
![]() ![]() |
Je ne vois pas pourquoi tu crées une table temporaire. Ensuite tu fais une requête juste pour avoir l'id puis une autre pour extraire les infos. Pas du tout optimisé ton truc, il ne devrait y avoir qu'une requête, tu en fais 4.
Les requêtes que j'avais postées ne marchent pas ?
__________________
Turn the page, the question lies between the lines Will we, will you... Can we, can you, can we change? - Symphony X - |
|
|
|
|
|
#6 (permalink) |
|
Débutant
![]() Date d'inscription: août 2004
Localisation: Lyon
Messages: 738
Pouvoir de réputation: 61
![]() |
Pas pu les testé je pense que des le depart quand j'ai créer mon blog j'ai aps du tout été dans la demarche de cree des tables SQL optimisé du coup comme les infos sont toutes dans la meme table si je veux sortir toutes les infos que j'ai besoin je dois faire plusieurs requetes.
Pour la table temporaire, sans elle ca ne fonctionnait pas. Pas optimisé c'est sur lol je suis un gros débutant, mais bon disons que vu que ca marche ainsi je vais y laisser de plus vu le passage presque anecdotique sur ce blog mdr ca ne va pas etre trop ce qui va charger le serveur. Merci encore a vous
__________________
Un écran s'éteint, un être s'éveille... |
|
|
|
|
|
#7 (permalink) | |
|
Informaticien du dimanche
![]() Date d'inscription: mars 2003
Localisation: Autrefois, on appelait cela Europe
Messages: 7 010
Pouvoir de réputation: 386
![]() ![]() |
Citation:
Autre chose, si tu postes des questions, qu'on te donne des solutions (foireuses ou pas, ce n'est pas le problème) et que tu ne prends même pas la peine de les tester, il ne faudra pas t'étonner de recevoir de moins en moins de réponses.
__________________
Turn the page, the question lies between the lines Will we, will you... Can we, can you, can we change? - Symphony X - Dernière modification par Kikof 18/10/2006 à 18h13. |
|
|
|
|
|
|
#8 (permalink) |
|
Débutant
![]() Date d'inscription: août 2004
Localisation: Lyon
Messages: 738
Pouvoir de réputation: 61
![]() |
Mais qui te dis que je ne teste pas ?
Bien sur que je test, j'ai testé au fait et ca ne va pas, car les commentaires s'interpose dans les date et ID des posts, ca recul effectivement ou ca avance mais ca ne chope du coup pas le post je dirai "master" suivant mais les comms. De toute façon c'est ma faute j'aurai du departagé les posts des commentaires avec une colonne specifique. Enfin j'ai appris (et oui dur dur) comment donc on selectionne une colonne et tout.
__________________
Un écran s'éteint, un être s'éveille... Dernière modification par Fireman 02/11/2006 à 01h59. |
|
|
|
|
|
#9 (permalink) | ||||
|
Informaticien du dimanche
![]() Date d'inscription: mars 2003
Localisation: Autrefois, on appelait cela Europe
Messages: 7 010
Pouvoir de réputation: 386
![]() ![]() |
Citation:
![]() Citation:
Citation:
Citation:
Avancer d'un message [php]SELECT UNIX_TIMESTAMP(date) AS date,id,ref,titre,texte,musique,tv,vtt FROM blog WHERE (ref = 0 and id > $id_affiche) ORDER BY id ASC LIMIT 0,1[/php] Reculer d'un message [php]SELECT UNIX_TIMESTAMP(date) AS date,id,ref,titre,texte,musique,tv,vtt FROM blog WHERE (ref = 0 and id < $id_affiche) ORDER BY id DESC LIMIT 0,1[/php]Peut être... Ou peut être pas. C'est là tout le charme du binaire. |
||||
|
|
|
![]() |
|
|
|||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||
| Outils de la discussion | |
| Modes d'affichage | |
Discussions similaires
|
||||
| Discussion | Auteur | Forum | Réponses | Dernier message |
| Probleme De Php | fld46 | Développements | 1 | 21/02/2005 16h48 |
| Requête Sql | JANTTO | Développements | 25 | 26/11/2004 22h35 |
| Requête Sql De Mise à Jour De Donnée | Axacilum | Développements | 2 | 14/09/2004 09h09 |
| Echec De La Requête De Ping | Gadwin | Réseaux locaux | 7 | 28/07/2004 08h30 |
| Prob De Format Du Texte (php/sql) | ludoweb | Développements | 4 | 05/07/2004 13h44 |