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] Incrémentation dans un tableau


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre expérimenté Avatar de onirisme
    Homme Profil pro
    Ingénieur commercial
    Inscrit en
    Novembre 2004
    Messages
    221
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Ingénieur commercial
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Novembre 2004
    Messages : 221
    Par défaut [Tableaux] Incrémentation dans un tableau
    Bonjour,

    J'ai un formulaire auto-généré via une tabla mysql. Ce formulaire comporte de nom des champs de la base et plusieurs input à renseigner. Je donne des noms à ces input via une incrémentation $i++

    Chaque input présent sur une même ligne doit avoir le même numéro d'incrémentation

    Voici un exemple :
    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
    18
    19
     
    <?php
    	mysql_select_db("test");
    	$sql=mysql_query("SHOW COLUMNS FROM test");
     
    	//Définition des valeurs
    	$a=1;$b=1;
     
    	echo '<table>'."\n";
    	echo '<tr><td>Nom de colonne</td><td>Champ1</td><td>Champ2</td></tr>'."\n";
    	while($col=mysql_fetch_row($sql)){
    		echo'<tr>'."\n";
    		echo '<td>'.$col[0].'</td>'."\n";
    		echo '<td><input type="text" name="'.$col[0].'_valeur'.$a++.'"></td>'."\n";
    		echo '<td><input type="text" name="'.$col[0].'_libelle'.$b++.'"></td>'."\n";
    		echo '</tr>'."\n";
    	}
    	echo '</table>'."\n";
    	?>

    Code HTML : 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
    24
    25
    26
     
    <table>
    <tr><td>Nom de colonne</td><td>Champ1</td><td>Champ2</td></tr>
    <tr>
    <td>id</td>
    <td><input type="text" name="id_valeur1"></td>
     
    <td><input type="text" name="id_libelle1"></td>
    </tr>
    <tr>
    <td>nom</td>
    <td><input type="text" name="nom_valeur2"></td>
    <td><input type="text" name="nom_libelle2"></td>
    </tr>
    <tr>
    <td>prenom</td>
    <td><input type="text" name="prenom_valeur3"></td>
    <td><input type="text" name="prenom_libelle3"></td>
    </tr>
    <tr>
    <td>age</td>
     
    <td><input type="text" name="age_valeur4"></td>
    <td><input type="text" name="age_libelle4"></td>
    </tr>
    </table>

    Comme vous le voyez, afin d'avoir les même valeurs d'incrémentation, j'utilise deux variables :
    Ceci ne pose pas de problème dans l'exemple ci-dessus mais dans une application plus complexe ou chaque ligne doit comporter 7 valeurs incrémentées (ou plus) ça devient compliquer. ->$a=1; $b=1;$c=1; $d=1;$e=1; $f=1;$g=1; $h=1;

    Ma question :
    Est t'il possible de n'utiliser qu'une seule valeur et de la réinitialiser à chaque colonne? Dois-je passer par une autre méthode?

    Merci par avance pour votre aide.

  2. #2
    Koo
    Koo est déconnecté
    Membre éclairé Avatar de Koo
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    76
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 76
    Par défaut
    Heuu la réponse me semble tellement nulle que je doute d'avoir bien compris, mais suffit d'incrémenter $a une seule fois à chaque itération ...

    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
    <?php
        mysql_select_db("test");
        $sql=mysql_query("SHOW COLUMNS FROM test");
     
        //Définition des valeurs
        $a=1;
     
        echo '<table>'."\n";
        echo '<tr><td>Nom de colonne</td><td>Champ1</td><td>Champ2</td></tr>'."\n";
        while($col=mysql_fetch_row($sql)){
            echo'<tr>'."\n";
            echo '<td>'.$col[0].'</td>'."\n";
            echo '<td><input type="text" name="'.$col[0].'_valeur'.$a.'"></td>'."\n";
            echo '<td><input type="text" name="'.$col[0].'_libelle'.$a.'"></td>'."\n";
            echo '</tr>'."\n";
     
            $a++;
        }
        echo '</table>'."\n";
        ?>

  3. #3
    Membre expérimenté Avatar de onirisme
    Homme Profil pro
    Ingénieur commercial
    Inscrit en
    Novembre 2004
    Messages
    221
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Ingénieur commercial
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Novembre 2004
    Messages : 221
    Par défaut
    Merci quand même mais c'est pas bon.

    Résultat =
    Code HTML : 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
     
    <table>
    <tr><td>Nom de colonne</td><td>Champ1</td><td>Champ2</td></tr>
    <tr>
    <td>id</td>
    <td><input type="text" name="id_valeur1"></td>
     
    <td><input type="text" name="id_libelle1"></td>
    </tr>
    <tr>
    <td>nom</td>
    <td><input type="text" name="nom_valeur1"></td>
    <td><input type="text" name="nom_libelle1"></td>
    </tr>
    <tr>
    etc...


    et moi je veux

    Code HTML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    table>
    <tr><td>Nom de colonne</td><td>Champ1</td><td>Champ2</td></tr>
    <tr>
    <td>id</td>
    <td><input type="text" name="id_valeur1"></td>
    
    <td><input type="text" name="id_libelle1"></td>
    </tr>
    <tr>
    <td>nom</td>
    <td><input type="text" name="nom_valeur2"></td>
    <td><input type="text" name="nom_libelle2"></td>
    </tr>
    <tr

  4. #4
    Koo
    Koo est déconnecté
    Membre éclairé Avatar de Koo
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    76
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 76
    Par défaut
    T'es sûr de n'avoir pas zappé le $a++ ? Ca me semble quand même étrange. Sinon utilise un for, ca sera de toute façon plus propre.

    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
    <?php
    mysql_select_db("test");
    $sql=mysql_query("SHOW COLUMNS FROM test");
     
    echo '<table>'."\n";
    echo '<tr><td>Nom de colonne</td><td>Champ1</td><td>Champ2</td></tr>'."\n";
     
    for($i=1; $col=mysql_fetch_row($sql); $i++) {
        echo'<tr>'."\n";
        echo '<td>'.$col[0].'</td>'."\n";
        echo '<td><input type="text" name="'.$col[0].'_valeur'.$i.'"></td>'."\n";
        echo '<td><input type="text" name="'.$col[0].'_libelle'.$i.'"></td>'."\n";
        echo '</tr>'."\n";
    }
    echo '</table>'."\n";
    ?>

  5. #5
    Membre expérimenté Avatar de onirisme
    Homme Profil pro
    Ingénieur commercial
    Inscrit en
    Novembre 2004
    Messages
    221
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Ingénieur commercial
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Novembre 2004
    Messages : 221
    Par défaut
    Citation Envoyé par Koo Voir le message
    T'es sûr de n'avoir pas zappé le $a++ ? Ca me semble quand même étrange
    Exacte : j'ai zapé le $a++

    Citation Envoyé par Koo Voir le message
    Sinon utilise un for, ca sera de toute façon plus propre.
    Super ! J'adopte.

    Merci beaucoup

  6. #6
    Membre chevronné Avatar de jota5450
    Inscrit en
    Janvier 2006
    Messages
    263
    Détails du profil
    Informations personnelles :
    Âge : 49

    Informations forums :
    Inscription : Janvier 2006
    Messages : 263
    Par défaut
    slt...



    t´es sur que t´as mis dans ton code?...

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

Discussions similaires

  1. [Tableaux] recherche dans un TABLEAU
    Par dunbar dans le forum Langage
    Réponses: 3
    Dernier message: 15/08/2006, 00h06
  2. [Tableaux] Checkbox dans un tableau
    Par mxmorin dans le forum Langage
    Réponses: 9
    Dernier message: 02/06/2006, 14h35
  3. [Tableaux] Compter dans un tableau
    Par CAMB3L dans le forum Langage
    Réponses: 3
    Dernier message: 29/04/2006, 18h23
  4. [Tableaux] Boucle dans un tableau
    Par apprenti-fab dans le forum Langage
    Réponses: 9
    Dernier message: 24/04/2006, 10h14
  5. [Tableaux] Count dans un tableau
    Par krfa1 dans le forum Langage
    Réponses: 2
    Dernier message: 27/11/2005, 20h15

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