Supprimer de ma base avec php

Résolu/Fermé
Sihemnecib Messages postés 15 Date d'inscription jeudi 17 mars 2016 Statut Membre Dernière intervention 17 avril 2016 - Modifié par NHenry le 13/04/2016 à 22:18
 Utilisateur anonyme - 14 avril 2016 à 00:33
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
<? 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
A voir également:

3 réponses

Utilisateur anonyme
13 avril 2016 à 22:14
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 :

PHP
if (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é ;)
0
Utilisateur anonyme
13 avril 2016 à 22:18
Je crois que je suis même incomplet je vous renvoie une nouvelle version d'ici peu (sort du travail)
0
jordane45 Messages postés 38136 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 16 avril 2024 4 649
Modifié par jordane45 le 13/04/2016 à 22:32
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;
0
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>
0
jordane45 Messages postés 38136 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 16 avril 2024 4 649 > Utilisateur anonyme
13 avril 2016 à 22:37
Penses à corriger en tenant compte de mes remarques précédentes. :-)
0
Utilisateur anonyme > jordane45 Messages postés 38136 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 16 avril 2024
13 avril 2016 à 22:40
Ah oui désolé pas vu je corrige merci des conseils ;) pour ce qui est des débugs je tiens compte essentiellement de la connection à la base de donnée ! si la table ou la colonne n'existe pas rien ne s'execute mais c'est vrai tu as raison ;)
0
NHenry Messages postés 15112 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 13 avril 2024 330
13 avril 2016 à 22:19
Quelle est la question ?

l'urgence est pour toi, pas pour nous, nous sommes des bénévoles avec une vie à s'occuper.
0
Utilisateur anonyme
13 avril 2016 à 22:24
Son code à quelques erreurs de synthaxe mais c'est vrai que tu as raison sur la question elle n'est pas explicite :)
0
Utilisateur anonyme
14 avril 2016 à 00:33
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>
0