Problème dans une requête php/mysql
jojo2012
Messages postés
2
Date d'inscription
Statut
Membre
Dernière intervention
-
loicDu28 Messages postés 342 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.
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
-
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.
-
-
-
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'); -
-
-