Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP]Wybór produktu <przycisk kup>
-jowice-
post
Post #1





Goście







Zwracam się do was kolejny raz o poradę (jakąś małą podpowiedź choćby czy idę dobrym tropem). Otóż tworzę formularz, który po przyciśnięciu przycisku kup wysyła do bazy danych informacje o tym jaki produkt został kupiony i jaka jego ilość. Problem w tym, że produkty są pobierane z bazy danych przy pomocy pętli i nie za bardzo wiem, jak to zrobić żeby przy naciśnięciu przycisku kup wiadomo było który konkretnie produkt został kupiony.
Cóż.. jak na razie po naciśnięciu przycisku kup nie dzieje się nic, wiem, że to niezbyt dobrze świadczy o tym skrypcie, no ale [w sumie nie mam nic na swoje usprawiedliwienie].


  1. <?php
  2. function form ($ilosc = ""){
  3. ?>
  4.  
  5. <form action="produkty.php" method="POST">
  6. <div>
  7. Ilość sztuk: <input name="ilosc" value="<?= $ilosc; ?>"/><br />
  8. <input type="hidden" name="id" value="<?php echo $dane['P_ID'] ?>">
  9. <input type="submit" name="submit" value="Kup" />
  10. </div>
  11. </form>
  12.  
  13. <?php
  14. }
  15. $link = mysql_connect('','','');
  16.  
  17. if(!$link)
  18. {
  19. die('Could not connect: ' .mysql_error());
  20. }
  21. else
  22. {
  23. mysql_select_db('nsuder');
  24.  
  25. $result = mysql_query("SELECT * FROM PRODUKT");
  26. if (!$result) {
  27. echo 'invalid query';
  28. }
  29.  
  30. while($dane=mysql_fetch_array($result)){
  31.  
  32. echo "<h3>$dane[P_NAZWA]</h3>";
  33. echo "<p>$dane[P_OPIS]";
  34. echo "<br /><i>$dane[P_CENA]</i></p>";
  35. echo "$dane[P_OBRAZEK]";
  36. echo "<br /><br /><br /><br /><br />";
  37.  
  38. if ($dane['P_ILOSC'] > 0){
  39. form();
  40. }
  41. else{
  42. echo 'Produkt chwilowo niedostępny:(';
  43. echo "<br/>";
  44. }
  45. echo ".........................................";
  46.  
  47. if (isset($_GET["action"]) == 'kup' ) {
  48. $zapytanie = mysql_fetch_array(mysql_query("SELECT * FROM PRODUKTY WHERE P_ID = '$_POST['id']'"));
  49. mysql_query("INSERT INTO LINK (L_P_ID, L_ILOSC) VALUES($zapytanie[P_ID], $_POST['ilosc'])")
  50. or die("Nie można zakupić");
  51.  
  52. header('Location: formularz.php');
  53. }
  54.  
  55. }
  56.  
  57. }
  58.  
  59. mysql_close($link);
  60. ?>
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
darko
post
Post #2





Grupa: Zarejestrowani
Postów: 2 885
Pomógł: 463
Dołączył: 3.10.2009
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


Cytat(jowice @ 1.05.2011, 13:05:02 ) *
Cóż.. jak na razie po naciśnięciu przycisku kup nie dzieje się nic, wiem, że to niezbyt dobrze świadczy o tym skrypcie, no ale [w sumie nie mam nic na swoje usprawiedliwienie].

Haha. To, co tutaj widzę to jakaś masakra. Błędy:
- mieszanie POST z GET (albo jedno albo drugie) jeśli wysyłasz formularz postem to do przesłanych danych dobierasz się tylko i wyłącznie za pomocą albo $_POST albo $_REQUEST
- przemieszanie widoku z logiką funkcji
- brak jakichkolwiek zabezpieczeń
- powinno być: $zapytanie = mysql_fetch_array(mysql_query("SELECT * FROM PRODUKTY WHERE P_ID = " . $_POST['id']));
- mieszanie tagów <?php z tagami krótkimi <?=, w ogóle używanie tagów <?=

Ten post edytował darko 1.05.2011, 12:18:13
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 4.10.2025 - 17:31