[PHP] Menus dynamique , faire monter ou descendre des liens.

Nouveau WRInaute
Bonjour :)

J'aimerai avoir un système de déplacement du style "Monter/Descendre" dans des menus dynamiques :)

J'ai trouvé une solution mais je sais pas si elle est vraiment adéquate...

En fait, les liens seront gérés grâce à une table mysql.
Un champ nommé position contiendrai des chiffres.
Un order by "position" suffirai pour classer ces liens.

Mais pour faire monter ou descendre un lien, il faudrait changer les valeurs du champ position du lien en question et du lien avant ou après celui-ci.

Je trouve cela assez compliquer, sans compter pour le 1er ou dernier lien, ou il est impossible de monter ou descendre...

Donc je sais pas trop comment faire, si vous avec une meilleur solution :)

Merci d'avance
 
WRInaute impliqué
J'ai déjà fait ca t'as de la chance :D

Champ pour l'ordre : priorite
Table : tickets
id : Id du lien par exemple

Après faut un lien qui fasse un $_GET['mod'] == plus ou $_GET['mod'] == moins pour monter / descendre;)

Si t'as besoin d'aide n'hésite pas

Code:
$sql = $db->sql_query('SELECT `priorite` FROM `tickets` WHERE `id` = "'.$_GET['id'].'" LIMIT 1');
	$priorite = mysql_fetch_row($sql);
	$priorite = $priorite[0];

	if($_GET['mod'] == 'plus') {
		mysql_query('UPDATE `tickets` SET priorite = priorite-1 WHERE `priorite` = "'.($priorite+1).'" AND `perdant` = "0"');
		mysql_query('UPDATE `tickets` SET priorite = priorite+1 WHERE `id` = "'.$_GET['id'].'" AND `perdant` = "0"');
	}
	if($_GET['mod'] == 'moins') {
		mysql_query('UPDATE `tickets` SET priorite = priorite+1 WHERE `priorite` = "'.($priorite-1).'" AND `perdant` = "0"');
		mysql_query('UPDATE `tickets` SET priorite = priorite-1 WHERE `id` = "'.$_GET['id'].'" AND `perdant` = "0"');

	}
 
Nouveau WRInaute
Merci pour ta réponse et ta sympathie :)

Je pense avoir saisit le concept :)
Au cas ou, je reposte :)

MERCI ;)
 
WRInaute passionné
Nota bene : d'un point de vue sécurité, ne jamais faire de requete SQL avec les valeurs de $_GET directement !
fais au moins un intval() dessus avant.
 
Discussions similaires
Haut