Problème dans une requête php/mysql

Fermé
jojo2012 Messages postés 11 Date d'inscription mardi 14 février 2012 Statut Membre Dernière intervention 7 mars 2012 - 7 mars 2012 à 15:51
loicDu28 Messages postés 332 Date d'inscription dimanche 11 janvier 2009 Statut Membre Dernière intervention 2 février 2016 - 8 mars 2012 à 01:20
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.

1 réponse

loicDu28 Messages postés 332 Date d'inscription dimanche 11 janvier 2009 Statut Membre Dernière intervention 2 février 2016 53
7 mars 2012 à 15:58
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 Date d'inscription mardi 14 février 2012 Statut Membre Dernière intervention 7 mars 2012
7 mars 2012 à 16:11
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 332 Date d'inscription dimanche 11 janvier 2009 Statut Membre Dernière intervention 2 février 2016 53
7 mars 2012 à 16:24
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 Date d'inscription mardi 14 février 2012 Statut Membre Dernière intervention 7 mars 2012
7 mars 2012 à 16:45
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 332 Date d'inscription dimanche 11 janvier 2009 Statut Membre Dernière intervention 2 février 2016 53
7 mars 2012 à 19:09
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 Date d'inscription mardi 14 février 2012 Statut Membre Dernière intervention 7 mars 2012
7 mars 2012 à 19:14
on me donne cet erreur :
Notice: Undefined index: i in D:\Program Files\wamp\www\test\cuisinier_post.php on line 9
0