Page 1 sur 1

Supprimer 1 ligne dans une table mysql

Posté : 30 avr. 2012, 19:25
par valou078
Bonjour,
Je voudrais supprimer 1 ligne de ma table 'marie' dans ma base 'noel' or j'arrive a supprimer toutes les ligne en me servant de l'id.
Mais ce n'est pas ce que je veux
Quelqu'un aurais t-il une suggestion


<---------------Page sup.php----------------------->
<?php
error_reporting(E_ALL | E_STRICT);

//serveur=>localhost, 
//utilisateur=>root, 
//mot_de_passe=>' ', 
//nom de la base=>noel,

//----1-CONNEXION AU SERVEUR ET A LA BDD------------------------------------------------
//--------------------------------------------------------------------------------------
$link3 = mysqli_connect('localhost', 'root', '') or die('Impossible de se connecter : ' . mysqli_error());
//echo 'Connexion ok'.'<br>';

//----2-CONNECTION A LA BDD NOEL--------------------------------------------------------
//--------------------------------------------------------------------------------------
mysqli_select_db($link3,'noel') or die('Impossible de selectionner la base de donnees');
//Norme UTF8
mysqli_query($link3,"SET NAMES UTF8");

//----3-RECUPERATION DES CHAMPS DU FORMULAIRE-DELETE------------------------------------
//--------------------------------------------------------------------------------------
if(isset($_POST['sup']) and (isset($_POST['id']))) {
$id  = $_POST['id'] ;
$sup = $_POST['sup'];

//----4-REQUETE POUR SELECTIONNER LA TABLE "MARIE" DANS LA BDD "NOEL"-------------------
//----DELETE FROM (supprimer dans la bdd)-----------------------------------------------
//--------------------------------------------------------------------------------------
$query3 = "DELETE FROM marie WHERE id = ".$id ;
//-on insere le couple (mysqli_query) et au cas où, on écrira un petit message d'erreur si la requête ne se passe pas bien (or die)
$resultat3=mysqli_query ($link3,$query3) or die ('Erreur SQL !'.$query3.'<br />'.mysqli_error());  

//affichage des résultats, pour savoir si l'insertion a marchée:<br />
if($resultat3){ 
    echo("<La Suppression de la bdd a &eacute;t&eacute; correctment faite."." Merci a vous".'<br>') ;
  }
else{
    echo("La Suppression de la bdd et la table marie, &agrave; &eacute;chou&eacute;e".'<br>') ;
  }
}
?>
<!----HTML---------------------------------------------->
<!---DEBUT DU FORMULAIRE SUPPRESSION-------------------->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link rel="stylesheet" href="feuilleStyle1.css" type="text/css"/>
<title>Suppression d'un ligne dans mysql de la table de Marie</title>
</head>

<body>
<form name="sup" action="marie.php" method="POST" enctype="multipart/form-data">
    <input type="checkbox" name="id" value="checkbox">
    <input type="submit" name="sup" value="sup">
</form>
</body>
</html>
<!---FIN DU FORMULAIRE SUPPRESSION------------------->

Re: Supprimer 1 ligne dans une table mysql

Posté : 30 avr. 2012, 21:22
par valou78
La demande du premier post reste inchangée
je me suis trouve une erreur :
<form name="sup" action="sup.php" method="POST" enctype="multipart/form-data">
    <input type="checkbox" name="id" value="id">
    <input type="submit" name="sup" value="sup">
</form>

Re: Supprimer 1 ligne dans une table mysql

Posté : 30 avr. 2012, 23:19
par xTG
Dans l'attribut value de l'input concernant l'id il faut mettre l'id concerné. :)
A moins que cette valeur ne soit "id" ? :|

Re: Supprimer 1 ligne dans une table mysql

Posté : 01 mai 2012, 10:39
par valou078
Voici mon message d'erreur:

