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

  1. #1
    Nouveau Candidat au 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
    Points : 1
    Points
    1
    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 régulier
    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
    Points : 104
    Points
    104
    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
    Nouveau Candidat au 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
    Points : 1
    Points
    1
    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 régulier
    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
    Points : 104
    Points
    104
    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
    Nouveau Candidat au 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
    Points : 1
    Points
    1
    Par défaut
    effectivement , elles restent vide même si je rempli le champ annotation dans mon tableau.

    Je ne comprends pas

  8. #8
    Invité
    Invité(e)
    Par défaut
    J'ai vu le problème !

    Il faut identifier tes input pour chaque ligne du tableau (sinon, il ne prend que le dernier) : name="modif[]" et name="annotation[]"

    Pour chaque enregistrement (ligne), tu dois sûrement avoir un id (int, auto-increment) :
    => on va mettre cet id comme indice des array modif[] et annotation[] :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    		<td><input type="radio" name="modif[<?php echo $ligne->id; ?>]" value="<?php echo $ligne->nmr; ?>" /></td>
    		<td><input type="text" name="annotation[<?php echo $ligne->id; ?>]" /></td>
    => tu récupères ici des array :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $array_modif = $_POST['modif']; // array
    $array_annotation = $_POST['annotation']; // array
    qu'il faut donc traiter comme suit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    foreach($array_modif as $key => $val) {
       // [...] $key est en fait l'id !
    }
    foreach($array_annotation as $key => $val) {
       // [...] $key est en fait l'id !
    }

  9. #9
    Invité
    Invité(e)
    Par défaut
    Et si j'ai bien compris : ce n'est pas une requete INSERT que tu dois faire.

    Mais une requete UPDATE pour chaque ligne !
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <?php
    foreach($_POST['annotation'] as $key => $val) {
    	// $key est l'indice de l'array (ici = l'id de l'enregistrement !)
    	// $val est la valeur
    	$sql2 = "UPDATE fusion SET annotation = '".mysql_real_escape_string($val)."' WHERE id = '".intval($key)."';";
    	// ...
    }
    ?>

  10. #10
    Nouveau Candidat au 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
    Points : 1
    Points
    1
    Par défaut
    Tout d'abord un grand merci , je comprends le principe de parcourir chaque élément un par un et effectivement cela parait très utile.

    Cependant dans ma base l'id c nmr (pour numéro) , je dois donc remplacer id par nmr dans mon cas c'et bien cela?

    De plus en mettant nmr a la place de id pour numéroter mes array
    J'obtiens comme rentrée dans mes bases : Array pour chaque annotation.

    Voila ce que j'ai mis sur la première page
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <td><input type="radio" name="modif[<?php echo $ligne->nmr; ?>]" value="<?php echo $ligne->nmr; ?>" /></td>
    <td><input type="text" name="annotation[<?php echo $ligne->nmr; ?>]" /></td>
    et sur ma 2ième page j'ai fait ceci:

    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
    <?php
    $array_modif = $_POST['modif']; // array
    $array_annotation = $_POST['annotation']; // array
    $oui="oui";
     
    foreach($array_modif as $key => $val) 
    {
    $sql1 = 'update fusion set effectue = "'.$oui.'" where nmr = "'.$array_modif.'"';
    $res1= mysql_query($sql1);
    }
    foreach($array_annotation as $key => $val) 
    {
    $sql2 = 'update fusion set annotation = "'.$array_annotation.'"';
    $res2 = mysql_query($sql2);
    }
    Je sais que je suis nul lol, mais je pense que la soutien ne doit pas être loin , c'est juste que je m'y prends mal , car je ne maitrise pas ce que j'utilise.
    D'avance merci.

  11. #11
    Invité
    Invité(e)
    Par défaut
    Moi aussi, j'ai eu du mal avec foreach($blabla as $key => $val) ....
    Remplace :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    foreach($array_annotation as $key => $val) 
    {
    $sql2 = 'update fusion set annotation = "'.$array_annotation.'"';
    $res2 = mysql_query($sql2);
    }
    par (ce que j'avais pourtant écrit ici !) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    foreach($array_annotation as $key => $val) // se traduit par : "pour chaque couple indice=>valeur de l'array ..."
    {
    	// ici, $key (indice de l'array) a été défini comme nmr (l'id dans la bdd)
    	$sql2 = "UPDATE fusion SET annotation = '".mysql_real_escape_string($val)."' WHERE nmr = '".intval($key)."';";
    	$res2 = mysql_query($sql2);
    }
    Tu peux jeter un oeil ici aussi : Apostrophes ou guillemets : lesquels choisir ?

    ps : Si tu veux voir à quoi ressemble l'array (couples [indice] => valeur), affiche :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <?php
    echo '<pre>';
    print_r($array_annotation);
    echo '</pre>';
    ?>
    Dernière modification par Invité ; 22/08/2011 à 13h17.

  12. #12
    Nouveau Candidat au 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
    Points : 1
    Points
    1
    Par défaut
    si je fais cela :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <?php
    echo '<pre>';
    print_r($array_annotation);
    echo '</pre>';
    ?>
    j'obtiens ceci :

    Array
    (
    [nmr; ?>] => test4
    )


    et si je fais ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <?php
    echo '<pre>';
    print_r($array_modif);
    echo '</pre>';
    ?>
    j'obtiens ceci :

    Array
    (
    [nmr; ?>] => oui
    )

    oui correspondant bien a la valeur que je veux mettre si le bouton radio est coché et test4 étant la valeur mise dans le champ texte.

    Donc désolé de poster à nouveau mais ou est le souci ?

  13. #13
    Invité
    Invité(e)
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Array
    (
    [nmr; ?>] => oui
    )
    Tu ne vois pas comme un défaut ?
    nmr; ?> -> on devrait avoir l'indice (un nombre entier)
    Manifestement, une erreur dans le code ... au niveau du formulaire

    Peux-tu remontrer le bout de code (tes 2 input) ?

    Ca devrait ressembler à ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    		<td><input type="radio" name="modif[<?php echo $ligne->nmr; ?>]" value="<?php echo $ligne->nmr; ?>" /></td>
    		<td><input type="text" name="annotation[<?php echo $ligne->nmr; ?>]" /></td>

  14. #14
    Nouveau Candidat au 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
    Points : 1
    Points
    1
    Par défaut
    j'ai changé et j'ai mis ça à la place dans mon input :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <td><input type="radio" name="modif[<?php echo '.$ligne->nmr.'; ?>]" value="oui" /></td>
    résultat j'obtiens ceci :

    Array
    (
    [] => oui
    )

  15. #15
    Invité
    Invité(e)
    Par défaut
    C'est sûr qu'en passant le code au shaker ... ca marche moins bien.

    Il te suffit de copier-coller ceci (sans rien changer !) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    		<td><input type="radio" name="modif[<?php echo $ligne->nmr; ?>]" value="oui" /></td>
    		<td><input type="text" name="annotation[<?php echo $ligne->nmr; ?>]" /></td>
    Astuce : clique sur "sélectionner tout", ci-dessus (en haut à droite du code) ------------------------------^

  16. #16
    Nouveau Candidat au 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
    Points : 1
    Points
    1
    Par défaut
    j'ai rigoureusement copié collé vos 2 lignes et quand je teste le résultat est toujours le même à savoir :

    Array
    (
    [nmr; ?>] => oui
    )

  17. #17
    Invité
    Invité(e)
    Par défaut
    Si tu ne nous mets pas ton code, on ne pourra pas te dire d'où vient l'erreur ...

  18. #18
    Nouveau Candidat au 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
    Points : 1
    Points
    1
    Par défaut
    donc sur la première page j'ai ceci :
    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">
    <?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[<?php echo $ligne->nmr; ?>]" value="oui" /></td>
    	 <td><input type="text" name="annotation[<?php echo $ligne->nmr; ?>]" /></td>
    	 </tr>';
    	}
     
    ?>
    </table>
    <div><input type=submit name=envoyer value=envoyer></div>
    <br>
    </form>
    et sur la deuxième j'ai ceci :
    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
    45
    46
    47
    48
    49
    50
    51
    52
    <table id="hovertable">
    <?php
    $array_modif = $_POST['modif']; 
    $array_annotation = $_POST['annotation']; 
    $oui="oui";
     
    foreach($array_modif as $key => $val) 
    {
    $sql1 = "update fusion set effectue = = '".mysql_real_escape_string($val)."' WHERE nmr = '".intval($key)."';";
    $res1= mysql_query($sql1);
    }
    foreach($array_annotation as $key => $val) 
    {
     
    	$sql2 = "UPDATE fusion SET annotation = '".mysql_real_escape_string($val)."' WHERE nmr = '".intval($key)."';";
    	$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.'</td>
    </tr>';
    	}
     
    ?>
    </table>

  19. #19
    Invité
    Invité(e)
    Par défaut
    Regarde la couleur syntaxique des lignes 31 et 32 du 1er code ci-dessus :
    ca devrait te mettre la puce à l'oreille !
    On constate une différence dans les couleurs !

    Le fait que tu as bien copié-collé les lignes (qui contiennent des echo)
    ... sauf que ...
    tu les as copiées à l'intérieur d'un autre echo !

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    	 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['.$ligne->nmr.']" value="oui" /></td>
    	 <td><input type="text" name="annotation['.$ligne->nmr.']" /></td>
    	 </tr>';
    A moins que ton écran soit en noir & blanc, on voit nettement la différence, non ?

    ps : je mettrais même (pour afficher les annotations déjà enregistrées) :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    	 echo '<tr 
    ....
    	 <td><input type="text" name="annotation['.$ligne->nmr.']" value="'.$ligne->annotation.'" /></td>
    ....
    	 </tr>';
    Dernière modification par Invité ; 22/08/2011 à 16h15.

  20. #20
    Nouveau Candidat au 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
    Points : 1
    Points
    1
    Par défaut
    Un grand merci à toi jreaux62 , effectivement cela venait bien de là.

    Une autre erreur bête de copier coller me bloquait également , ligne 9 dans LA 2ième partie j'avais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $sql1 = "update fusion set effectue = = '".mysql_real_escape_string($val)."' WHERE nmr = '".intval($key)."';";
    Au lieu de :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $sql1 = "update fusion set effectue = '".mysql_real_escape_string($val)."' WHERE nmr = '".intval($key)."';";
    Un simple égal en trop , donc encore merci pour tout

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