Formation par Olivier Duffez

Formation au référencement par Olivier Duffez, créateur de WebRankInfo !
Une formule efficace alliant théorie et pratique, avec une haute disponibilité des intervenants
Cette formule a déjà convaincu plusieurs centaines d'entreprises, pourquoi pas vous ?
Réservez vite votre place en ligne (convention possible pour imputer sur le budget formation)

Formation référencement Marseille

ordre php

Poster un nouveau sujet Imprimer cette discussion    Forum -> Développement d'un site Web   Les dernières discussions de ce forum sont disponibles au format RSS
Voir le sujet précédent :: Voir le sujet suivant  
Auteur Message
 
magikmanu
Nouveau WRInaute

Inscrit le: 29 Jan 2004
Messages: 31

URL permanente de ce messagePosté 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
 
magikmanu Visiter le site web du posteur
oxman
WRInaute occasionnel
WRInaute occasionnel

Inscrit le: 21 Juin 2004
Messages: 118

URL permanente de ce messagePosté 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
 
oxman
magikmanu
Nouveau WRInaute

Inscrit le: 29 Jan 2004
Messages: 31

URL permanente de ce messagePosté 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 :

Arrow 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
 
magikmanu Visiter le site web du posteur
oxman
WRInaute occasionnel
WRInaute occasionnel

Inscrit le: 21 Juin 2004
Messages: 118

URL permanente de ce messagePosté 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>";
 
oxman
magikmanu
Nouveau WRInaute

Inscrit le: 29 Jan 2004
Messages: 31

URL permanente de ce messagePosté 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 ! Wink

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
 
magikmanu Visiter le site web du posteur
oxman
WRInaute occasionnel
WRInaute occasionnel

Inscrit le: 21 Juin 2004
Messages: 118

URL permanente de ce messagePosté 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 ?
 
oxman
magikmanu
Nouveau WRInaute

Inscrit le: 29 Jan 2004
Messages: 31

URL permanente de ce messagePosté 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...
 
magikmanu Visiter le site web du posteur
oxman
WRInaute occasionnel
WRInaute occasionnel

Inscrit le: 21 Juin 2004
Messages: 118

URL permanente de ce messagePosté 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')
 
oxman
 
Montrer les messages depuis:   
Revenir en haut    Forum -> Développement d'un site Web Toutes les heures sont au format GMT + 2 Heures
Page 1 sur 1 - 
Connexion
Nom d'utilisateur:    Mot de passe:      Se connecter automatiquement à chaque visite    

CLIQUEZ ICI pour vous inscrire à WebRankInfo (forum, annuaire, outils...)

Connexion

© 2001-2005 phpBB Group, support français
Personnalisation : WebRankInfo ™


 ODP  Firefox  Alsacreations  annuaire webmaster Yagoort