supprimer une ligne de mon tableau

Par mohamedXcode, il y a 7 ans


Bonjour,

Voila je rencontre un petit problème avec mon code.

je suis entrain de créer un petit tableau en html qui affiche mes donnée dans une tabl sql dans ma base de donner , ce que je veux faire c'est de metrre un button a la fin de chaque ligne (une ligne tt les information d'un client ) qui supprime ce client de la base de donné

<?php $connection = mysql_connect('localhost', 'root', ''); mysql_select_db('res_bd'); /* location 0 */ $query2 = " select id_bien,superficie,nbr_piece,adresse,departement,description_bien,prix,nom,prenom from bien,profil where (transaction = 0) and (id_agent = id_profil)" ; $locations = mysql_query($query2); /* vente 1 */ $query3 = "select id_bien,superficie,nbr_piece,adresse,departement,description_bien,prix,nom,prenom from bien,profil where (transaction = 1) and (id_agent = id_profil) " ; $ventes = mysql_query($query3); ?> <!DOCTYPE html> <!DOCTYPE html> <html> <head> <title> acceuil </title> </head> <body> <br> <br> <br> <form action="agent.php" method="POST" > <?php echo "LISTE DES BIENS POUR LOCATION"; echo "<table border = '1'>"; echo "<tr> <th> Superficie maison </th> <th> Adresse </th> <th> Departement </th> <th> Nombre pieces </th> <th> Description bien </th> <th> Prix </th> <tr>"; while($row = mysql_fetch_array($locations)){ echo "<tr> <td '>" . $row['superficie'] . "</td> <td>" .$row['adresse']."</td> <td '>" . $row['departement'] . "</td> <td>" . $row['nbr_piece'] . "</td> <td '>" . $row['description_bien'] . "</td> <td>" . $row['prix'] . "</td> </tr>"; } ?> <br> <br> <br> <?php echo "LISTE DES BIEN PROPOSER A LA VENTE"; echo "<table border = '1'>"; echo "<tr> <th> Superficie maison </th> <th> Adresse </th> <th> Departement </th> <th> Nombre pieces </th> <th> Description bien </th> <th> Prix </th> <th> </th>"; while($row = mysql_fetch_array($ventes)) { echo "<tr> <td '>" . $row['superficie'] . "</td> <td>" .$row['adresse']."</td> <td '>" . $row['departement'] . "</td> <td>" . $row['nbr_piece'] . "</td> <td '>" . $row['description_bien'] . "</td> <td>" . $row['prix'] . "</td>"; } ?> <!--<td> <input type="submit" name="vendu" value="Vendu" id=". $row['id_bien'] ."> </td>--> <td> <input type="submit" name="supprimer" value="Supprimer" > <input type="hidden" name="b_id" value="<?=$fetcher['id_bien'] ?>"/> </td> <?php echo " </tr> "; ?> <?php if (isset($_POST['supprimer'])) { $boking_id = (int) $_POST['b_id']; mysqli_query($connection, "DELETE FROM `bien` where id_bien= '".$boking_id."'"); if(mysqli_affected_rows($connection)) { echo "success"; } else{ echo "faild"; } } if($_GET){ if(isset($_POST[‘vendu’])) { $id = $_GET['id_bien']; $query4 = "UPDATE `bien` SET `disponible`= 0 where id_bien = $id "; mysql_query($query4); } if (isset($_POST['supprimer'])) { $boking_id =(int) $_POST['b_id']; mysqli_query($connection, "DELETE FROM `bien` where id_bien= '".$boking_id."'"); if(mysqli_affected_rows($connection)) { echo "success"; } else{ echo "faild"; } } } ?> </form> </body> </html>

2 réponses

jerrywham, il y a 7 ans

Houlà ! Nous sommes en 2018 et PHP c'est la version 7.0 minimum qu'il FAUT utiliser.
mysql_* est déprécié depuis un moment déjà et il serait bien de se mettre à utiliser PDO.

Sinon, ta demande n'est pas très claire. Quel est le problème rencontré ? Quel est le message d'erreur qui est affiché (dans les logs ou sur ta page) ?

