Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Problem z identyfikacją $id
Forum PHP.pl > Forum > Przedszkole
andrzejlechniak
Witam
Mam problem, z którym męczę się od dwóch dni. Chodzi o skrypt sklepu. Mam taki kod:

  1. if(isset($_GET['id_zakupu']))
  2. {
  3. $id=(int)$_GET['id_zakupu'];
  4.  
  5. if ($id !="") {
  6. $query = mysql_query("SELECT * FROM produkty WHERE id='$id'");
  7. if ($query and mysql_num_rows($query)==1) {
  8. $dane = mysql_fetch_array($query);
  9.  
  10. $_SESSION["koszyk"][$id]["id"]=$dane["id"];
  11. $_SESSION["koszyk"][$id]["towar"]=$dane["towar"];
  12. $_SESSION["koszyk"][$id]["cena"]=$dane["cena"];
  13. $_SESSION["koszyk"][$id]["opis"]=$dane["opis"];
  14. $_SESSION["koszyk"][$id]["zdjecie"]=$dane["zdjecie"];
  15.  
  16. if ($sz=="") $_SESSION["koszyk"]["$id"]["ile"]++;
  17. else if ($sz>=1) $_SESSION["koszyk"]["$id"]["ile"]=$sz;
  18. else if ($sz<=0) unset($_SESSION["koszyk"]["$id"]);
  19. }
  20. }
  21.  
  22. if (count($_SESSION["koszyk"])>0) {
  23. echo "<table align='center' style='width:650px; border: 1px solid #dddddd;'>
  24. <tr><th colspan='6' style='border-bottom: 1px solid #dddddd;'>Koszyk z Twoimi zakupami | Kontynuuj <a href='index2.php?id=produkty'>zakupy</a></th>
  25. </tr><tr>
  26. <th width='10%'>Zdjecie</th>
  27. <th width='15%'>Nazwa</th>
  28. <th width='30%'>Opis produktu</th>
  29. <th width='10%'>Cena</th>
  30. <th width='25%'>Sztuk</th>
  31. <th width='10%'>Razem</th>
  32. </tr>";
  33.  
  34. foreach($_SESSION["koszyk"] as $indeks=>$kosz)
  35. {
  36. $id = $kosz['id'];
  37. var_dump($id);
  38.  
  39. echo "<tr>";
  40. echo "<td valign='top'><img src='obrazki_produkty/{$kosz['zdjecie']}' /></td>";
  41. echo "<td valign='top'>{$kosz['towar']}</td>";
  42. echo "<td valign='top'>{$kosz['opis']}</td>";
  43. echo "<td valign='top'>{$kosz['cena']} PLN</td>";
  44. echo "<td valign='top'>
  45. <form action=\"index2.php?id=koszyk&id_zakupu=$id\" method=\"post\" style=\"display:inline;\">
  46. <div style=\"display:inline;\">
  47. <input type=\"hidden\" name=\"id_zakupu\" value=\"$indeks\" />
  48. <input type=\"text\" name=\"sz\" value=\"{$kosz['ile']}\"style=\"width:25px;\" />
  49. <input type=\"submit\" value=\"zmień\" style=\"width:45px;\" />
  50. </div></form>
  51. <form action=\"index2.php?id=koszyk&id_zakupu=$id\" method=\"post\" style=\"display:inline;\">
  52. <div style=\"display:inline;\">
  53. <input type=\"hidden\" name=\"id_zakupu\" value=\"$indeks\" />
  54. <input type=\"hidden\" name=\"sz\" value=\"0\"style=\"width:25px;\" />
  55. <input type=\"submit\" value=\"usuń\" style=\"width:45px;\" />
  56. </div></form>
  57. </td>";
  58. echo "<td valign='top'>".number_format($kosz['cena']*$kosz['ile'],2,".","");
  59. echo " PLN</td>";
  60. echo "</tr>";
  61. $lacznie +=$kosz['cena']*$kosz['ile'];
  62. }
  63. echo "<tr><td colspan=\"6\" align=\"right\" style='border-bottom: 1px solid #dddddd; border-top: 1px solid #dddddd;'>
  64. razem: <strong>";
  65. echo number_format($lacznie,2,".","")."</strong> PLN</td></tr><tr><td colspan=\"6\" align=\"right\"><a href='user.php?id=zakupy'>Kup towary</a></td></tr>";
  66. echo "</table>";
  67. }
  68.  
  69. }


Problem jest tego rodzaju: klikanie na usuń lub zmień nie działa bo $id nie jest ustalone i... no i właśnie nie wiem jak to zrobić i gdzie w TYM skrypcie. Var_dump pokazuje mi NULL, print_r[$_GET] pokazywał mi 0. Nie wiem co mam robić, jak rozwiązać ten niby błahy, ale problem. Będę BARDZO wdzięczny za pomoc. Andrzej
luck
Na początek zdecyduj, czy dane formularzy chcesz przesyłać metodą GET czy POST. Jeśli to drugie, to po co w akcji formy podajesz dodatkowe parametry?
andrzejlechniak
Chcę przesłać jako $_POST, ale co to ma do $id?
Ghost_78
luck ma racje - robisz tu pewien blad. ustalasz ze formularze maja byc przesulane jako POST wiec trzymaj sie tego i zamiast
  1. $_GET[id_zakupu];
  2. //zrob
  3. $_POST[id_zakupu];
  4. // itd

poza tym nie przekazuj danych w action podajac parametry po znaku zapytania
prawidlowo jest to tak:
  1. //<form action=\"index2.php?id=koszyk&id_zakupu=$id\" method=\"post\" style=\"display:inline;\">
  2. //zamien na
  3. <form action="index2.php" method="post">
  4. <input type="hidden" name="id" value="koszyk">
  5. <input type="hidden" name="id_zakupu" value="$id">

to bardziej eleganckie wyjscie i nie rodzi problemow
andrzejlechniak
Próbowałem zrobić, jak mi radzono, ale:
1. Odbieram dane w koszyku z linka, więc to odpada
2. Gdy część danych w odpowiednich tabelach i... gdy klikam na zmień - przenosi mnie na stronę - ...koszyk jest pusty!, natomiast gdy chcę usunąć, dodaje się automatycznie jedna sztuka towaru, jakbym odświeżał stronę.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.