Nommage input et update PHP

Fermé
tata - 5 mai 2012 à 07:40
 tata - 5 mai 2012 à 14:03
Bonjour,
Je dois "modifier commandes.php, afin de pouvoir modifier le statut d'une commande pour la faire passer de l'état « Validée » à l'état « Réglée »."
J'ai décider de faire cela grâce à des inputs de type radio avec un submit à la fin. Cependant même si j'ai réussi à me débarrasser des erreurs php, aucunes modifications ne se produit dans ma base de donnée.
Voici mon code

<form type='post' action='./commandes.php'>;
<?php include('./init.php');
include('./entete.php');
echo "<p>Les commandes non réglées</p>";
$query="SELECT * FROM commandes WHERE Etat='Valide' ;";
$res=mysql_query($query) or die(mysql_error());
$nuplet=mysql_fetch_assoc($res);
$nblignes=mysql_numrows($res);
echo "<p>Voulez-vous les régler?<p>";
for($i=0;$i<$nblignes;$i++)
{ ${'numcommande'.$i}=mysql_result($res,$i,"numcommande");

echo "<tr> <td>";
echo ${'numcommande'.$i};
echo "</td><td>";
echo '<input type="radio" name="input'.$i.'" value="oui" id="oui" checked="checked" /> <label for="oui">Oui</label>
<input type="radio" name="frites" value="non" id="non" /> <label for="non">Non</label>';
echo "</tr> </td>"; }
echo '<input type="submit" name="cValid" />';
for($j=0;$j<$nblignes;$j++)
{
if(isset($_POST["cValid"]))
{ echo ${'numcommande'.$j};
if($_POST['"input'.$j.'"']=="oui")

{ $query1="UPDATE commandes SET Etat='regle' WHERE numcommande='".${'numcommande'.$j}."';";
$res1=mysql_query($query1) or die(mysql_error());
}
}
}

?>

</form>

Merci de m'éclairer.

A voir également:

1 réponse

Bonjour,
Là tu as un souci, je te laisse corriger :
<form type='post' action='./commandes.php'>;

Ensuite là il y a un souci également, je te laisse corriger (bien que tu signales que tu as réussi à corriger les erreurs PHP, je ne vois pas comment tu as fait, certainement des dons de magicien(ne)!) :
$query="SELECT * FROM commandes WHERE Etat='Valide' ;";

Ensuite tu initialises une variable que tu n'utilises pas plus loin dans ton script, ce qui occupe inutilement une place mémoire MySQL avec mysql_fetch_assoc() :
$nuplet=mysql_fetch_assoc($res);

Continuons avec cette syntaxe pas très logique pour des boutons radios :
echo '<input type="radio" name="input'.$i.'" value="oui" id="oui" checked="checked" /> <label for="oui">Oui</label>
<input type="radio" name="frites" value="non" id="non" /> <label for="non">Non</label>';

Il faut mieux utiliser le même "name", de toute façon à la récup dans le script PHP, soit certains auront la valeur "oui" et d'autres la valeur "non" que tu peux utiliser dans une boucle et une condition.
Là je pense que la syntaxe n'est pas bonne et doit provoquer une erreur PHP :
if($_POST['"input'.$j.'"']=="oui") {

Et ici encore un souci de syntaxe :
$query1="UPDATE commandes SET Etat='regle' WHERE numcommande='".${'numcommande'.$j}."';";

Bref, tu as de quoi t'occuper encore quelques instants...
0
MERCI Beaucoup, j'ai fais vraiment des erreurs bêtes du coup.... Je vous montre quand même ce que j'ai corrigé, tout fonctionne correctement mais pour la syntaxe de la requête je ne vois pas ce qu'il a comme erreur...

include('./entete.php');
echo "<p>Les commandes non réglées</p>";
$query="SELECT * FROM commandes WHERE Etat='Valide' ;";
$res=mysql_query($query) or die(mysql_error());
$nblignes=mysql_numrows($res);
echo "<p>Voulez-vous les régler?<p>";
for($i=0;$i<$nblignes;$i++)
{ ${'numcommande'.$i}=mysql_result($res,$i,"numcommande");
echo "<tr> <td>";
echo ${'numcommande'.$i};
echo "</td><td>";
echo '<input type="radio" name="input'.$i.'" value="oui" id="oui" checked="checked" /> <label for="oui">Oui</label>
<input type="radio" name="input'.$i.'" value="non" id="non" /> <label for="non">Non</label>';
echo "</tr> </td>"; }
echo '<input type="submit" name="cValid" />';
for($j=0;$j<$nblignes;$j++)
{
if(isset($_POST["cValid"]))
{ echo ${'numcommande'.$j};
if($_POST["input".$j.""]=="oui")
{ $query1="UPDATE commandes SET Etat='regle' WHERE numcommande='".${'numcommande'.$j}."';";
$res1=mysql_query($query1) or die(mysql_error());
}
}
}
?>
0