Warning: mysqli_error() expects exactly 1 parameter, 0 given in C:\Program Files\EasyPHP-5.3.8.1\www\Noel\sup.php on line 32
Erreur SQL !DELETE FROM marie VALUES (
Notice: Undefined index: id in C:\Program Files\EasyPHP-5.3.8.1\www\Noel\sup.php on line 55
) WHERE id =
Notice: Undefined index: id in C:\Program Files\EasyPHP-5.3.8.1\www\Noel\sup.php on line 55
Merci de l'aide :lol:

<----------------Page Sup.php--------------------------->
<?php
error_reporting(E_ALL | E_STRICT);

//serveur=>localhost,
//utilisateur=>root,
//mot_de_passe=>' ',
//nom de la base=>noel,

//----1-CONNEXION AU SERVEUR ET A LA BDD------------------------------------------------
//--------------------------------------------------------------------------------------
$link3 = mysqli_connect('localhost', 'root', '') or die('Impossible de se connecter : ' . mysqli_error());
//echo 'Connexion ok'.'<br>';

//----2-CONNECTION A LA BDD NOEL--------------------------------------------------------
//--------------------------------------------------------------------------------------
mysqli_select_db($link3,'noel') or die('Impossible de selectionner la base de donnees');
//Norme UTF8
mysqli_query($link3,"SET NAMES UTF8");

//----3-RECUPERATION DES CHAMPS DU FORMULAIRE-DELETE------------------------------------
//--------------------------------------------------------------------------------------
if(isset($_POST['sup']) and (isset($_POST['id']))) {
$id  = $_POST['id'] ;
$sup = $_POST['sup'];

//----4-REQUETE POUR SELECTIONNER LA TABLE "MARIE" DANS LA BDD "NOEL"-------------------
//----DELETE FROM (supprimer dans la bdd)-----------------------------------------------
//--------------------------------------------------------------------------------------

$query3 = "DELETE FROM marie VALUES (".$_POST['id'].") WHERE id = ".$id ;
//-on insere le couple (mysqli_query) et au cas où, on écrira un petit message d'erreur si la requête ne se passe pas bien (or die)
$resultat3=mysqli_query ($link3,$query3) or die ('Erreur SQL !'.$query3.'<br/>'.mysqli_error());  

//affichage des résultats, pour savoir si l'insertion a marchée:<br />
if($resultat3){
    echo("<La Suppression de la bdd a &eacute;t&eacute; correctment faite."." Merci a vous".'<br/>') ;
  }
else{
    echo("La Suppression de la bdd et la table marie, &agrave; &eacute;chou&eacute;e".'<br/>') ;
  }
}
?>
<!----HTML---------------------------------------------->
<!---DEBUT DU FORMULAIRE SUPPRESSION-------------------->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Suppression d'un ligne dans mysql de la table de Marie</title>
</head>
<body>
<form name="sup" action="sup.php" method="POST" enctype="multipart/form-data">
    <input name="id" type="checkbox" value="
<?php echo $_POST['id'];?>
">
    <input type="submit" name="sup" value="sup">
</form>
</body>
</html>
<!---FIN DU FORMULAIRE SUPPRESSION------------------->

Re: Supprimer 1 ligne dans une table mysql

Posté : 01 mai 2012, 12:25
par xTG
Bizarre ce warning en étant dans une condition vérifiant l'existence de l'index...
Tu es sûr que cette ligne 55 est bien dans le code que tu nous montres (au niveau de la requête, car sinon oui il y a un souci avec le echo dans le formulaire, il faut tester l'existence avant de tenter un affichage) ?

Et sinon :
$query3 = "DELETE FROM marie WHERE id = ".$id ;
Dans une requête DELETE il n'y a pas de clause VALUES.
On supprime toute la ligne.

Re: Supprimer 1 ligne dans une table mysql

Posté : 01 mai 2012, 13:29
par valou78
oui pour le page sup.php j'ai fais un copier coller
donc l'erreur en ligne 55 existe bien
Je vais refaire mon conde dans le formulaire
merci pour les infos je vous tiens au courant de l'avancement.