checkbox et mysql et php

Discussion dans 'Web, design' créé par derkomai, 1 Avril 2004.

Statut de la discussion:
Fermée.
  1. Offline
    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
    derkomai, 1 Avril 2004
    #1
  2. Offline
    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
    Styleman, 1 Avril 2004
    #2
  3. Offline
    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
    derkomai, 2 Avril 2004
    #3
  4. Offline
    Petit_Raisin Elite
    imprime ta query de delete avant de l'executer, imprime un max de débug.... tu finiras bien par localise l'erreur :oops:
    Petit_Raisin, 2 Avril 2004
    #4
  5. Offline
    derkomai ex membre
    Tu entends quoi par imprimer? J'affiche à l'écran ce qu'il y a à supprimer? :?
    merci pour les réponses
    :D
    derkomai, 2 Avril 2004
    #5
  6. Offline
    Styleman Touriste

    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) {
    Styleman, 2 Avril 2004
    #6
  7. Offline
    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
    derkomai, 6 Avril 2004
    #7
  8. Offline
    Bartdude Touriste
    => 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
    Bartdude, 6 Avril 2004
    #8
  9. Offline
    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 :)
    derkomai, 8 Avril 2004
    #9
  10. Offline
    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 $$)
    TheFornicator, 13 Avril 2004
    #10
Statut de la discussion:
Fermée.