begin process at 2012 02 12 07:10:32
  Trouver un code source :
 
dans
 
Accueil > Forum > 

PHP

 > 

Divers

 > 

Débutant(e)

 > 

lien suivant et précédent


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

lien suivant et précédent

samedi 3 février 2007 à 11:03:46 | lien suivant et précédent

titeuf974

Bonjour!!
Voila, en fait je bute sur un petit problème...

j'ai des données enregistrés dasn une table .
j'affiche donc sur une page un enregistrement qui a l'id 5 par exemple.
je voudrai faire un lien pour afficher le precedent et le suivant.

alors moi je pensais qu'il suffisait de faire un lien avec comme variable id-1 (pour precedent) et id+1 (pour suivant).
le problème est que j'efface régulièrement des données, donc je me retrouve avecdes trous...
par exemple, j'ai efface celui qui a l'id 4, donc si je fait precedent avec la methode cité plus haut, j'aurai une erreur !!! :(

je voudrai donc pouvoir trouver une methode pour trouver l'id le precedent et suivant le plus proche. Une idée?? une piste??? Ca serait bien sympa!!!!

merci d'avance.


samedi 3 février 2007 à 11:26:12 | Re : lien suivant et précédent

Benz

Bonjour titeuf974,

Je ne connais pas la procédure exacte pour faire ce que tu veux en PHP, mais tu peux chercher du coté de la pagination.
Ce qu'il faut je pense, c'est faire une requete sur la totalité des fiches dont tu as besoin et n'en affiche qu'une par page. C'est le même principe que lorsque tu as une très grande liste mais que pour des raison pratiques tu n'en affiche que 20 par page.
Exactement ce que fais ce site dans la page de résultat par exemple. Là, tu n'auras plus aucun problème avec tes trous.

C'est juste une piste, mais j'espère que ca t'aidera à trouver le bon code.

Benoit


Besoin d'argent ? Domicile-Job >> Travail à domicile
Envie de jouer ? Le Sanktuaire >> Ressources jeux de roles
samedi 3 février 2007 à 11:51:18 | Re : lien suivant et précédent

titeuf974

je vois ce que tu veux dire. c'est pas bête! je vais jeter un oeil pr voir s'il y possibilité de coder un truc... merci!
samedi 3 février 2007 à 11:57:33 | Re : lien suivant et précédent

malalam

Administrateur CodeS-SourceS
Réponse acceptée !
Hello,

Ou bien tu passes ton id - ou + 1, avec la direction (-, ou +).
Et quand tu réaffiches ta page avec ces 2 nouvelles variables, tu fais ta requête de cette façon, pour aller chercher l'ID correct :
si $_GET['dir'] === '+' alors  : SELECT MIN(id) FROM tatable WHERE id >= $_GET['id']
si $_GET['dir'] === '-' alors : SELECT MAX(id) FROM tatable WHERE id <= $_GET['id']

dimanche 4 février 2007 à 04:53:45 | Re : lien suivant et précédent

titeuf425

Bonjour!
j'ai testé un peu toutes les solutions, pour arriver à un résultat qui ressemble à ça :

//je fais la requète

$query = "SELECT id_article,id_item,titre_article,titre_item FROM table1,table2 WHERE ......
$result = mysql_query($query) .......

//cette requète me donne tous les article d'un thème. ensuite j'éxécute la requète et je crée un tableau qui contient le résultat de ma requète


$array_resultat = array();

foreach($result as $contents) {
 
          array_push($array_resultat,array("id_article" => $contents['id_article'],"id_item" => $contents['id_item'], "titre_article" => $contents['titre_article']));
}

//ensuite je parcours le tableau des résultats avec une boucle for et j'affiche mes liens

$nbre = count($array_resultat);

for($i=0;$i<$nbre;$i++) {
                                                                                       
          //lien précédent. $id_article, est l'article courant que je passe en get
        
          if($array_resultat[$i]['id_article']== $idarticle AND $i-1>=0) {
                  
                         echo $array_resultat[$i-1]['titre_article'];
                                                                                       
           }
           
            //lien suivant.                                                                    
            if($array_resultat[$i]['id_article']== $idarticle AND $i+1<$nbre) {
                                                                                         
                           echo $array_resultat[$i+1]['titre_article'];
            }
                                                                               
}

Voila. un peut tiré par les cheveux je pense, mais ça fonctionne... Qu'en pensez vous???

Merci...

lundi 5 février 2007 à 20:38:16 | Re : lien suivant et précédent

