Page 1 sur 1

changer l'ordre d'affichage

Posté : 14 oct. 2008, 17:26
par moileraz
Bonjour,
dans ma base de données j'ai plusieurs images, qui sont affiché en fonction de leurs ID. J'aimerai rajouté un champs "position" afin de pouvoir les affichés dans n'importe quel ordre.

Auriez vous une fonction pour le faire.

J'ai essayé de trouver une solution mais en vain.

merci d'avance pour votre aide

Posté : 14 oct. 2008, 20:54
par Aureusms
Ici on rase gratis...

Plus sérieusement, essaye dans ta base d'indiquer une colonne position qui te donneras cette fameuse position. Ensuite avec une page admin tu donne cette position.

Posté : 14 oct. 2008, 21:06
par moileraz
Salut merci pour ta réponse,
ca je sais mais mon problème c'est quand j'ai 10 images qui sont dans cette position


1
2
3
4
5
6
7
8
9
10


et que je veut mettre l'image 10 en position 2 il faut que je modifie la position de l'image 2 jusqu'au 9eme

voila

Posté : 14 oct. 2008, 21:18
par Calimero
Salut merci pour ta réponse,
ca je sais mais mon problème c'est quand j'ai 10 images qui sont dans cette position


1
2
3
4
5
6
7
8
9
10


et que je veut mettre l'image 10 en position 2 il faut que je modifie la position de l'image 2 jusqu'au 9eme

voila
C'est beaucoup plus clair comme problème (je pense que tu ne l'avais pas du tout bien expliqué dans ton post initial). Tu souhaites donc pouvoir gérer cet ordre dans une interface.

Déjà tu supposes que le champ d'ordre doit être un entier positif. Ce n'est pas obligatoire, même si c'est le cas le plus classique.

Le problème évident que tu as remarqué est que si tu veux insérer un élément en position 2 (entre l'élément d'ordre 1 et l'élément d'ordre 2), tu te retrouves obligé d'incrémenter tout ce qui est >=2, car il n'y a aucune possibilité dans l'univers entier positif entre 1 et 2.

Ca se fait très facilement en SQL :

Code : Tout sélectionner

UPDATE latable SET lechampordre=lechampordre+1 WHERE lechampordre >=2;
Quel est ton réel problème en fait ? :-)

Posté : 14 oct. 2008, 21:26
par Aureusms
Bien Ok je vais t'aider un peu :
Utilises la fonction array_slice() http://www.manuelphp.com/php/function.array-slice.php bien pratique dans ton cas.
<?php
$tab = array (1,2,3,4,5,6,7,8,9,10);
$tab_temp1 = array_slice(0,1); //on récupère que la variable 1
$tab_temp2 = array_slice(1,8) //on récupère 2,3,4,5,6,7,8,9

array_push ($tab_temp1,10); //on insère la variabel 10 au premier tableau qui devient 1,10

$tab_fin = array_combine ($tab_temp1,$tab_temp2); //on fusionne les deux tableaux.

?>
il te reste plus qu'à tester où se trouve la clef de ta variable que tu veux "switcher" et ainsi calculer les données pour array_slice. Utilises array_keys http://www.manuelphp.com/php/function.array-keys.php pour cela mais là je te laisse un peu chercher...

Posté : 15 oct. 2008, 12:07
par moileraz
Bonjour,
merci à tout les deux de votre aide car j'arrivé pas vraiment à trouver la logique pour mettre ca en route.

je vais faire les testes et vous dire ou ca en est