Supprimer de ma base avec php
Résolu
Sihemnecib
Messages postés
14
Date d'inscription
Statut
Membre
Dernière intervention
-
Utilisateur anonyme -
Utilisateur anonyme -
Bonjour,
Je suis une débutante en PHP et j'ai fait une page contient un bouton supprimer qui permet a un administrateur de supprimer un compte d'un utilisateur (client) voilà mon code
Merc de me aider c urgent svp
Je suis une débutante en PHP et j'ai fait une page contient un bouton supprimer qui permet a un administrateur de supprimer un compte d'un utilisateur (client) voilà mon code
<? php
include'ConnexionMySql.php';
$requet=mysql_query("SELECT * FROM patient WHERE nom_patient ='".$nom) or die(mysql_error());
if(isset($_POST ['delete'])
) { //pour verifier les info sont inserer ou s'il ne sont pas vide
$nom = $_POST['nom'];
$sql="DELETE FROM test WHERE nom_patient='$nom' " ;
mysql_query($sql) ;
echo"<html> <font color=green> <center> [ Mr/Mme: $nom ] a été supprimer avec succée !!! </center> </font> <html>";
//on ferme la connexion a la base
}
else{
die('<html> <font color=red>Erreur SQL, Les champs sont peut etre vide! <br /> </font></html>'.mysql_error()); // rammemne l'erreurr
}
?>
<form method="POST" Action="" >
Nom :
<input type="text" name="nom" size="25"placeholder="Le nom a supprimer ici" required />
<input type="submit" name="Delete" value="Supprimer" />
<input type="reset" name="Annuler" />
</form>
Merc de me aider c urgent svp
3 réponses
-
Alors je n'ai pas testé n'ayant pas eu le temps de créer une base de donné mais voilà comment je procèderai (à tester j'ai corrigé à la va-vite)
Contenu de connexionmysl$dbuser = "root"; $dbpassword = ""; $dbname = "donees"; $dbhost = "localhost"; //Connection $mysqli = new mysqli($dbhost, $dbuser, $dbpassword, $dbname); if (mysqli_connect_error()) { printf("Connection à la base de donnée impossible: ", mysqli_connect_error()); exit(); }
Votre fichier :
PHPif (isset($_POST ['delete'])) { //pour verifier les info sont inserer ou s'il ne sont pas vide $nom = $_POST['nom']; $sql = "DELETE FROM patient WHERE nom_patient=$nom"; mysql_query($mysqli, $sql); echo"<html> <font color=green> <center> [ Mr/Mme: $nom ] a été supprimer avec succée !!! </center> </font> <html>"; //on ferme la connexion a la base } else { echo '<html> <font color=red>Erreur Les champs sont peut etre vide! <br /> </font></html>'; // rammemne l'erreurr } ?>
HTML<!DOCTYPE html> <html> <body> <form method="POST" Action="" > Nom : <input type="text" name="nom" size="25"placeholder="Le nom a supprimer ici" required /> <input type="submit" name="Delete" value="Supprimer" /> <input type="reset" name="Annuler" /> </form> </body> </html>
Encore une fois c'est baclé mais je suis prêt à revoir après que vous ayez testé ;)-
-
Bonjour,
Attention ligne 6 .. tu as mis mysql_query .. alors que tu as utilisé l'extension mysqli dans la connexion.
Ensuite, dans la requête$sql = "DELETE FROM patient WHERE nom_patient=$nom";
Si la variable $nom est de type string .. il faut la mettre entre quotes.$sql = "DELETE FROM patient WHERE nom_patient='$nom'";
Il faut également penser à mettre du débug en cas d'erreurs dans les requêtes par exemple :if(!mysqli_query($mysqli, $sql) ) { echo "Erreur : ".mysqli_error($mysqli); }
et enfin... il est préférable de récupérer "proprement" les variables AVANT de les utiliser.$nom = isset($_POST['nom']) ? $_POST['nom'] : NULL;
-
Voilà à tester !! Si vous avez des questions je reste à votre disposition en message privé ou en commentaire !
<?php $dbuser = "root"; $dbpassword = ""; $dbname = ""; $dbhost = "localhost"; //Connection $mysqli = new mysqli($dbhost, $dbuser, $dbpassword, $dbname); if (mysqli_connect_error()) { printf("Connection à la base de donnée impossible: ", mysqli_connect_error()); exit(); } $alert = ''; if (isset($_POST ['delete'])) { //pour verifier les info sont inserer ou s'il ne sont pas vide $nom = isset($_POST['nom']) ? $_POST['nom'] : NULL; $verif_if_exist = "SELECT * FROM patient WHERE nom_patient =$nom"; $verification = mysqli_query($mysqli, $verif_if_exist); if (mysqli_num_rows($verification) === 1) //verifie qu'il n'y a bien qu'une personne qui porte ce nom { $sql = "DELETE FROM patient WHERE nom_patient='$nom'"; if(!mysqli_query($mysqli, $sql) ) { echo "Erreur : ".mysqli_error($mysqli); } $alert = '<font color=green> <center> [ Mr/Mme: $nom ] a été supprimer avec succée !!! </center> </font>'; } elseif (mysqli_num_rows($verification) > 1) { $alert = '<font color=red>Erreur plusieurs personnes portent ce nom! <br /> </font>'; // rammemne l'erreurr } elseif (mysqli_num_rows($verification) < 1) { $alert = '<font color=red>Erreur Le nom est introuvable ! <br /> </font>'; } else { $alert = '<font color=red>Erreur Les champs sont vide ! <br /> </font>'; } } ?> <!DOCTYPE html> <html> <body> <?php if ($alert) { echo $alert; } ?> <form method="POST" Action="" > Nom : <input type="text" name="nom" size="25"placeholder="Le nom a supprimer ici" required /> <input type="submit" name="delete" value="Supprimer" /> <input type="reset" name="Annuler" /> </form> </body> </html> -
-
-
-
Quelle est la question ?
l'urgence est pour toi, pas pour nous, nous sommes des bénévoles avec une vie à s'occuper.
-
Voici la solution final résolvant les problèmes d'éxécutions pour ceux qui passerais pas là ! Problème résolu en accompagnement par message privé !
<?php $dbuser = "root"; //a changer avec nom d'utilisateur base de donnée $dbpassword = ""; // mot de passe du nom d'utilisateur $dbname = "test"; //le nom de la table $dbhost = "localhost"; //le serveur mysql localhost = par défaut en local //Connection $mysqli = new mysqli($dbhost, $dbuser, $dbpassword, $dbname); //Se connecte à la db if (mysqli_connect_error()) { // renvoie un message d'erreur printf("Connection à la base de donnée impossible: ", mysqli_connect_error()); exit(); } $alert = ''; // on s'en sert pour faire apparaitre les messages d'erreurs if (isset($_POST ['delete'])) { //pour verifier les info sont inserer ou s'il ne sont pas vide $nom = isset($_POST['nom']) ? $_POST['nom'] : NULL; $verif_if_exist = "SELECT * FROM patient WHERE nom_patient ='$nom'"; //verifie l'existance $verification = mysqli_query($mysqli, $verif_if_exist); //connection db pour vérifier if (mysqli_num_rows($verification) == 1) //verifie qu'il n'y a bien qu'une personne qui porte ce nom { $sql = "DELETE FROM patient WHERE nom_patient='$nom'"; if(!mysqli_query($mysqli, $sql) ) { echo "Erreur : ".mysqli_error($mysqli); } $alert = '<font color=green> <center> [ Mr/Mme: $nom ] a été supprimer avec succée !!! </center> </font>'; } elseif (mysqli_num_rows($verification) > 1) { //Message d'erreur si plus d'une personne $alert = '<font color=red>Erreur plusieurs personnes portent ce nom! <br /> </font>'; // rammemne l'erreurr } elseif (mysqli_num_rows($verification) < 1) { //message d'erreur s'il n'y a personne $alert = '<font color=red>Erreur Le nom est introuvable ! <br /> </font>'; } else { //champs vide +code inutile puisque tu met required dans le formulaire $alert = '<font color=red>Erreur Les champs sont vide ! <br /> </font>'; } } ?> <!DOCTYPE html> <html> <body> <?php // ici on affichera nos messages d'erreurs if ($alert) { echo $alert; } ?> <form method="POST" Action="" > Nom : <input type="text" name="nom" size="25"placeholder="Le nom a supprimer ici" required /> <input type="submit" name="delete" value="Supprimer" /> <!-- Attention à ne pas mettre "Delete" au lieu de "delete" sinon rien ne marche --> <input type="reset" name="Annuler" /> </form> </body> </html>