quenti77, il y a 7 ans

Voici un code beaucoup plus propre :

<?php // Je sais que tu va juste copier coller // mais vraiment apprend le dev et avec des // tutoriels qui sont à jour. // Connexion à la base de données // + configuration try { $db = new PDO('mysql:host=localhost;dbname=res_bd', 'root', ''); $db->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC); $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); } catch (PDOException $exception) { echo "Impossible de se connecter à la base de données"; exit(); } $action = $_GET['action'] ?? null; $id = intval($_GET['id'] ?? 0); $actionSuccess = 0; if ($action === 'delete' && $id > 0) { $reqDelete = $db->prepare('DELETE FROM bien WHERE id_bien = :id'); $success = $reqDelete->execute([ ':id' => $id ]); $actionSuccess = ($success) ? 1 : 2; } if ($action === 'buy' && $id > 0) { $reqUpdate = $db->prepare('UPDATE bien SET disponible = 0 WHERE id_bien = :id'); $success = $reqUpdate->execute([ ':id' => $id ]); $actionSuccess = ($success) ? 1 : 2; } $reqType = $db->prepare( 'SELECT id_bien, superficie, nbr_piece, adresse, departement, description_bien, prix, nom, prenom FROM profil INNER JOIN bien ON profil.id_profil = bien.id_agent WHERE `transaction` = :typeTransaction'); $reqType->execute([ ':typeTransaction' => 0 ]); $locations = $reqType->fetchAll(); $reqType->execute([ ':typeTransaction' => 1 ]); $ventes = $reqType->fetchAll(); ?> <html lang="fr"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>Accueil - Nom du site</title> </head> <body> <?php if ($actionSuccess === 1): ?> Action terminé ! <?php elseif ($actionSuccess === 2): ?> Action impossible ! <?php endif; ?> <h2>Liste des biens pour de la locations :</h2> <!-- Le CSS sert à styliser --> <table class="table-data"> <thead> <tr> <th>Superficie maison</th> <th>Adresse</th> <th>Departement</th> <th>Nombre pieces</th> <th>Description bien</th> <th>Prix</th> <th>Actions</th> </tr> </thead> <tbody> <?php foreach ($locations as $location): ?> <tr> <td><?= $location['superficie'] ?></td> <td><?= $location['adresse'] ?></td> <td><?= $location['departement'] ?></td> <td><?= $location['nbr_piece'] ?></td> <td><?= $location['description_bien'] ?></td> <td><?= $location['prix'] ?></td> <td> <!-- Remplacer le <i class="fa fa-money"></i> si tu n'a pas fontawesome --> <a href="agent.php?action=buy&amp;id=<?= $location['id_bien'] ?>" class="btn btn-danger"><i class="fa fa-money"></i></a> </td> </tr> <?php endforeach; ?> </tbody> </table> <h2>Liste des biens pour de la ventes :</h2> <!-- Le CSS sert à styliser --> <table class="table-data"> <thead> <tr> <th>Superficie maison</th> <th>Adresse</th> <th>Departement</th> <th>Nombre pieces</th> <th>Description bien</th> <th>Prix</th> <th>Actions</th> </tr> </thead> <tbody> <?php foreach ($ventes as $vente): ?> <tr> <td><?= $vente['superficie'] ?></td> <td><?= $vente['adresse'] ?></td> <td><?= $vente['departement'] ?></td> <td><?= $vente['nbr_piece'] ?></td> <td><?= $vente['description_bien'] ?></td> <td><?= $vente['prix'] ?></td> <td> <!-- Remplacer le <i class="fa fa-trash"></i> si tu n'a pas fontawesome --> <a href="agent.php?action=delete&amp;id=<?= $vente['id_bien'] ?>" class="btn btn-danger"><i class="fa fa-trash"></i></a> </td> </tr> <?php endforeach; ?> </tbody> </table> </body> </html>

Car oui les fonctions mysql_ sont supprimé depuis php 7 soit depuis 3 ans si je dis pas de bêtise.