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 :

Alimenter des tableaux avec le nom de mes colonnes et lignes


Sujet :

Langage PHP

  1. #1
    Membre éprouvé
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Points : 1 277
    Points
    1 277
    Par défaut Alimenter des tableaux avec le nom de mes colonnes et lignes
    Bonjour tout le monde,

    J'ai une fonction qui permet de créer une chaine sql update génériquement :

    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
    <?php
        function updateSql($table, $colonnes, $conditions){
            $col ='';
            $cond ='';
            $sql = 'UPDATE `'.$table.'` SET';
     
            while (list($key, $val) = each($colonnes)) {
                $col .= " `$key`='$val',";
            }
            $col = substr($col, 0, -1);
            while (list($key, $val) = each($conditions)) {
                $cond .= " `$key`='$val',";
            }
            $cond = substr($cond, 0, -1);
     
            return ($sql.' '.$col.' WHERE '.$cond);
        }
    J'utilise le formulaire ci-dessous pour appeler la fonction :

    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
    24
    25
    26
    27
    28
    29
    30
    31
    32
    echo '<form action="UpdateSQL.php" method="post" name="frmSaisie" id="frmSaisie">';
     
    echo '<tr>';
    for($i=0;$i<mysql_num_fields($query);$i++)
        {
        echo '<th>'.mysql_field_name($query,$i).'</th>';
        }
    echo '</tr>';
     
    //code de Sabotage
    $nligne = 0;
    while($row = mysql_fetch_array($query,MYSQL_ASSOC)) 
    {
    echo '<tr>';
    foreach($row as $NomCol => $Valeur)
            {
               echo '<td> <textarea name="new[' . $ligne . '][' . $NomCol . ']" . $>'.$Valeur.'</textarea> <input name="old[' . $ligne . '][' . $NomCol . ']" type="hidden"  value="'.$Valeur.'"/></td>';	
    	}
    $nligne++;
    			echo '</tr>';
    }
    echo '<input type="submit" name="Submit" value="Mettre la table à jour" />' ; 
     
    echo '</p>
     
    $table = $_SESSION['LaTable'];
        $colonnes = array('col1'=>test, 'col2'=>test2);
        $conditions = array('col1'=>xyz, 'col2'=>zuy);
     
     
     
    </form>';
    C'est ce code qui doit être envoyé :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $table = $_SESSION['LaTable'];
        $colonnes = array('col1'=>test, 'col2'=>test2);
        $conditions = array('col1'=>xyz, 'col2'=>zuy);
    Déjà, ça, ça ne fonctionne pas :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $table = $_SESSION['LaTable'];
    Ensuite, je me demandais comment je pouvais faire pour remplir génériquement ces deux variables :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     $colonnes = array('col1'=>test, 'col2'=>test2);
        $conditions = array('col1'=>xyz, 'col2'=>zuy);
    J'aimerais donc que $colonnes = array(...) contienne le nom des colonnes de ma table et $conditions = array(...) les valeurs.

    Le but est bien sûr de ne plus devoir modifier le code par après.

    Merci d'avance pour l'aide.

    beegees

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
      while (list($key, $val) = each($conditions)) {
    Tu as du voir ca dans un cours de PHP3
    =>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    foreach ($conditions as $key=>$val) {
    Pour ta session, est-ce que tu l'as bien demarré avec session_start() ? ca n'apparait pas dans le code que tu montres.

    J'aimerais donc que $colonnes = array(...) contienne le nom des colonnes de ma table et $conditions = array(...) les valeurs.
    Dans une table tu as un seul nom de colonne pour de multiples valeurs contenues, je ne comprends pas bien ce que tu veux faire avec ces deux tableaux.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre éprouvé
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Points : 1 277
    Points
    1 277
    Par défaut
    Mes salutation Sabotage,

    Merci pour ta réponse.

    Tu as du voir ca dans un cours de PHP3
    Euh, chez pô

    J'ai changé, merci.

    Pour ta session, est-ce que tu l'as bien demarré avec session_start() ? ca n'apparait pas dans le code que tu montres.
    À nouveau, bien vu

    Dans une table tu as un seul nom de colonne pour de multiples valeurs contenues, je ne comprends pas bien ce que tu veux faire avec ces deux tableaux.
    Cela ne gère qu'une seule colonne

    Je devrais alors l'adapter pour qu'elle gère plusieurs colonnes.

    Ton code ne me permet aussi que de mettre une colonne à jour à la fois et en plus une seule ligne, je viens juste de le découvrir.

    Merci encore à toi.

    beegees

Discussions similaires

  1. Utiliser des tableaux avec un nom variable
    Par Yokav dans le forum Shell et commandes GNU
    Réponses: 7
    Dernier message: 07/04/2011, 14h01
  2. des tableaux avec une bordure arrondie
    Par adel.87 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 1
    Dernier message: 18/05/2008, 19h27
  3. Réponses: 1
    Dernier message: 19/11/2007, 23h48
  4. Alimenter des slides avec des données d'Access
    Par kimmy dans le forum Powerpoint
    Réponses: 1
    Dernier message: 26/06/2007, 10h44
  5. Réponses: 9
    Dernier message: 21/06/2007, 16h02

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