effacer dans la base de donnée, marche pas mais je voit pas pourquoi ???

Eléphanteau du PHP | 40 Messages

25 août 2008, 10:12

Bonjour,

Pour ma société, je suis en train de créer une petite interface de gestion de base de donnée. Je suis bloqué à un point mais j'ai beau regarder dans mon code je comprend pas pourquoi cela ne marche pas ?

j'explique :

J'ai des informations dans une base de donnée et à l'aide d'un bouton je souhaite effacer ces données

j'ai une table qui se nomme "contacts" et a un champs qui se nomme "nom"

donc :

voici le code de mon bouton

Code : Tout sélectionner

<form action="" method="post" > <input type="hidden" name="supp" value="1" /> <input type="submit" value="Supprimer le contact" />
et ensuite la requete qui s'execute si je clique sur le bouton :
$suppri = $_POST['supp'];

if ($suppri == 1)
	{
		$effacage = mysql_query('DELETE FROM contacts WHERE nom="dupont"');
	}
Voila merci de votre aide :wink:

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

25 août 2008, 11:16

Et c'est quoi le problème que tu rencontres exactement ?

$suppri est pas égal à 1 ? la requête s'exécute pas ? elle retourne une erreur ? y a pas de connexion à la base ? y a pas d'enregistrement 'dupont' ? y a bien un enregistrement mais il n'est pas supprimé ? ...
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Eléphant du PHP | 139 Messages

25 août 2008, 11:25

Et si tu défini action du form ?

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

25 août 2008, 11:26

Bonjour,

La première chose à faire pour débuguer c'est de tester ta requête SQL directement dans phpmyadmin.

La deuxième chose que tu peux faire c'est afficher les erreurs MySQL au cas où ta requête s'exécuterai mal. Remplace
$effacage = mysql_query('DELETE FROM contacts WHERE nom="dupont"'); 
par
$effacage = mysql_query('DELETE FROM contacts WHERE nom="dupont"') or die("Erreur MySQL : ".mysql_error()); 
Si jusque là tout marche bien, alors il faut que tu regardes le PHP pour déterminer pourquoi le mysql_query() ne s'exécute pas.
Quand tout le reste a échoué, lisez le mode d'emploi...

Eléphanteau du PHP | 40 Messages

25 août 2008, 15:32

Et c'est quoi le problème que tu rencontres exactement ?

$suppri est pas égal à 1 ? la requête s'exécute pas ? elle retourne une erreur ? y a pas de connexion à la base ? y a pas d'enregistrement 'dupont' ? y a bien un enregistrement mais il n'est pas supprimé ? ...
mon probleme est que la requete n'efface pas les données.

Le systeme SQl or die me retourne aucune information

la variable jai verifié, elle est bien egale a 1

ViPHP
ViPHP | 4039 Messages

25 août 2008, 16:11

Il ne faut pas une majuscule à dupont ?

Berze, pour la réponse utile..
Mais qu'importe. (je suis ici - dernier petit projet)
Berze going social.

Eléphant du PHP | 169 Messages

25 août 2008, 16:18

Tu te connectes en root sur ta bdd ?

Eléphant du PHP | 63 Messages

26 août 2008, 16:22

Bonjour,

pour ta requête, je ne sais pas si deleter à partir du nom est une bonne solution. Si il y a plusieurs "dupont" dans ta base de données, ils seront tous supprimés. Utilises l'id de la personne.

Et si tu faisais juste ça :

Code : Tout sélectionner

if ($suppri == 1) { mysql_query('DELETE FROM contacts WHERE nom="dupont"'); }
Bon courage

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

27 août 2008, 10:02

La première chose à faire pour débuguer c'est de tester ta requête SQL directement dans phpmyadmin.
Quand tout le reste a échoué, lisez le mode d'emploi...