par
Jibe » 26 janv. 2012, 16:37
J'ai suivi ton conseil mais je dois faire un betise quelque part parce que à l'enregistrement dans la base j'ai mes lignes doubles, triples,...
Voilà le bout de code de la page de saisie :
$z = 1;
$te = $bdd->query('SELECT l_met_scomp.niveau, scompetence.libscomp, scompetence.defscomp, formation.libform, formation.codeform FROM l_met_scomp, scompetence, competence, formation, l_form_scomp WHERE l_met_scomp.codemet = '.$_SESSION['met'].' AND l_met_scomp.codescomp = scompetence.codescomp AND scompetence.codecomp = competence.codecomp AND l_form_scomp.codescomp = scompetence.codescomp AND l_form_scomp.codeform = formation.codeform');
while($don = $te->fetch())
{
$cib = $don['niveau'];
$libsc = $don['libscomp'];
$defsc = $don['defscomp'];
$libf = $don['libform'];
$codef = $don['codeform'];
if(($cib - $note[$j]) >= 2)
{
<tr>
<td align="left" width="300"><p onmouseover="montre('<?php echo addslashes($defsc); ?>');" onmouseout="cache();"><?php echo $libsc; ?></td>
<td><?php echo $cib; ?></td>
<td><?php if($remplit) echo $note[$j]; //$j++; ?></td>
<td align="left"><label for="form[]"><?php echo $libf; ?></label></td>
<td><select name="prio[]" id="prio[]">
<option value=""></option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option></td>
<td><textarea name="com[<?php echo $z.'-'.$codef; ?>]" id="com[<?php echo $z.'-'.$codef; ?>]" rows="3" cols="50"></textarea></td>
</tr>
<?php
}
$j++;
$z++;
}
Et voilà le code de la page de traitement pour l'enregistrement dans la base :
$com = $_POST['com'];
$prio = $_POST['prio'];
foreach($com as $element => $valeur)
{
$string = explode("-", $element);
foreach($string as $ele)
{
foreach($prio as $elements)
{
if($valeur != "" && $elements != "")
{
$bdd->exec("INSERT INTO l_collab_form_met VALUES(NULL, '$matricule', '$ele[2]', '$valeur', '$elements', '$date', '$bu')");
}
}
}
}
Mais du coup j'ai des lignes enregistrés plusieurs fois...
J'ai suivi ton conseil mais je dois faire un betise quelque part parce que à l'enregistrement dans la base j'ai mes lignes doubles, triples,...
Voilà le bout de code de la page de saisie :
[php]
$z = 1;
$te = $bdd->query('SELECT l_met_scomp.niveau, scompetence.libscomp, scompetence.defscomp, formation.libform, formation.codeform FROM l_met_scomp, scompetence, competence, formation, l_form_scomp WHERE l_met_scomp.codemet = '.$_SESSION['met'].' AND l_met_scomp.codescomp = scompetence.codescomp AND scompetence.codecomp = competence.codecomp AND l_form_scomp.codescomp = scompetence.codescomp AND l_form_scomp.codeform = formation.codeform');
while($don = $te->fetch())
{
$cib = $don['niveau'];
$libsc = $don['libscomp'];
$defsc = $don['defscomp'];
$libf = $don['libform'];
$codef = $don['codeform'];
if(($cib - $note[$j]) >= 2)
{
<tr>
<td align="left" width="300"><p onmouseover="montre('<?php echo addslashes($defsc); ?>');" onmouseout="cache();"><?php echo $libsc; ?></td>
<td><?php echo $cib; ?></td>
<td><?php if($remplit) echo $note[$j]; //$j++; ?></td>
<td align="left"><label for="form[]"><?php echo $libf; ?></label></td>
<td><select name="prio[]" id="prio[]">
<option value=""></option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option></td>
<td><textarea name="com[<?php echo $z.'-'.$codef; ?>]" id="com[<?php echo $z.'-'.$codef; ?>]" rows="3" cols="50"></textarea></td>
</tr>
<?php
}
$j++;
$z++;
}
[/php]
Et voilà le code de la page de traitement pour l'enregistrement dans la base :
[php]
$com = $_POST['com'];
$prio = $_POST['prio'];
foreach($com as $element => $valeur)
{
$string = explode("-", $element);
foreach($string as $ele)
{
foreach($prio as $elements)
{
if($valeur != "" && $elements != "")
{
$bdd->exec("INSERT INTO l_collab_form_met VALUES(NULL, '$matricule', '$ele[2]', '$valeur', '$elements', '$date', '$bu')");
}
}
}
}
[/php]
Mais du coup j'ai des lignes enregistrés plusieurs fois...