PHP et Mysql

nzenke - 19 nov. 2012 à 13:37
 nzenke - 20 nov. 2012 à 15:12
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

sylvain64520 Messages postés 130 Date d'inscription lundi 11 janvier 2010 Statut Membre Dernière intervention 7 juin 2013
19 nov. 2012 à 14:00
avec une meilleure syntaxe SQL ça pourrait aider : DELETE FROM.... (pas de '*')
0
sylvain64520 Messages postés 130 Date d'inscription lundi 11 janvier 2010 Statut Membre Dernière intervention 7 juin 2013
19 nov. 2012 à 14:02
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.
0
pmcoste Messages postés 72 Date d'inscription mercredi 7 février 2007 Statut Membre Dernière intervention 25 juillet 2013 1
19 nov. 2012 à 14:43
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
0
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.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
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='.
0
nicotontige
20 nov. 2012 à 11:27
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."';";
?>
0
bjr,nico ;
En fait Mescontacts c'est le nom de ma base de données et contacts le nom de ma table.
0
nicotontige
20 nov. 2012 à 12:10
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.
0
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.
0
Rejoignez-nous