Kdecherf

Bonsoir, une autre possibilité :

$previous = 0;
$next = 0;

$request = mysql_query("La requete ... ORDER `id` ASC");

while ($rest = mysql_fetch_array($request))
{
   if ($rest['id'] == $idrecherche)
   {
      // code à executer
   }
   else if ($rest['id'] < $idrecherche)
   {
      $previous = $rest['id'];
   }
   else if ($rest['id'] > $idrecherche)
   { 
      $next = $rest['id'];
   }
}

// On affiche le résultat final, avec pour id précédent $previous, et suivant $next

Ici on n'a pas besoin de comparer les valeurs existantes avec les valeurs allant être assignées à $next ou $previous puisque les requêtes sont classées selon l'ordre croissant 'id' (nécesssite que le champ soit de type INT ou un dérivé de INT)

Pas testé, mais normalement opérationnel

Cordialement,
Kdecherf
mardi 6 février 2007 à 03:19:13 | Re : lien suivant et précédent

titeuf974

bonjour!!
je vais tester votre solution... je vous tiens au courant!!
merci!!


mardi 6 février 2007 à 08:01:15 | Re : lien suivant et précédent

malalam

Administrateur CodeS-SourceS
Heu...cette dernière solution est particulièrement bourrine...sans vouloit vexer son auteur, on peut difficilement faire pire. Je te la déconseille. Tu parcours TOUT ton jeu de résultat dans une boucle pour en récupérer 2 valeurs seulement...Et en plus, le résultat va être faux.($next sera tjrs le dernier id de ta base, jamais le "prochain" par rapport à ton id courant).

mardi 6 février 2007 à 10:50:33 | Re : lien suivant et précédent

titeuf974

ahhhh... vu comme ça... et que pensez vous de ma solution ?? Potable ou peut faire mieux ?? Je viens de réussir à faire fonctionner votre solution. Mon script générait une erreur dont je viens de trouver l'origine. Votre solution m'a l'air bien plus simple en fait....

cordialement...


mardi 6 février 2007 à 16:44:36 | Re : lien suivant et précédent

malalam

Administrateur CodeS-SourceS
Ma solution est plus légère, mais bon.
Là tu fais de grosses boucles pour pas grandchose.


1 2

Cette discussion est classée dans : problème, lien, id, precedent, précédent


Répondre à ce message

Sujets en rapport avec ce message

Opération sur une variable lors de son passage dans un lien ? [ par Misutsu ] Bonsoir :)Voilà, je me demandais s'il était possible de faire une opération sur une variable lors de son passage dans un lien donc ex : J'ai ça :"bidu Problème avec un lien en php [ par iomega ] Bonjour à tous j'ai un problème avec ce lien qui contient du phpj'ai ce message d'erreurErreur attendu ")" quelqu'un a-t-il une idéemerci de votre aid help! [ par LeRoux ] Je ne suis pas un pro. de PHP, mais j'aimerais savoir comment ouvrir, dans une page html, un id que le n'on connait pas auparavent: j'ai une feuille d problème de redirection [ par kwak ] Bonjour à tous,je me trouve depuis quelques temps déjà confronté à un problème de redirection. Ici le problème se pose pour rediriger l'utilisateur se session + formulaire [ par Orcus ] G un problème très simple, mais je n'arrive pas à le résoudre et je ne vois pas le problème ! J'ouvre ma page a.php (aucun problème), je remplie le fo Ahh problème de lien ou de session Ahh Comprend pas [ par Tiriel ] Ahh Salut!!!J'ai un problème avec le lien ci-dessous :function creertablig($result){?><br Frame qui marche pas !? [ par AshenShugar ] Salut tout le monde,mon petit problème est le suivant. J'ai une fenêtre avec des frames, une en haut pour la pub, une a gauche pour le menu et a droit lien du type nom.php?id=x [ par apego ] Bonjour,Je débute et je n'arrive pas à cerber ce que représentent les caractères qui suivent les url ...... je m'explique :Pour ce lien :http://www.ph problème avec tablo et balise select dynamique [ par lookoom ] salutj'me casse les dents sur un script et j'viens chercher un peu d'aide !!j'ai un tablo avec une colonne contenant des "select" pour choisir le nomb Order by problème [ par Developpator ] Hello,Je fais une requête sur une table comprenant id de type char. Lorsque le sélectionne tous les champs de ma table et que je décide de les trier e


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 4,462 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales