Supprimer une ligne dans la BDD

Résolu
arthezius Messages postés 3538 Date d'inscription   Statut Membre Dernière intervention   -  
arthezius Messages postés 3538 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,
Bonjour, en fait j'arrive pas a supprimer une ligne dans ma base de donnée.
Enfin je sais le faire mais j'ai un code assez complexe et avec lequel je n'arrive pas a me dépatouiller.

Voici l'extrait du code qui nous interesse:
if (isset($_POST['suppr']) && $_POST['suppr'] == 'Supprimer')
	{$mysql_id = mysql_connect('localhost', 'darkent', 'delcourt');
	mysql_select_db('darkent', $mysql_id) or die(mysql_error());
	
	$sql = 'DELETE INTO blog_categories WHERE id='.$data['id'].'';
	if(mysql_query($sql)){$notif='<p class="admin"><strong>Effacement effectué.</strong></p>';}
	else{die('Echec. Erreur SQL !'.$sql.'<br />'.mysql_error());}
	}

[...]
<?php
$mysql_id = mysql_connect('localhost', 'darkent', 'delcourt');
mysql_select_db('darkent', $mysql_id) or die(mysql_error());
$sql = 'SELECT * FROM blog_categories ORDER BY categorie ASC';
$list = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());

/*if($list == ''){echo '<p class="cat"><em>Aucune catégorie</em></p>';}*/
echo'<form method="post" action="categories_art.php">';
while ($data = mysql_fetch_array($list))
	{echo'<p class="cat"><input type="checkbox" name="cat_'.$data['id'].'" /> '.$data['categorie'].'</p>';}
echo'<p class="admin"><input type="submit" name="suppr" value="Supprimer" /></p></form>';?>

Bien sur il n'y a pas que ça et si vous voulez je vous met le code complet, mais c'est avec cette partie que j'ai le problème.
Il m'affiche le message suivant:
Echec. Erreur SQL !DELETE INTO blog_categories WHERE id=
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'INTO blog_categories WHERE id=' at line 1

J'ai l'impression qu'il n'arrive pas à récupérer le nom de la ligne que je voudrai supprimer.

Merci a ceux qui pourront m'éclairer.

3 réponses

Utilisateur anonyme
 
$sql = 'DELETE INTO blog_categories WHERE id='.$data['id'].'';
je crois que le into est en trop
0
arthezius Messages postés 3538 Date d'inscription   Statut Membre Dernière intervention   475
 
En fait, après m'être renseigné, la syntaxe exact serai plutôt:
if (isset($_POST['suppr']) && $_POST['suppr'] == 'Supprimer')
	{$mysql_id = mysql_connect('localhost', 'darkent', 'delcourt');
	mysql_select_db('darkent', $mysql_id) or die(mysql_error());
	
	$sql = 'DELETE FROM blog_categories WHERE id="'.$data['id'].'"';
	if(mysql_query($sql)){$notif='<p class="admin"><strong>Effacement effectué.</strong></p>';}
	else{die('Echec. Erreur SQL !'.$sql.'<br />'.mysql_error());}
	}

Seulement, du coup, il ne se passe plus rien.


Pour info, voici le code complet de ma page:
<?php
if(isset($_POST['categorie']))
	{$mysql_id = mysql_connect('localhost', 'darkent', 'delcourt');
	mysql_select_db('darkent', $mysql_id) or die(mysql_error());
	
	$sql = 'INSERT INTO blog_categories VALUES("", "'.$_POST['categorie'].'")';
	if(mysql_query($sql)){$notif='<p class="admin"><strong>Enregistrement effectué.</strong></p>';}
	else{die('Echec. Erreur SQL !'.$sql.'<br />'.mysql_error());}
	}
if (isset($_POST['suppr']) && $_POST['suppr'] == 'Supprimer')
	{$mysql_id = mysql_connect('localhost', 'darkent', 'delcourt');
	mysql_select_db('darkent', $mysql_id) or die(mysql_error());
	
	$sql = 'DELETE FROM blog_categories WHERE id="'.$data['id'].'"';
	if(mysql_query($sql)){$notif='<p class="admin"><strong>Effacement effectué.</strong></p>';}
	else{die('Echec. Erreur SQL !'.$sql.'<br />'.mysql_error());}
	}
else{}
?>
<title>DarKent's World - Gérer les catégories</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link href="../style.css" rel="stylesheet" type="text/css" />

<div id="container">
<h1>Gérer les catégories</h1>
<div id="admin">
<form method="post" action="categories_art.php">
<p class="admin">Ajouter une catégorie :</p>
<p class="admin"><input name="categorie" /></p>
<p class="admin"><input type="submit" name="ajt" value="Ajouter" /></p>
</form>
<p class="admin">Catégories :</p>
<?php
$mysql_id = mysql_connect('localhost', 'darkent', 'delcourt');
mysql_select_db('darkent', $mysql_id) or die(mysql_error());
$sql = 'SELECT * FROM blog_categories ORDER BY categorie ASC';
$list = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());

/*if($list == ''){echo '<p class="cat"><em>Aucune catégorie</em></p>';}*/
echo'<form method="post" action="categories_art.php">';
while ($data = mysql_fetch_array($list))
	{echo'<p class="cat"><input type="checkbox" name="cat_'.$data['id'].'" /> '.$data['categorie'].'</p>';}
echo'<p class="admin"><input type="submit" name="suppr" value="Supprimer" /></p></form>';?>
<p class="admin"><a href="index.php">Retour accueil</a></p></div>
</div>
0
arthezius Messages postés 3538 Date d'inscription   Statut Membre Dernière intervention   475
 
En fait j'ai trouvé:
echo'<p class="cat"><input type="checkbox" name="cat" value="'.$data['id'].'" /> '.$data['nom_cat'].'</p>';

Je m'étais trompé sur l'utilisation du checkbox. J'avais oublié d'ajouter un value="" et donc le name était incorrect.
0