Page 1 sur 1

Changement d'ordre (monter et descendre)

Posté : 23 févr. 2007, 17:13
par angebleu17
Bonjour,

j'aimerais modifier l'ordre des questions, j'ai créé un champ priorite dans ma table question.

Donc sur ma page j'ai un lien monter et descendre pour chaque question.
Donc mon code marche, quand je clique sur monter, le chiffre augmente de 1 et inverse pour descendre. Par contre je n'arrive pas a remplacer les priorité.

Par exemple je monte une question qui est en priorite 1 dc elle passe a 2, et j'aimerais que celle qui était a 2 passe à 1.. j'ai fait plusieur essai mais ça ne marche pas trop.. je vous met mon code de départ qui marche :

D'abord je récupére le nombre de question,
if ($action == 'plus')
{
		
	$sql2 = "SELECT priorite FROM question WHERE id_question = '$id_question' ";

	$req2 = mysql_query($sql2); 

	while($valeur = mysql_fetch_array($req2))
			{ 
			$priorite= $valeur['priorite'];
			}

		//afficher les limites	
		if ($priorite < $nb_question)
		{
//position2 correspond à la position avant le changement
		$position2 = $priorite;
		$priorite = $priorite + 1;		
		$sql2 = "UPDATE question SET priorite = '$priorite' WHERE id_question = '$id_question'";
		$req2 = mysql_query($sql2); 
	
		//redirection
		header('Location: priorite.php?id2='.$id_sondage.'&position='.$priorite.'&position2='.$position2.'');
		}
		else
		{
		echo'<p></p>';
		echo 'La question est au maximum.';
		echo'<p></p>';
		echo'<input type="button" class ="boutonpale" value="Retour" onClick="history.back()">';
		}

}		
c'est la même procédure pour action = moins .

dc dans ma page de redirection (priorite), je récupére l'ancienne position (position2) et la nouvelle (position).

Et là je suis bloqué... quelqu'un peut m'aider ?

j'ai essayer de faire des requêtes de mise a jour mais ça ne marche pas trop..

Posté : 26 févr. 2007, 09:57
par angebleu17
personne peut m'aider ?

Posté : 26 févr. 2007, 11:54
par Ryle
Modération :
angebleu17, les "up" sont interdits sur PHPFrance.


Pour ton soucis, ce qu'il te faudrait, c'est avant que tu ne montes un élément, tu ailles chercher celui qui a la priorité que tu veux remplacer et que tu fasses un update pour le décrémenter..

Code : Tout sélectionner

UPDATE table SET priorite = priorite - 1 WHERE id_sondage = ... AND priorite = $priorite