IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

notion de position avec php/mysql


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 45
    Par défaut notion de position avec php/mysql
    bonjour à tous,

    j'ai un petit souci par rapport à un système de menu que j'essaie de développer dans le cadre d'un stage.

    J'ai une table qui contient mes menus principaux :

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    CREATE TABLE `parents_menus` (
      `id_menu_parent` int(11) NOT NULL auto_increment,
      `nom_menu` varchar(50) default NULL,
      `image_fond` varchar(50) default NULL,
      `publie` int(11) NOT NULL default '0',
      `position` int(11) NOT NULL default '0',
      PRIMARY KEY  (`id_menu_parent`)
    )

    J'ai développé sans pb l'ajout et la suppression de menu mais maintenant, j'aimerais mettre la notion de position. C'est à dire que je pourrais décider si le menu x sera en 2eme, 3eme ou 4eme position. Mais le vraiment problème, c'est qu'il faut que les autres menus d'adaptent au changement d'une position.

    C'est à dire que si j'avais le menu y en 3eme place et que je souhaite mettre le menu x en 3eme place, je voudrais que le menu y et le menu z soit décalé. Comment faire?

    Merci d'avance pour votre réponse

  2. #2
    Membre Expert
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juillet 2004
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 725
    Par défaut
    Hum, moi ce que je ferais:
    -Je récupère dans la table tous les menu a partir de la nouvelle position:

    0*Menu1
    1*Menu2
    2*Menu3
    3*Menu4

    Si je veut mettre le Menu4 en position 1, je récupère de Menu2 à Menu4.
    Ensuite, j'ajoute 1 a la position de chaque Menu, ce qui donne
    2*Menu2
    3*Menu3
    4*Menu4

    Et la je sait que le Menu4 va en postion 1, donc je change sa postion et je met 1.

    Par contre si j'avais eu:
    0*Menu1
    1*Menu2
    2*Menu3
    3*Menu4
    4*Menu5
    5*Menu6
    6*Menu7

    Toujours Menu4 en position 1. Je prend donc tout ca:
    1*Menu2
    2*Menu3
    3*Menu4

    Je leur ajoute 1, sauf a ceux qui sont après:
    2*Menu2
    3*Menu3
    4*Menu4

    Je change la postion de Menu4 en lui mettant 1 et j'obtient:
    0*Menu1
    1*Menu4
    2*Menu2
    3*Menu3
    4*Menu5
    5*Menu6
    6*Menu7

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 45
    Par défaut
    oui là dessus, on est d'accord, mais comment?

  4. #4
    Membre Expert
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juillet 2004
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 725
    Par défaut
    Moi je voit ca comme ca:
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
    $position_arrivee = 1;
    $menu_a_deplacer = 'menu4';
    $position_actuelle = 3;
    $res = mysql_query('SELECT nom_menu, position FROM parents_menus WHERE position BETWEEN '. $position_arrivee .' AND '. $position_actuelle .' ORDER BY position');
     
    $menudep = array();
    while($menu = mysql_fetch_assoc($res)) {
    	$menu['position']++;
    	if($menu['nom_menu'] == $menu_a_deplacer)
    		$menu['position'] = $position_arrivee;
    	array_push($menudep, $menu);
    }
     
    foreach($menudep as $menuarr) {
    	mysql_query('UPDATE parents_menus SET position = '. $menuarr['position'] .' WHERE nom_menu ="' . $menuarr['nom_menu'] .'"');
    }
    J'ai ete un peu vite y a pal mal d'erreur meme si le principe est la je corrige

    Edit: Voila corrigé et testé ca marche parfaitement

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 45
    Par défaut
    ok merci je teste ça demain, là j'ai fini le taf mais je te dis quoi en tout cas merci de ton aide

  6. #6
    Membre Expert
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juillet 2004
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 725
    Par défaut
    Oki tient nous au courant J'ai corriger une faute donc pense bien a reprendre le code Un espace oublié mais la requête marche pas sinon

Discussions similaires

  1. Réponses: 4
    Dernier message: 30/03/2007, 18h42
  2. Formulaire Flash avec Php Mysql
    Par achos dans le forum Flash
    Réponses: 2
    Dernier message: 23/03/2007, 10h17
  3. [SGBD] Gérer des droits avec php/mysql
    Par pontus21 dans le forum Administration
    Réponses: 9
    Dernier message: 04/05/2006, 19h56
  4. Quel SGBD avec PHP : MySQL ou Postgres
    Par charliejo dans le forum Requêtes
    Réponses: 6
    Dernier message: 25/01/2006, 12h13
  5. multi update avec php/ mysql
    Par arnoweb dans le forum Administration
    Réponses: 1
    Dernier message: 17/11/2005, 22h10

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo