checkbox et mysql et php

Statut
N'est pas ouverte pour d'autres réponses.
D

derkomai

ex membre
Bonjour à tous ...
Voilà mon problème, je fais une gestion de caddie, jusqu'içi tout va bien mais lorque le client désire voir son caddie, tout s'affiche correctement. J'ai placer des checkbox pour permettre au client de supprimer des article de son caddie et j'ai employer php pour permettre de deleeter dans ma table l'article à enlever qui aura été choisit grace à la checkbox. Mais l'article ne se supprime jamais. :-(
Voici mon code :

<html>
<head>
<title>Caddies</title>
</head>
<body bgcolor="#FFFFFF" text="#000000">
<table width="950" border="0" align="center" cellspacing="1" cellpadding="3" bordercolor="#0099CC">
<tr>
<td>
<form name="form2" method="post" action="index.php?page=cad">
<table width="100%" border="1" align="center" cellspacing="0" cellpadding="3">
<tr bgcolor="#F0F0F0" bordercolor="#FFFFFF">
<td width="3%"><center><b>N°</b></center></td>
<td width="11%"><div align="center"><strong>sku</strong></div></td>
<td width="30%"><div align="center"><strong>Marque</strong></div></td>
<td width="50%"><div align="center"><strong>Description</strong></div></td>
<td width="6%"><div align="center"><strong:pfrt:rice</strong></div></td>
</tr>
<?php
$database="base";
$hostname="";
$dbusername="root";
$dbpassword="";
$connect=mysql_connect($hostname,$dbusername,$dbpassword);
$dbselect=mysql_select_db($database);
$serialcount=0;
$query="select sku from neworder where user_id='".$user_id."'";
$result=mysql_query($query);
$carttotal=0;
while($row=mysql_fetch_array($result)) {
//Mise à jour du contenu du caddie.
if (isset($$row["sku"])) {
if ($$row["sku"]==1) {
$deletequery="delete from neworder where sku=".$row["sku"];
$deleteresult= mysql_query($deletequery);
}
}
}
//Affichage des détails sur les articles sélectionnés
$query="select * from neworder where user_id='".$user_id."'";
$result=mysql_query($query);
while($row=mysql_fetch_array($result)) {
$proquery="select * from produit where sku='".$row["sku"]."'";
$proresult=mysql_query($proquery);
if($pro=mysql_fetch_array($proresult)) {
echo "<tr bordercolor=\"#FFFFFF\" bgcolor=\"#DEDFD7\"> ";
echo " <td > ";
echo " <left><font size=\"2\">" . ++$serialcount . "</font></center> ";
echo " </td> ";
echo " <td ><left><font size=\"2\">".$pro["sku"]."</font></center></td> ";
echo " <td> ";
echo " <left><font size=\"2\">".$pro["vendor"] . "</font></center> ";
echo " </td> ";
echo " <td> ";
echo " <left><font size=\"2\">".$pro["description"] . "</font></center> ";
echo " </td> ";
echo " <td> ";
echo " <div align=\"right\"><font size=\"2\">".$row["price"]." €</div></font>";
echo " </td>";
echo " <td> ";
echo " <center> ";
echo " <input type=\"checkbox\" name=\"".$pro["sku"]."\" value=\"1\">Cancel";
echo " </center> ";
echo " </td>";
echo "</tr> ";
$carttotal+=$row["price"];
}
}
echo "<tr bordercolor=\"#FFFFFF\"> ";
echo " <td colspan=\"3\"></td>";
echo " <td ><div align=\"right\"><b>Total</b></div></td> ";
echo " <td > ";
echo " <div align=\"right\"><b>".$carttotal." €</b></div> ";
echo " </td> ";
echo "</tr> ";
?>

<tr bordercolor="#FFFFFF">
<td colspan="7" >
<div align="right">
<input type="submit" name="Submit" value="Make Changes">
</div>
</td>
</tr>
</table>
</form>
</td>
</tr>
</table>
<?php
echo " <center><a href=\"confirmorder.php?user_id=".$user_id."\"><h2>Confirm Order</a></h2></center>";
?>
</body>

</html>

merci d'avance :D
 

Styleman

Touriste
je suis peut etre aveugle mais tu n'a pas poster la page qui traite les données pour supprimer non?

Sinon poste le stp, a mon avis c la k'est le probleme, ou alors je suis aveugle :? ...ce qui est fort possible aussi lol! :p
 
1er
OP
D

derkomai

ex membre
En fait je fait tout dans la même page en utilisant le formulaire pour rappeler la page sur laquelle se trouve l'utilisateur.

Et le code pour la supression est situé dans les première ligne :

//Mise à jour du contenu du caddie.
if (isset($$row["sku"])) {
if ($$row["sku"]==1) {
$deletequery="delete from neworder where sku=".$row["sku"];
$deleteresult= mysql_query($deletequery);
}
}

Voilà ce sera un peu plus claire.
merci :p
 
imprime ta query de delete avant de l'executer, imprime un max de débug.... tu finiras bien par localise l'erreur :oops:
 
1er
OP
D

derkomai

ex membre
Tu entends quoi par imprimer? J'affiche à l'écran ce qu'il y a à supprimer? :?
merci pour les réponses
:D
 

Styleman

Touriste
derkomai a dit:
Tu entends quoi par imprimer? J'affiche à l'écran ce qu'il y a à supprimer? :?
merci pour les réponses
:D

oui donc tu fais un bete echo $deletequery;

et je comprendrai jamasi rien a ce langage moi, pk y'a 2$ a :
if (isset($$row["sku"])) {
if ($$row["sku"]==1) {
 
1er
OP
D

derkomai

ex membre
ben voilà, apparement il passe même pas par cette boucle,, il m'affiche rien du tout quand je lui fait echo $deletequery. donc si quelqu'un vois ou ce trouve le problème ... :D

merci :D
 

Bartdude

Touriste
derkomai a dit:
ben voilà, apparement il passe même pas par cette boucle,, il m'affiche rien du tout quand je lui fait echo $deletequery. donc si quelqu'un vois ou ce trouve le problème ... :D

merci :D
=> debug : tu fais des tests sur des valeurs afin de rentrer dans la boucle. Si il n'y rentre pas, c'est qu'un de ces tests foire alors qu'il devrait passer => echo les différentes variables de ton test
 
1er
OP
D

derkomai

ex membre
Merci mais je comprend pas trop quel genre de test je pourrais faire? Je débute en php et certaines notions m'échape encore. Mais une chose est sure, il ne passe pas dans ma boucle et pourquoi, ça je ne sais pas :cry:

Merci d'avance :)
 
en lisant ton code, je vois plusieurs problèmes :

1: tu ne testes jamais aucune valeur (exemple: la connection à la DB. Php est parfois gentil, il dit quand la connexion foire , parfois pas gentil (en fonction de la configuration), il dit rien et la connexion s'est pas faite.

Tu devrais déjà ajouter un "or die("message") " à la fin de chaque requête BD.

Ensuite, tu veux effacer de la base un truc qui provient de $row["sku"] que tu viens de récupérer juste avant ... de la manière dont je lis ton script, tu vas supprimer tous les SKU pour un id-client..... tu ne récupères pas les valeurs provenant d'un POST éventuel....

Je pense que pour t'y retrouver, la meilleure chose serait déjà de structurer ton code d'un manière plus lisible.... Par exemple: Tout le code d'insertion/update/delete devrait se faire AVANT le code HTML et tu devrais mettre des commentaires (// pour une seule ligne et /* commentaire */ pour un bloc)

en plus, dans ta query, le fait de mettre celle-ci entre " et d'avoir $row[" sur la même ligne pourrait l'embêter je pense (pour résoudre ce problème, je fait plutôt un fetch_object qui me permet d'aller rechercher une valeur avec la commande $row->sku

....
J'espère que ça t'aide un peu, sinon, contactes moi en PV, on verra ça plus en détail.

(je confirme aussi la présence douteuse de ton double $$)
 
Statut
N'est pas ouverte pour d'autres réponses.
Haut