login  Naam:   Wachtwoord: 
Registreer je!
 Forum

values vanuit form in database

Offline Noedel - 11/06/2007 16:58
Avatar van NoedelNieuw lid Hey,
Ik heb een winkelwagen gemaakt voor een webshop en wil mijn aantallen updaten dmv getallen in tekstvakken. Alleen nu pakt ie nieuwe de getallen niet om ze te updaten in het database.

dit ik de actie onder de knop:
  1. if(isset($_POST['submit']))
  2. {
  3. foreach($_POST['aantal'] as $id => $value)
  4. {
  5. $update = mysql_query("UPDATE `temporderregel` SET aantal = ".$value." WHERE artikelid = ".$value."")or die(mysql_error());
  6. header('Refresh:0 url=winkelwagen.php');
  7. }
  8. }


en dit is het form

  1. <form action="winkelwagen.php" method="post">
  2. <table width = '100%' border = '1' >
  3. <tr><td colspan="5">product: <?php echo $productnaam ?> </td></tr>
  4. <tr>
  5. <br>
  6.  
  7. <input type="hidden" name="artikelNaam[]" value=<?php echo $artikelId ?> >
  8. <td width='10%'>aantal:</td>
  9. <td width="5%" align="left"><input type="text" size="1" name="aantal['<?php echo $artikelId ?>']" value="<?php echo $productaantal;?>"> </td>
  10. <td width='15%' align="center" >Prijs Per Stuk:</td><td align="left" > <?php echo '€ ' .$productprijs ?> </td>
  11. <td width='50%'>Totaalprijs: <?php $format = sprintf ("%01.2f", $productaantal * $productprijs);
  12. echo '€ ' .$format?> </td>
  13. <td><input type="submit" name="verwijder" value="X" />
  14. <td><input type="submit" value="volgende" name="submit"></td>
  15. </td>
  16. </tr>
  17. </table>
  18. </form>


hopelijk kunnen jullie mij helpen, en alvast bedankt

3 antwoorden

Gesponsorde links
Offline Thomas - 11/06/2007 17:14
Avatar van Thomas Moderator Wellicht bedoel je SET aantal = aantal - $value, zodat je je restvoorraad weet? Of SET aantal = aantal + $value, zodat je het bestelde aantal items update?

Wat wordt precies bijgehouden in temporderregel?

Het lijkt mij wel verstandig om $value aan een type-controle te onderwerpen, anders loopt je query vast.

Daarnaast lijkt mij een header-redirect in een lus ook niet zo fris, dit dient na afloop te gebeuren, met hierna een exit()-statement.
Offline Noedel - 12/06/2007 10:09 (laatste wijziging 12/06/2007 11:17)
Avatar van Noedel Nieuw lid probleem is opgelost:

ik heb
  1. if(isset($_POST['submit']))
  2. {
  3. foreach($_POST['aantal'] as $id => $value)
  4. {
  5. $update = mysql_query("UPDATE `temporderregel` SET aantal = ".$value." WHERE artikelid = ".$value."")or die(mysql_error());
  6. header('Refresh:0 url=winkelwagen.php');
  7. }
  8. }


veranderd in
  1. if(isset($_POST['submit']))
  2. {
  3. foreach($_POST['aantal'] as $id => $value)
  4. {
  5. $update = mysql_query("UPDATE `temporderregel` SET aantal = ".$value." WHERE artikelid = ".$id."")or die(mysql_error());
  6. header('Refresh:0 url=winkelwagen.php');
  7. }
  8. }

(where artikelid =".$id.")
Offline Thomas - 12/06/2007 11:34
Avatar van Thomas Moderator Als je een shoppingcart-site maakt, zou ik type-controles uitvoeren op $_POST, anders wordt je data misschien corrupt.

Probeer ook bij jezelf na te gaan wat header() precies doet. Deze wordt pas uitgevoerd nadat je hele script is uitgedraaid. Toch hoort deze niet thuis _in_ een loop. En omdat je header pas wordt uitgevoerd nadat je hele script is gedraaid (en output naar het scherm wordt geschreven, te starten met headers), lijkt het mij ook zinnig om direct na een header() altijd exit() te zetten (althans, als het een redirect-header betreft), om verdere uitvoer van script / output te voorkomen.
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.229s