La suppression des donnés d'un BDD

Petit nouveau ! | 1 Messages

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") ;
}
?>

Eléphant du PHP | 71 Messages

08 juil. 2010, 21:32

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

Eléphanteau du PHP | 30 Messages

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.
PHP, Javascript, VBScript, Java, Python, Ruby, 4D, LotusScript, ObjectivC, C, C++, et sans compter les framework...
Qui a dit que les programmeurs n'avaient pas d'amis ?

Mon blog : http://www.programmeur.ch/blog/