La suppression des donnés d'un BDD

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : La suppression des donnés d'un BDD

Re: La suppression des donnés d'un BDD

par loboblahz » 11 juil. 2010, 17:38

Je vois plusieurs problèmes dans ton code.

Ici :
$sql = mysql_query("DELETE * FROM document WHERE id_document='$id'");
mysql_close();

echo $sql ;
//exécution de la requête:
$requete = mysql_query( $sql, $cnx ) ;
1 - DELETE * FROM document ..... Il faut enlever le * (le défaut de copier/coller un SELECT), ça donne DELETE FROM document
2 - Tu ferme la connexion avec ta DB (voir mysql_close();) alors que tu vas encore envoyer des requêtes après le echo $sql.
3 - $sql est une resource, tu ne dois pas la repasser à mysql_query quelques lignes plus bas.

Voici à mon avis le bon code pour ce que tu cherches à faire :
<?php

$cnx = mysql_connect( "localhost", "root", "" ) ; //connection au serveur
$db = mysql_select_db( "gedia" ) ; //sélection de la base de données

$id = $_POST["id_document"] ; //récupération de la variable d'URL, qui va nous permettre de savoir quel enregistrement supprimer

$resultat = mysql_query("DELETE FROM document WHERE id_document='$id'"); //requête SQL: Suppression du document

$nbRecords = mysql_num_rows(mysql_query("SELECT id_document FROM document WHERE id_document='$id'")); // On tente de rechercher l'enregistrement qui ne devrait plus exister

mysql_close(); // Fermer la connexion avec la base de données

//affichage des résultats, pour savoir si la suppression a marchée:
if($nbRecords==0){ // L'enregistrement n'existe plus, la suppression a bien marché
    echo("La suppression à été correctement effectuée") ;
}else{
    echo("La suppression à échouée"); // Ne devrait jamais arrivé
}
?>
Désolé j'ai pas pu m'empêcher de réorganiser ton code, c'est un réflexe. Je n'aime pas le code qui s'étire sur des kilomètres avec des commentaires, je préfére les placer à côté de la ligne qui leur correspond.

Redis nous si ça fonctionne. J'ai pas pu le tester. Mais je ne vois pas d'erreur.

Re: La suppression des donnés d'un BDD

par Titiii » 08 juil. 2010, 21:32

Pour qu'on t'aide il nous faudrait l'erreur affichée...

La suppression des donnés d'un BDD

par raditi » 08 juil. 2010, 19:42

jé un prob, car j'arrive pas à supprimer les donnés de ma BDD voilà le code de ma page:

<?php
//connection au serveur:
$cnx = mysql_connect( "localhost", "root", "" ) ;

//sélection de la base de données:
$db = mysql_select_db( "gedia" ) ;

//récupération de la variable d'URL,
//qui va nous permettre de savoir quel enregistrement supprimer:
$id = $_POST["id_document"] ;

//requête SQL:
$sql = mysql_query("DELETE * FROM document WHERE id_document='$id'");
mysql_close();

echo $sql ;
//exécution de la requête:
$requete = mysql_query( $sql, $cnx ) ;

//affichage des résultats, pour savoir si la suppression a marchée:
if($requete)
{
echo("La suppression à été correctement effectuée") ;
}
else
{
echo("La suppression à échouée") ;
}
?>