ordre php
8 messages
• Page 1 sur 1
- magikmanu
- WRInaute discret

- Messages: 57
- Inscription: 29 Jan 2004
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
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
- magikmanu
- WRInaute discret

- Messages: 57
- Inscription: 29 Jan 2004
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 ?
mais c'est la gestion via le code PHP :
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 19:00, édité 3 fois.
- oxman
- WRInaute discret

- Messages: 118
- Inscription: 21 Juin 2004
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 :
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: Tout sélectionner
$res = mysql_query("SELECT * FROM ListePage ORDER BY order ASC");
while ($d = mysql_fetch_array($res))
echo $d["PageName"]."<br>";
- magikmanu
- WRInaute discret

- Messages: 57
- Inscription: 29 Jan 2004
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
Voilà, si c’est toujours pas clair, c pas grave, une bonne nuit de sommeil m’apportera peut être la solution
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: Tout sélectionner
//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 discret

- Messages: 118
- Inscription: 21 Juin 2004
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 ?
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
- WRInaute discret

- Messages: 57
- Inscription: 29 Jan 2004
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...
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 discret

- Messages: 118
- Inscription: 21 Juin 2004
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')
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')
8 messages
• Page 1 sur 1
Lectures recommandées sur ce thème :
- Recherche dans l'actualité WebRankInfo - 22-10-2005
- Les deux échelles du PageRank - 10-08-2004
- Les 2 échelles de PageRank : toolbar et DMOZ - 10-08-2004
- Calculer l'indice de co-occurrence et le ratio E/F - 10-10-2005
- Etude du BlockRank, un algorithme de calcul rapide du PageRank - 19-03-2003
- Commande site: sur Google et pages ignorées - 06-03-2007
- L'annuaire DMOZ (Open Directory) : www.dmoz.org - 04-08-2008
- Résultats financiers de Google T4 2008 : meilleurs que prévus - 23-01-2009
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité
