|
Voir le sujet précédent :: Voir le sujet suivant
|
| Auteur |
Message |
| |
|
magikmanu Nouveau WRInaute
Inscrit le: 29 Jan 2004 Messages: 31
|
Posté le : Lun Nov 06, 2006 19:47 Sujet du message: ordre php |
|
|
Bonjour,
J'ai une liste de page en base de données (Page1, Page2...) et je cherche à mettre une notion d'ordre entre les pages.
En effet, un utilisateur pourra mettre la page 2 avant la page 1...
Je viens de développer avec un champs "ordre" en base, une gestion de l'ordre. mais c'est pas très pratique...
Quelqu'un aurait-il des fonctions ou explications magique ?
manu |
|
| |
|
 |
oxman WRInaute occasionnel

Inscrit le: 21 Juin 2004 Messages: 118
|
Posté le : Lun Nov 06, 2006 19:49 Sujet du message: ordre php |
|
|
Salut,
Je ne suis pas sur d'avoir compris, mais au cas ou, tu connais l'option "ORDER BY" ?
Select * from ListePage ORDER BY PageName |
|
| |
|
 |
magikmanu Nouveau WRInaute
Inscrit le: 29 Jan 2004 Messages: 31
|
Posté le : Lun Nov 06, 2006 19:53 Sujet du message: ordre php |
|
|
Non, en faite, l'affichage ne pose pas de problème (en effet order by ** ok)
mais c'est la gestion via le code PHP :
exemple:
En bbd :
id | page | ordre
1 | page1| 1
2 | page2| 2
l'utilisateur veut mettre la page 2 avant la page 1 :
Dans le code PHP je place mon champs ordre = 1 pour la page 2 et ce même champs à 2 pour la page 1
je traite en PHP
En bdd cela donne comme résultat :
Donne :
id | page | ordre
1 | page1| 2
2 | page2| 1
Puis j'affiche avec un Order By $ordre
un peu chiant mais comment faire autrement ?
Dernière édition par magikmanu le Lun Nov 06, 2006 20:00; édité 3 fois |
|
| |
|
 |
oxman WRInaute occasionnel

Inscrit le: 21 Juin 2004 Messages: 118
|
Posté le : Lun Nov 06, 2006 19:56 Sujet du message: ordre php |
|
|
Je suis désolé mais je ne comprends rien.
Peux-tu expliquer de façon plus complète ton problème et si possible donner des bouts de code concernés par le problème ?
EDIT :
Tu as édité ton message et apporté quelques compléments.
Je ne comprends toujours pas le problème.
Pour afficher les pages (qui sont bien enregistrés dans ta DB) il faut bien les récupérer de ta DB non ?
Dans ce cas tu fais :
| Code: |
$res = mysql_query("SELECT * FROM ListePage ORDER BY order ASC");
while ($d = mysql_fetch_array($res))
echo $d["PageName"]."<br>";
|
|
|
| |
|
 |
magikmanu Nouveau WRInaute
Inscrit le: 29 Jan 2004 Messages: 31
|
Posté le : Lun Nov 06, 2006 20:14 Sujet du message: ordre php |
|
|
Bon, désolé, visiblement, je n’arrive pas à être clair
Mon problème : mettre en code php la notion d’un ordre entre les pages de mon site.
Plus précisément : pour le moment, j’ai un champ dans ma base de données nommé « ordre »
Logique !
Mon vrai problème c’est si je souhaite faire un changement entre 2 pages, disons en entre la page « disons Page1 et Page2 » c’est très vite chiant.
Exemple de code
| Code: |
//pour changer l'ordre des pages
if ($mode=="up_page")
{
$OrdreMoinsUn = $ordre - 1;
$sql_update_page="UPDATE c_pages_$langue SET ordre = '$OrdreMoinsUn' WHERE id = '$id_page' AND id_rubrique='$id_rubrique'";
$result_update_page = mysql_query($sql_update_page);
$sql_update_page2="UPDATE c_pages_$langue SET ordre = '$ordre' WHERE ordre = '$OrdreMoinsUn' AND id != '$id_page' AND id_rubrique='$id_rubrique'";
$result_update_page2 = mysql_query($sql_update_page2);
}
|
Voilà, si c’est toujours pas clair, c pas grave, une bonne nuit de sommeil m’apportera peut être la solution |
|
| |
|
 |
oxman WRInaute occasionnel

Inscrit le: 21 Juin 2004 Messages: 118
|
Posté le : Lun Nov 06, 2006 20:56 Sujet du message: ordre php |
|
|
Hum.. Je crois que je comprends un peu mieux.
Mais si tu up une page, tu sais donc avec qui tu inverses ta page théoriquement.
Donc théoriquement tu as l'id des deux pages.
A partir de là c'est pas difficile de faire tes requêtes mySQL non ? |
|
| |
|
 |
magikmanu Nouveau WRInaute
Inscrit le: 29 Jan 2004 Messages: 31
|
Posté le : Lun Nov 06, 2006 21:04 Sujet du message: ordre php |
|
|
oui, j'ai le code pour faire un "down" mais c'est pas très simple :
Dans ce cas présent, c'est pas très dur, mais j'ai fait un algorithme de malade si un user souhaite ajouter une page entre la 3eme et la 4eme sur 10 en tout...
dans ce cas, c'est pas très souple... |
|
| |
|
 |
oxman WRInaute occasionnel

Inscrit le: 21 Juin 2004 Messages: 118
|
Posté le : Lun Nov 06, 2006 21:25 Sujet du message: ordre php |
|
|
Je comprends mieux le problème.
L'astuce serait sans doute de ne pas avoir "d'id" pour tes pages.
Ou ne pas avoir d'ordre.
Ainsi l'id/ordre sert d'ordre/id.
Tu inverses deux pages (up une, donc l'autre down) ?
Les requêtes sont simples dans ce cas, tu mets +1 sur un id, et -1 sur l'autre.
Si tu as mis UNIQUE sur l'id ou un truc du genre, (ce qui serait logique) tu passes une page sur un id temporaire typiquement : 0.
Insérer une page ?
Peut-être que quelque chose du genre marche :
update set id += 1 where id in (select id from c_pages_$langue where id > '$numero_de_page_choisis_a_inserer') |
|
| |
|
 |
| |
|
|