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 :

problème récupération variable contenu dans un tableau


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Homme Profil pro
    Inscrit en
    Août 2011
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2011
    Messages : 9
    Par défaut problème récupération variable contenu dans un tableau
    Bonjour à tous ,
    Je vous explique mon souci , je débute en php et j'ai un tableau contenant plusieurs variables .
    Les 5 premières colonnes contiennent des variables directement récupérées dans ma base de données, jusque la pas de souci .

    La ou ça se complique c concernant les 2 dernières colonnes , l'avant dernière contient un input de type bouton radio j'arrive a récupère la valeur de mon bouton si coché et à la faire s'enregistrer dans la base de données mais impossible le de faire de même pour la dernière colonne.

    La dernière colonne contient un input de type text , et je voudrais réussir à enregistrer la valeur saisie dans le champ dans la BDD au changement de page.

    J'utilise la method post dans mon formulaire et sur la page de destination récupère mes variables post et les déclarent en variable de session mais ça coince ^^

    Je vous copie colle mon formulaire en method post et les lignes de la page suivante pour enregistrer et afficher les valeurs.

    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
    <table id="hovertable">
    <form name="list" METHOD="POST" ACTION="admin6.php">
    <?php
     
    echo '<tr><th>table:</th><th>personnel:</th><th>service:</th><th>pour la periode du:</th><th>au:</th><th>motif:</th><th>type:</th><th>date:</th><th>effectue:</th><th>à modifier:</th><th>annotation:</th></tr>';
    while($ligne = mysql_fetch_object($res))
     
    	{	
    	 echo '<tr onmouseover="this.style.backgroundColor="#ffff66";" onmouseout="this.style.backgroundColor="#d4e3e5";"><td>'.$ligne->nom_table.'</td><td>'.$ligne->nom.'</td><td>'.$ligne->service.'</td><td>'.$ligne->date_debut.'</td><td>'.$ligne->date_fin.'</td><td>'.$ligne->motif.'</td><td>'.$ligne->type.'</td><td>'.$ligne->date.'</td><td>'.$ligne->effectue.'</td><td><INPUT TYPE="radio" name="modif" value="'.$ligne->nmr.'">'.'</td><td><INPUT TYPE="text" name="annotation">'.'</td></tr>';
    	}
     
    ?>
    </table>
    <div><input type=submit name=envoyer value=envoyer></div>
    <br>
    </form>
    et sur ma page admin6 j'ai 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
    17
    18
    19
    20
    $_SESSION['modif']=$_POST["modif"];
    $_SESSION['annotation']=$_POST["annotation"];
    $oui="oui";
    $sql1 = 'update fusion set effectue = "'.$oui.'" where nmr = "'.$_SESSION['modif'].'"';
    $res1= mysql_query($sql1);
     
    $sql2 = 'INSERT INTO fusion VALUES ("'.'","'.'","'.'","'.'","'.'","'.'","'.'","'.'","'.'","'.'","'.$_SESSION['annotation'].'")';
    $res2 = mysql_query($sql2);
     
    $sql="select * from fusion WHERE effectue like 'oui' order by nmr desc";
    $res= mysql_query($sql);
     
    echo '<tr><th>table:</th><th>personnel:</th><th>service:</th><th>pour la periode du:</th><th>au:</th><th>motif:</th><th>type:</th><th>date:</th><th>effectue:</th><th>annotation:</th></tr>';
    while($ligne = mysql_fetch_object($res))
        {	
    	 echo '<tr><td>'.$ligne->nom_table.'</td><td>'.$ligne->nom.'</td><td>'.$ligne->service.'</td><td>'.$ligne->date_debut.'</td><td>'.$ligne->date_fin.'</td><td>'.$ligne->motif.'</td><td>'.$ligne->type.'</td><td>'.$ligne->date.'</td><td>'.$ligne->effectue.'</td><td>'.$ligne->annotation.'</tr>';
    	}
     
    ?>
    </table>
    D'avance merci .

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    ps :
    - toutes les balises html s'écrivent en minuscules.
    - les input, br (et img) sont fermantes (<.../>):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <input type="text" name="annotation" value="" />
    <br />
    - ta façon d'écrire le code html dans le php, + le fait que tout soit sur la même ligne : c'est vite illisible, et ne facilite pas le débogage.
    - une bonne indentation du code est recommandée (pour : lisibilité, maintenance, débogage du code)
    - il faut absolument proteger la BdD des injections sql ! -> mysql_real_escape_string()

    Autant prendre de "bonnes habitudes" tout de suite :
    D'après toi, lequel de ton code et du mien est le plus clair et le 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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    <form name="list" method="post" action="admin6.php">
    <table id="hovertable">
    <thead>
    	<tr>
    		<th>table:</th>
    		<th>personnel:</th>
    		<th>service:</th>
    		<th>pour la periode du:</th>
    		<th>au:</th><th>motif:</th>
    		<th>type:</th><th>date:</th>
    		<th>effectue:</th><th>à modifier:</th>
    		<th>annotation:</th>
    	</tr>
    </thead>
    <tbody>
    <?php
    while($ligne = mysql_fetch_object($res))
    {
    ?>
    	<tr onmouseover="this.style.backgroundColor='#ffff66';" onmouseout="this.style.backgroundColor='#d4e3e5';">
    		<td><?php echo $ligne->nom_table; ?></td>
    		<td><?php echo $ligne->nom; ?></td>
    		<td><?php echo $ligne->service; ?></td>
    		<td><?php echo $ligne->date_debut; ?></td>
    		<td><?php echo $ligne->date_fin; ?></td>
    		<td><?php echo $ligne->motif; ?></td>
    		<td><?php echo $ligne->type; ?></td>
    		<td><?php echo $ligne->date; ?></td>
    		<td><?php echo $ligne->effectue; ?></td>
    		<td><input type="radio" name="modif" value="<?php echo $ligne->nmr; ?>" /></td>
    		<td><input type="text" name="annotation" /></td>
    	</tr>
    <?php
    }
    ?>
    </tbody>
    </table>
    <div><input type="submit" name="envoyer" value="envoyer"/></div>
    <br />
    </form>
    Dernière modification par Invité ; 22/08/2011 à 10h19.

  3. #3
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Octobre 2010
    Messages
    109
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2010
    Messages : 109
    Par défaut
    Code illisible, puis merci d'utiliser les balises [ CODE][/CODE ] si tu veux un debug.

  4. #4
    Invité
    Invité(e)
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <table id="hovertable">
    <form name="list" METHOD="POST" ACTION="admin6.php">
    ....
    </table>
    ....
    </form>
    Vois-tu le problème ?
    Ca ira mieux comme ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <form name="list" method="post" action="admin6.php">
    <table id="hovertable">
    ....
    </table>
    ....
    </form>
    Au fait, pour ton problème :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $sql2 = "INSERT INTO fusion (annotation) VALUES ('".mysql_real_escape_string($_SESSION['annotation'])."');";
    Dernière modification par Invité ; 22/08/2011 à 10h29.

  5. #5
    Membre du Club
    Homme Profil pro
    Inscrit en
    Août 2011
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2011
    Messages : 9
    Par défaut
    Tout d'abord merci pour vos réponses et désolé pour la présentation, je vais faire un effort.

    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
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
     
    <table id="hovertable">
    <?php
    $_SESSION['modif']=$_POST["modif"];
     
    $_SESSION['annotation']=$_POST["annotation"];
    $oui="oui";
     
    $sql1 = 'update fusion set effectue = "'.$oui.'" and annotation = "'.$_SESSION['annotation'].'"  where nmr = "'.$_SESSION['modif'].'"';
    $res1= mysql_query($sql1);
     
    $sql="select * from fusion WHERE effectue like 'oui' order by nmr desc";
    $res= mysql_query($sql);
     
    echo '<tr>
                  <th>table:</th>
                  <th>personnel:</th>
                  <th>service:</th>
                  <th>pour la periode du:</th>
                  <th>au:</th>
                  <th>motif:</th>
                  <th>type:</th>
                  <th>date:</th>
                  <th>effectue:</th>
                  <th>annotation:</th>
           </tr>';
    while($ligne = mysql_fetch_object($res))
        {	
    	 echo '<tr>
                           <td>'.$ligne->nom_table.'</td>
                           <td>'.$ligne->nom.'</td>
                           <td>'.$ligne->service.'</td>
                           <td>'.$ligne->date_debut.'</td>
                           <td>'.$ligne->date_fin.'</td>
                           <td>'.$ligne->motif.'</td>
                           <td>'.$ligne->type.'</td>
                           <td>'.$ligne->date.'</td>
                           <td>'.$ligne->effectue.'</td>
                           <td>'.$ligne->annotation.'</td>
                    </tr>';
    	}
     
    ?>
    </table>
    Donc voila une partie du code de admin6 celle sensée afficher l'annotation saisie dans le champ texte a la page précédente et récupérée via le post, j'espère que c'est plus lisible.

    Dans mon tableau sur la page précédente je me retrouve donc avec une colonne entière d'input type text mais je ne veux récupérer que la valeur du champ qui est rempli ( celui à côté du bouton radio modifié qui sera coché , le but étant ici de mettre une tâche effectué en traitée : oui et de mettre une annotation sur la manière dont le problème a été résolu).

    Je précise que je suis sur un réseau intranet .

  6. #6
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Octobre 2010
    Messages
    109
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2010
    Messages : 109
    Par défaut
    Est-ce que tes variables ne sont pas vides lorsque tu les récupères/affectes ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    echo "SESSION : ".$_SESSION['annotation'];
    echo "POST : ".$_POST['annotation'];

  7. #7
    Membre du Club
    Homme Profil pro
    Inscrit en
    Août 2011
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2011
    Messages : 9
    Par défaut
    effectivement , elles restent vide même si je rempli le champ annotation dans mon tableau.

    Je ne comprends pas

Discussions similaires

  1. Problème de Récupération de Context dans un tableau
    Par wajdi.bengagi dans le forum JSF
    Réponses: 0
    Dernier message: 29/10/2009, 12h11
  2. Réponses: 4
    Dernier message: 08/04/2008, 08h55
  3. Réponses: 2
    Dernier message: 30/11/2007, 13h14
  4. [Smarty] Problème récupération variable dans un for
    Par slaxsystem dans le forum Bibliothèques et frameworks
    Réponses: 4
    Dernier message: 02/05/2007, 17h10

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