Formulaire et tableau : maj table
Posté : 15 déc. 2006, 21:43
Bien le bonjour,
J'ai une petite appli. toute bête qui affiche un formulaire vide de 2 lignes et 3 colonnes, enregistre les données saisies ds une table, réaffiche le formulaire avec les champs préremplis des données saisies précédemment pour permettre une correction de la saisie et effectue une mise à jour de la table.
Mes données sont stockées ds un tableau multidimensionnel "article", contenant les tableaux "nom", "qte" et "pu" - les 3 colonnes.
L'enregistrement ds la table est ok mais pas la mise à jour!
Au final ma table contient 2 enregistrements identiques : la 2nde ligne du formulaire.
Ci - dessous mon code très court, seuls les print_r prennent de la place :=).
Le pbm. se situe au niveau de $req2 : gestion du tableau ou de la requête sql?
Merci pour votre aide!
--- essaitrait.php ---
- traitement des variables postées et insertion/maj de la table -
J'ai une petite appli. toute bête qui affiche un formulaire vide de 2 lignes et 3 colonnes, enregistre les données saisies ds une table, réaffiche le formulaire avec les champs préremplis des données saisies précédemment pour permettre une correction de la saisie et effectue une mise à jour de la table.
Mes données sont stockées ds un tableau multidimensionnel "article", contenant les tableaux "nom", "qte" et "pu" - les 3 colonnes.
L'enregistrement ds la table est ok mais pas la mise à jour!
Au final ma table contient 2 enregistrements identiques : la 2nde ligne du formulaire.
Ci - dessous mon code très court, seuls les print_r prennent de la place :=).
Le pbm. se situe au niveau de $req2 : gestion du tableau ou de la requête sql?
Merci pour votre aide!
--- essaitrait.php ---
- traitement des variables postées et insertion/maj de la table -
<?php
include('include/connexion.php');
$etape = 0;
if (isset($_REQUEST['etape']) & !empty($_REQUEST['etape'])) {
$etape = $_REQUEST['etape'];
}
switch ($etape) {
case "0": // saisie formulaire
$etape = 1;
include('essaiform.php');
break;
case "1": // enregistrement et affichage pour modifs
// test contenu de la variable article postée: OK
echo 'contenu de article posté: test ok';
echo '<pre>';
print_r($_POST["article"]);
echo '</pre>';
// affectation de la variable postée
for($i=0;$i<=1;$i++){
$article["nom"] = $_POST["article"]["nom"];
$article["qte"] = $_POST["article"]["qte"];
$article["pu"] = $_POST["article"]["pu"];
}
// test contenu de la variable affectée: OK
echo 'contenu de article affecté: test ok';
echo '<pre>';
print_r($article);
echo '</pre>';
// insertion ds la table: OK
for($i=0;$i<=1;$i++){
$req1="insert into article ( nom_art, qte, pu )
values( '{$article[nom][$i]}', '{$article[qte][$i]}', '{$article[pu][$i]}' )";
$rep1=mysql_query($req1)or die("Enregistrement ds table article impossible");
}
$etape=2;
include('essaiform.php');
break;
case "2": // maj enregistrement suite modifs de saisie
// affectation suite maj
for($i=0;$i<=1;$i++){
$article["nom"] = $_POST["article"]["nom"];
$article["qte"] = $_POST["article"]["qte"];
$article["pu"] = $_POST["article"]["pu"];
}
// ICI PROBLEME: REQUETE NON PRISE EN COMPTE - ARRGHHH !
for($i=0;$i<=1;$i++){
$req2="UPDATE article SET nom_art='{$article[nom][$i]}', qte='{$article[qte][$i]}', pu='{$article[pu][$i]}'";
$rep2=mysql_query($req2)or die("MAJ table article impossible");
}
echo 'contenu de article maj: test OK';
echo '<pre>';
print_r($article);
echo '</pre>';
include('essaiform.php');
}
?>
--- essaiform.php ---
- affichage du formulaire -
<table>
<form name="devis" method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
<?php
for($i=0;$i<=1;$i++){ ?>
<tr>
<!-- saisie refs article -->
<td><input type="text" name="article[nom][]" value="<?php echo $article[nom][$i]; ?>" size="30" maxlength="35"></td>
<td><input type="text" name="article[qte][]" value="<?php echo $article[qte][$i]; ?>" size="13" maxlength="35"></td>
<td><input type="text" name="article[pu][]" value="<?php echo $article[pu][$i]; ?>" size="13" maxlength="35"></td>
</tr>
<?php } ?>
<tr>
<input type="hidden" name="etape" value="<?php echo $etape; ?>">
<!-- <td><input type="submit" name="valider" value="Ajouter"></td> -->
</tr>
<tr>
<td><input type="submit" name="valider" value="Enregistrer"></td>
</tr>
</form>
</table>