PHP et Mysql

Signaler
-
 nzenke -
Slt, j'ai un problème avec une requete dans un programme que je suis entrain de développer.En fait mon problème est le suivant:
avant observer d'abord le code ci-dessous:
<?php
// on se connecte à la base de données,

// Connection au serveur
$dns =  'mysql:host=localhost;dbname=Mescontacts';
$utilisateur = 'root';
$motDePasse = 'byoosadmin237';
$connection = new PDO($dns, $utilisateur, $motDePasse);
//on affiche le contenu de la base de données
$req = $connection->prepare("SELECT * FROM  contacts ");
$req->execute();
$data = $req->fetchAll(PDO::FETCH_BOTH);
echo'<form name="supprimer" action="supprimer.php" method="GET">';echo ' id  |
nom |
prenom |
pays |
ville |email |
telephone |
code postal |favoris |
';
foreach($data as $row){
echo '----
'.$row['id'].',
'.$row['nom'].',
'.$row['prenom'].',
'.$row['pays'].',
'.$row['ville'].',
'.$row['email'].',
'.$row['telephone'].',
'.$row['codepostal'].',
'.$row['favoris'].',
Delete,
';
}
echo'
';
print ("\n");
?></form>


<?php
$id = $_GET['id'];
if(isset($id)){
$sql="DELETE * FROM `Mescontacts`.`contacts` WHERE `contacts`.`id`='.$id.'";
$req = $connection->prepare($sql);
$req->execute();
echo 'contact supprime avec succes';
}
else{echo 'erreur survenue au moment de la suppression.';
}
?>
;
très bien ma requète de suppression ne s'exécute pas je ne comprend pas pourquoi car quand je clique sur supprimer j'ai bien mon message contact supprimé avec succes comme pour dire que le programme entre bien dans la boucle mais la requete ne s'execute pas car je retrouve toujours cet objet dans la base de données. svp aider moi à comprndre pourquoi ça ne marche pas.merci

9 réponses

Messages postés
130
Date d'inscription
lundi 11 janvier 2010
Statut
Membre
Dernière intervention
7 juin 2013

avec une meilleure syntaxe SQL ça pourrait aider : DELETE FROM.... (pas de '*')
Messages postés
130
Date d'inscription
lundi 11 janvier 2010
Statut
Membre
Dernière intervention
7 juin 2013

il me semble également que l'on peut afficher les erreurs SQL : Tapez le texte de l'url ici.

en espérant que mes réponse t'aident.
Messages postés
72
Date d'inscription
mercredi 7 février 2007
Statut
Membre
Dernière intervention
25 juillet 2013
1
Perso, je vois une autre erreur :
Tu affiches tous tes contacts et ensuite tu supprimes le contact. Donc dans tous les cas, tu affiches le contact même s'il est supprimé.
Commence par supprimer le contact s'il est envoyé et ensuite affiche les contacts.

-------------------
Oderint dum metuant
oui, effectivement j'affiche tous les contacts,et supprime l'un ou l'autre au cas où.., d'après ma conception une fois le contact supprimer je penses qu'il ne devrait plus exister dans la BD dont ne pourrais plus par la meme occasion exister dans mon tableau après un rafraichissement.
j'ai essayé une requete sans ('*'),mais elle n'a toujours pas marchée. En applicant la fonction Var_dump($req);
j'ai le résultat suivant: object(PDOStatement)#3 (1) { ["queryString"]=> string(68) "DELETE FROM Mescontacts.contacts WHERE contacts. id='.

Bonjour,

Simple question : c'est quoi Mescontacts ?
Car la syntaxe de suppression de données avec SQL c'est :
DELETE FROM ma_table WHERE id=132;

Ici ta table est "contacts" j'imagine, donc ta requete devrait être de la forme :
<?php
$sql="DELETE * FROM contacts WHERE id='".$id."';";
?>
bjr,nico ;
En fait Mescontacts c'est le nom de ma base de données et contacts le nom de ma table.

Tu n'es pas obligé de spécifier ta base de données, vu que tu le fais déjà quand tu te connectes à la base de données ...
Tu as essayé avec le code que je t'ai données ?
et tant que tu y es, essaye avec ceci :

<?php
$sql="DELETE * FROM contacts WHERE id='".$id."';";
$req = $connection->prepare($sql) or die(print_r($bdd->errorInfo()));
$req->execute();
?>


histoire d'avoir l'erreur SQL s'il y a.
slt , en fait j'ai trouvé la solution à mon problème, il fallait juste que j'enlève (*) dans ma requète; donc au finish c'est celle ci qui fonctionne:
$sql="DELETE FROM contacts WHERE id='".$id."'";

Merci à tous car c'est grâce à vous que j'y suis parvenu.