Monter/Descendre les liens dans un menu dynamqiue

Signaler
Messages postés
69
Date d'inscription
mercredi 18 février 2004
Statut
Membre
Dernière intervention
6 décembre 2007
-
SAaD44
Messages postés
69
Date d'inscription
mercredi 18 février 2004
Statut
Membre
Dernière intervention
6 décembre 2007
-
Voila ce que j'ai fait :

<?php
$requete = \"SELECT * FROM `menu_left_titre`\";
$requete1 = mysql_query($requete);
while ($voir = mysql_fetch_array($requete1)){?>
----

<?echo $voir[1];?>,

<?$requete2 = \"SELECT * FROM `menu_left_lien` where num_famille=\".$voir[0].\" order by `num`\";
$requete3 = mysql_query($requete2);
while ($voir = mysql_fetch_array($requete3)){?>
----

<?echo $voir[1];?> - ">+1,

<?}}?>

et voici la requête mysql :

<?
if($plus){
$id2 = $id+1;$sql 'UPDATE `menu_left_lien` SET `num` '.$id2.' WHERE `num` = '.$id.'';
$result=mysql_query($sql) or print 'erreur';
echo $id2;
}?>

Ce qui me permet d'ajouter +1 à la valeur inscrite dans le champ `num`, or ce champ `num` est en auto_increment, et donc unique, donc la requête mysql bloque lorsqu'elle essaye d'ajouter +1 et que le résultat donnera un chiffre deja existant. Donc les liens ne changent pas de place...
Voila, j'èspère avoir été clair :blush)

Merci et @ plouche !

P.S.: je n'arrive pas à mettre du code sur fond grisé, comment fais-t'on ?

6 réponses

Messages postés
155
Date d'inscription
samedi 3 juillet 2004
Statut
Membre
Dernière intervention
30 mai 2005

salut ,

Premier chose à faire c'est de créer un autre champ de type interger nommé par exemple position

Puis aprés quand tu crées ton tableau, tu affectes tes liens comme ceci:

Liens1 => position = 0
Liens2 => position = 100
Liens3 => position = 200
etc.....

si tu dois avoir plus de 100 liens dans ton menu alors il faut augmenter l'ecart. (Tu comprends le principe)

Aprés il te suffit juste d'ajouter 1 ou de retirer 1 à position en fonction de tes liens

et de tous classer par position

Voilà

j'éspere que j'ai été assez clair.

@++

________________
TheEwook
Messages postés
69
Date d'inscription
mercredi 18 février 2004
Statut
Membre
Dernière intervention
6 décembre 2007

Excuse moi, mais si j'ajoute 1 au lien1 par exemple, ça va donner ça :
Liens1 => position = 1
Liens2 => position = 100
Liens3 => position = 200
etc.....
et les liens seront toujours dans le même ordre...
Messages postés
155
Date d'inscription
samedi 3 juillet 2004
Statut
Membre
Dernière intervention
30 mai 2005

Salut,

exact, j'aurais réflechir un peu avant de poster

je vais voir car j'utilise justement dans mon site ce genre de procedé

je voit et je te dis quoi

@++

________________
TheEwook
Messages postés
69
Date d'inscription
mercredi 18 février 2004
Statut
Membre
Dernière intervention
6 décembre 2007

ok merci
Messages postés
155
Date d'inscription
samedi 3 juillet 2004
Statut
Membre
Dernière intervention
30 mai 2005

Salut,

Voilà la source de mon site à l'état brute :

$req_blocs=mysql_query("SELECT * FROM `modules` WHERE `id`=$id");
$result_blocs = mysql_fetch_object($req_blocs) ;



$pos_down = $result_blocs->position ;
$id_down = $id ;



$pos_up = $pos_down - 1 ;



$req_blocs=mysql_query("SELECT * FROM `modules` WHERE `position`=$pos_up and `emplacement`=$result_blocs->emplacement");
$result_blocs = mysql_fetch_object($req_blocs) ;



$id_up = $result_blocs->id ;



//echo "$pos_down <=> $pos_up
$id_down <=> $id_up" ;



mysql_query("UPDATE `modules` SET position=$pos_down WHERE `id`=$id_up") ;
mysql_query("UPDATE `modules` SET position=$pos_up WHERE `id`=$id_down") ;

La table module est la table où sont stockés les liens avec leur emplacement

voilà

@++

________________
TheEwook
http://www.codes-studio.com
Messages postés
69
Date d'inscription
mercredi 18 février 2004
Statut
Membre
Dernière intervention
6 décembre 2007

merci,

mais malheureusemnt j'ai du mal à faire fonctionner ce code...


<?php

$conn = mysql_connect("localhost", "root", "");

mysql_select_db("test",$conn) or
die ("

Connexion à la
base impossible
");

$req_blocs=mysql_query("SELECT * FROM `modules` WHERE `id`=$id");

$result_blocs = mysql_fetch_object($req_blocs) ;

$pos_down = $result_blocs->position ;

$id_down = $id ;

$pos_up = $pos_down - 1 ;

$req_blocs=mysql_query("SELECT * FROM `modules` WHERE `position`=$pos_up and `emplacement`=$result_blocs->emplacement");

$result_blocs = mysql_fetch_object($req_blocs) ;

$id_up = $result_blocs->id ;

echo "$pos_down <=> $pos_up
$id_down <=> $id_up

" ;

mysql_query("UPDATE `modules` SET position=$pos_down WHERE `id`=$id_up") ;

mysql_query("UPDATE `modules` SET position=$pos_up WHERE `id`=$id_down") ;

$sql="SELECT * FROM `modules` order by `position`";

$res=mysql_query($sql);

while($var = mysql_fetch_array($res)){

echo $var["nom"]." - Action

lien2 - Action

lien3 - Action

lien4 - Action

lien5 - Action






Je ne comprend pas trop ce que ce code fait, pourrais-tu m'expliquer stp

Comment fai-je pour faire un lien "monter" et un lien "descendre"

merci