[RESOLU] Suppression dans une Base de Donnée

Petit nouveau ! | 3 Messages

01 mars 2015, 04:37

Bonjour, je dois realiser un site internet pour mon projet de terminal BTS IRIS et je cherche a faire une page qui affiche et grace a un bouton, peut supprimer un utlisateur mais m'affiche "DELETE FROM clients WHERE NumeroCarte = La suppression à échouée"

voici mon code:

index.php

<?php
include("config.php");
?>

<!DOCTYPE HTML >
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">

<head>

<meta charset="utf-8" />
<link rel="stylesheet" href="style.css" />
<link href='http://fonts.googleapis.com/css?family=Lobster' rel='stylesheet' type='text/css'>

<title>JAIR MARKET</title>

<script language="javascript">

function confirme( NumCarte )
{
var confirmation = confirm( "Voulez vous vraiment supprimer cet enregistrement ?" ) ;
if( confirmation )
{
document.location.href = "Suppression.php?NumeroCarte="+NumCarte ;
}
}

</script>

</head>

<body>

<div id="bloc_page">

<!------------------------------------ HEADER ET BANNIERE---------------------------->

<header>

<table width="904" bgcolor="#BBB7B7">
<tr>
<td width="218">
<a href="../../index.html"><img src="../../Images/logofinale.png" align="left" width="218" height="115" id="logo"/>
</td>

<td width="674">
<h1 align="center">
<div>
<ul id="nav"><!--

--><li><a href="../../Client/index.php">Compte clients</a></li><!--
--><li><a href="../../Pro/index.php">Compte professionel</a></li><!--
--><li><a href="../../Information/index.php">Contact</a></li>
</ul>
</div>
</h1>
</td>

</table>


</header>

<!-------------------------- FIN HEADER ET BANNIERE -------------------------------->


<div id="contenu">
<div style="clear:both"></div>


<?php

$result = mysql_query("SELECT Nom,NumeroCarte,CodePostal,Coupon,Valeur FROM clients");
$nblignes = mysql_num_rows($result);



echo "</br></br>

<table width='897' bgcolor='#BBB7B7'>
<td>
<tr>

<td>Nom</td>
<td>Numero Carte</td>
<td>Code Postal</td>
<td>Coupon</td>
<td>Valeur des Coupon</td>
<td>Supprimer</td></tr>\n";

for ($i=0;$i<$nblignes;$i=$i+1)
{
$Nom = mysql_result($result,$i,"Nom");
$NumeroCarte = mysql_result($result,$i,"NumeroCarte");
$CodePostal = mysql_result($result,$i,"CodePostal");
$Coupon = mysql_result($result,$i,"Coupon");
$Valeur = mysql_result($result,$i,"Valeur");
$Date = mysql_result($result,$i,"Date");

echo "<tr><td></br>$Nom</td><td></br>$NumeroCarte><td></br>$CodePostal</td><td></br>$Coupon</td><td></br>$Valeur><td></br>$Date</td><td><a href=\"#\" onClick=\"confirme('".$NumeroCarte"')\" >Supprimer</a></td></tr> ";

}

?>





</html>



Suppression.php:

<?php
include("config.php");
?>

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

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

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

//requête SQL:
$sql = "DELETE FROM clients WHERE NumCarte = ".$NumeroCarte ;
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") ;
}
?>

Mammouth du PHP | 688 Messages

01 mars 2015, 15:25

le message qui s'affiche :
DELETE FROM clients WHERE NumeroCarte =
il manque donc le numerocarte, la requete est invalide, donc cela ne peut retourner que false.
une fois que c'est corrigé, se demander ce qu'il se passe si l'on rentrer '4565 or 1' comme NumeroCarte au paramètre GET NumeroCarte

Petit nouveau ! | 3 Messages

01 mars 2015, 16:57

$sql = "DELETE FROM clients WHERE NumCarte = ".$NumeroCarte ;

C'est sa la requête, mais elle ne marche pas.

Eléphanteau du PHP | 36 Messages

02 mars 2015, 17:21

Dans un premier temps il faudrait sécuriser ton $_GET['NumeroCarte'] par un mysq_real_escape_string (idéalement il faudrait même passer à mysqli ou pdo)...

Tu as fait un echo de $NumeroCarte quand tu fais Suppression.php?NumeroCarte=1 ça retourne quoi ?

Nestecha
Invité n'ayant pas de compte PHPfrance

02 mars 2015, 23:58

$sql = "DELETE FROM clients WHERE NumCarte = '$NumeroCarte'";

A tout hasard ?

Petit nouveau ! | 3 Messages

03 mars 2015, 01:42

Quelqu'un de ma classe a trouvé mon erreur.

<a href=\"#\" onClick=\"confirme('".$NumeroCarte"')
<a href=\"#\" onClick=\"confirme('".$NumeroCarte."')

Il manquais juste un point. :(

Merci a tous pour votre aide =)