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

Langage PHP Discussion :

[Tableaux] Problème pour contrôler un tableau


Sujet :

Langage PHP

  1. #1
    Membre averti Avatar de renaud26
    Homme Profil pro
    Webmaster
    Inscrit en
    Mars 2003
    Messages
    1 365
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Mars 2003
    Messages : 1 365
    Points : 436
    Points
    436
    Par défaut [Tableaux] Problème pour contrôler un tableau
    Bonjour à tous,

    J'ai 3 tableaux issus de 3 selects d'un formulaire:
    id_mod, posi et ordre.
    Je les affiche sans problème comme cela
    Code : 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
     
    if(isset($_POST["Submit"])){
    $id_page = $_POST["id_page"];
    $id_mod = $_POST["id"];
    $posi = $_POST["posi"];
    $ordre = $_POST["ordre"];
     
    while(list($indice,$valeur) = each ($id_mod))
    {
    $coords[] = $id_mod[$indice].$posi[$indice].$ordre[$indice];
    }
    while(list($indice,$valeur) = each ($coords))
    {
    echo "Le module N° ".$id_mod[$indice]." à la position ".$posi[$indice]." et l'ordre ".$ordre[$indice]."<br>";
    }
    }
    Là où j'ai un souci, c'est que je voudrais afficher un die("erreur") si l'utilisateur choisit un même ordre pour une même position. Par exemple si il choisit 2 fois la position gauche avec ordre 1 pour les 2 j'affiche une erreur.
    Mais je sèche totalement...
    Merci de votre aide.

  2. #2
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    pour un même module ?

  3. #3
    Membre averti Avatar de renaud26
    Homme Profil pro
    Webmaster
    Inscrit en
    Mars 2003
    Messages
    1 365
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Mars 2003
    Messages : 1 365
    Points : 436
    Points
    436
    Par défaut
    euh...bonne question...à mon avis, non, chaque module est indépendant. Ils comportent tous 4 positions possibles (header,gauche,droite,footer) et 5 ordres (de 1 à 5). Ce qu'il ne faut pas, c'est 2 fois, ou plus, la même position et le même ordre, par exemple gauche / 1 doit être unique.
    Je sais pas si je suis clair...

  4. #4
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    Un truc dans ce genre ?
    Code : 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
    18
    19
    20
    21
    22
    23
    if(isset($_POST["Submit"])){
       $id_page = $_POST["id_page"];
       $id_mod = $_POST["id"];
       $posi = $_POST["posi"];
       $ordre = $_POST["ordre"]; 
     
       $positions = array();
     
       while(list($indice,$valeur) = each ($id_mod))
       {
          $coords[] = $id_mod[$indice].$posi[$indice].$ordre[$indice];
          echo "Le module N° ".$id_mod[$indice]." à la position ".$posi[$indice]." et l'ordre ".$ordre[$indice]."<br>";
     
          if (!isset($positions[$posi[$indice]])) {
             $positions[$posi[$indice]] = array();
          }
          if (isset($positions[ $posi[$indice] ][ $ordre[$indice] ])) {
             die('Erreur !');
          } else {
             $positions[ $posi[$indice] ][ $ordre[$indice] ] = true;
          }
       }
    }

  5. #5
    Membre averti Avatar de renaud26
    Homme Profil pro
    Webmaster
    Inscrit en
    Mars 2003
    Messages
    1 365
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Mars 2003
    Messages : 1 365
    Points : 436
    Points
    436
    Par défaut
    waow ! merci de ton aide, je teste ça et je te dis ce qui se passe...

  6. #6
    Membre averti Avatar de renaud26
    Homme Profil pro
    Webmaster
    Inscrit en
    Mars 2003
    Messages
    1 365
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Mars 2003
    Messages : 1 365
    Points : 436
    Points
    436
    Par défaut
    ça fonctionne impec ! merci pour ton aide précieuse...et bonne journée !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. problème pour trier un tableau de hashage
    Par Jasmine80 dans le forum Langage
    Réponses: 1
    Dernier message: 25/02/2007, 13h02
  2. [Tableaux] Problème pour télécharger un fichier
    Par pierrot10 dans le forum Langage
    Réponses: 5
    Dernier message: 19/02/2007, 18h02
  3. Réponses: 3
    Dernier message: 21/09/2006, 15h55
  4. Réponses: 9
    Dernier message: 11/08/2006, 21h58
  5. Réponses: 9
    Dernier message: 17/02/2006, 11h04

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