Problème dans une requête php/mysql

jojo2012 Messages postés 11 Statut Membre -  
loicDu28 Messages postés 342 Statut Membre -
Bonjour,

j'ai créé un tableau avec html et php tel que le tableau est rempli par des données de ma base des données et dans chaque ligne il y a une colonne qui contient un bouton de type submit et qui redirige vers une autre page, dans cette dernière je veux faire une requête qui , lorsque je clique sur un bouton , il doit modifier une ligne d' un champ dans mon tableau de ma base des données. alors que mon code modifie toutes les lignes. moi je veux modifier juste la ligne qui correspond a celle que j'ai cliqué sur sa bouton de type submit.
la 1iere page contient ce tablau :

echo '<table width=100%>';
echo ' <tr>';
echo ' <th>serveur</th>';
echo ' <th>N_table</th>';
echo ' <th>commande</th>';
echo ' <th>description</th>';
echo ' <th>validation</th>';
echo ' </tr>';



// Affichage de chaque message (toutes les données sont protégées par htmlspecialchars)
while ($donnees1 = $response1->fetch() )
{
$donnees2 = $response2->fetch();
$donnees3 = $response3->fetch();
$donnees4 = $response4->fetch();
// echo '<p><strong>' . htmlspecialchars($donnees['nom_serveur']) . '</strong> : ' ;

//. htmlspecialchars($donnees['description_plat']) . '</p>'

echo ' <tr>';
echo ' <td>'; echo ' ' . htmlspecialchars($donnees1['nom_serveur']) ;
echo '</td>';
echo ' <td>'; echo ' ' . htmlspecialchars($donnees2['N_table']) ;
echo '</td>';
echo ' <td>'; echo ' ' . htmlspecialchars($donnees3['commande']) ;
echo '</td>';
echo ' <td>'; echo ' ' . htmlspecialchars($donnees4['description']) ;
echo '</td>';
echo ' <td>'; echo ' <input type="submit" value="prête" color = "red"/>' ;
echo '</td>';

echo ' </tr>';

}


echo '</table>';
$response1->closeCursor();

}

******la deuxieme page
<?php
// Connexion à la base de données
try
{
$pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;
$bdd = new PDO('mysql:host=localhost;dbname=restaurant', 'root', '', $pdo_options);


$req = $bdd->query('UPDATE commande set etat=1');

header('Location: cuisinier.php');
}
catch(Exception $e)
{
die('Erreur : '.$e->getMessage());
}
?>
//////
j'ai penser a mettre un id dans le bouton qui va s'incrémenter, et ajouter dans la requête une condition par exemple modifier le champ 'etat' quand id égale à id de la commande.
A voir également:

1 réponse

loicDu28 Messages postés 342 Statut Membre 53
 
Bonjour,

En effet, si tu veux modifier dans la base de données juste une ligne, il faut que tu mette une requête du style : "UPDATE commande set etat='1' WHERE id_commande='commande'" car sinon ça modifie toute les lignes de ta table commande.

Cordialement.
0
jojo2012 Messages postés 11 Statut Membre
 
d'abord je vous remercie pour votre réponse ,
moi je veux indexer les bouton et récupérer ces numéros. je 'explique :
le bouton numéro 4 modifie le champs etat dont id = 4 et ainsi de suite.
0
loicDu28 Messages postés 342 Statut Membre 53
 
je voit pas ou est ton problème.
Car si tu l'index, tu as le numéro donc après tu peux le modifier, non ?!
0
jojo2012 Messages postés 11 Statut Membre
 
le problème c'est que je sais pas comment récupérer les index , est ce correct cette méthode? :
$i="1";
while(..)
{
...
..
echo ' <td>'; echo ' <input id=$i type="submit" value="prête" color = "red"/>' ;
...
$i++;
}

$resultat=$_GET['id'];
$req = $bdd->query('UPDATE commande set etat=1 WHERE id_commande=$resultat');
0
loicDu28 Messages postés 342 Statut Membre 53
 
C'est pas mal je pense par contre au lieu de :
echo ' <input id=$i type="submit" value="prête" color = "red"/>' ; 

je te conseil de faire :
echo ' <input name="$i" type="submit" value="prête" color = "red"/>' ; 
0
jojo2012 Messages postés 11 Statut Membre
 
on me donne cet erreur :
Notice: Undefined index: i in D:\Program Files\wamp\www\test\cuisinier_post.php on line 9
0