Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Koszyk w PHP
Forum PHP.pl > Forum > PHP
tommasi
Witam,
Poniżej mam skryp koszyka w php jednak nie chce wyświetlać danych na podstawie pobranego id. Co gorsza nie ma żadnego błędu. Proszę o pomoc.

  1. <?php
  2.  
  3. function odbierz($txt) {
  4. if (get_magic_quotes_gpc()) $txt = stripslashes($txt);
  5. return str_replace(array('\\',"'"), array('\\\\',"\'"), trim($txt));
  6. }
  7.  
  8. $id = odbierz($_REQUEST["id"]);
  9. //echo $id;
  10. $sz = isset($_REQUEST["sz"])?number_format($_REQUEST["sz"],0,".",""):"";
  11.  
  12. if ($id<>"") {
  13. if ($db_conn = ocilogon ( "tomasz" , "tomasz1" ));
  14. $zapytanie = "SELECT id, towar, cena, ile FROM produkty WHERE id='$id'";
  15. $parsed = ociparse ( $db_conn , $zapytanie);
  16. ociexecute ( $parsed );
  17. $liczba_wierszy = ocifetchstatement ( $parsed , $dane );
  18. echo oci_num_rows($parsed);
  19. if ($liczba_wierszy == 1) {
  20. // $dane = oci_fetch_array($parsed);
  21.  
  22. $_SESSION["koszyk"]["$id"]["TOWAR"]=$dane["TOWAR"];
  23. $_SESSION["koszyk"]["$id"]["CENA"]=$dane["CENA"];
  24.  
  25. if ($sz=="") $_SESSION["koszyk"]["$id"]["ILE"] = 1;
  26. else if($sz>=1)$_SESSION["koszyk"]["$id"]["ILE"]=$sz;
  27. else if ($sz<=0)unset($_SESSION["koszyk"]["$id"]);
  28. }
  29. }
  30. $_SESSION["koszyk"]="";
  31. $lacznie=0;
  32. if (!empty ($_SESSION["koszyk"])){
  33. if (count($_SESSION["koszyk"])>0) {
  34. echo "<table border=\"1\" width=\"50%\" align=\"center\">
  35. <colgroup>
  36. <col />
  37. <col align=\"right\" />
  38. <col align=\"center\" />
  39. <col align=\"right\" />
  40. </colgroup>
  41. <tr><th>towar</th><th>cena</th><th>sztuk</th><th>łącznie</th></tr>";
  42.  
  43. foreach($_SESSION["koszyk"] as $indeks=>$kosz) {
  44. echo "<tr>";
  45. echo "<td>{$kosz["TOWAR"]}</td>";
  46. echo "<td>{$kosz["CENA"]} zł</td>";
  47. echo "<td>
  48. <form action=\"koszyk.php\" method=\"get\" style=\"display:inline;\">
  49. <div style=\"display:inline;\">
  50. <input type=\"hidden\" name=\"ID\" value=\"$indeks\" />
  51. <input type=\"text\" name=\"sz\" value=\"{$kosz["ILE"]}\"
  52. style=\"width:45px;\" />
  53. <input type=\"submit\" value=\"zmień\" style=\"width:45px;\" />
  54. </div></form>
  55. <form action=\"koszyk.php\" method=\"get\" style=\"display:inline;\">
  56. <div style=\"display:inline;\">
  57. <input type=\"hidden\" name=\"ID\" value=\"$indeks\" />
  58. <input type=\"hidden\" name=\"sz\" value=\"0\"
  59. style=\"width:25px;\" />
  60. <input type=\"submit\" value=\"usuń\" style=\"width:45px;\" />
  61. </div></form>
  62. </td>";
  63. echo "<td>".number_format($kosz["CENA"]*$kosz["ILE"],2,".","");
  64. echo " zł</td>";
  65. echo "</tr>";
  66.  
  67. $lacznie =$lacznie + $kosz["CENA"]*$kosz["ILE"];
  68. }
  69. echo "<tr><td colspan=\"3\" align=\"right\">
  70. w sumie: </td><td>";
  71. echo number_format($lacznie,2,".","")." zł</td></tr>";
  72. echo "</table>";
  73. } else echo "<p align=\"center\" > Koszyk jest pusty...</p>";
  74.  
  75. } else echo "<p align=\"center\" > Koszyk jest pusty...</p>";
  76. echo '</br></br>';
  77.  
  78.  
  79. echo '<table border="2" bgcolor="#99CCCC" align="center"><td><a href="zamow1.php" align="center">Zamów towar</a></td></table>';
  80.  
  81. ?>
Agares
Daj na początku skryptu:
ini_set('display_errors', true);
error_reporting(E_ALL);
i zobacz co się stanie.
tommasi
Nie wyświetla żadnych błędów. Wyświetla tylko na stronie komunikat z końca skryptu " Koszyk jest pusty... "
Cysiaczek
Ujmij proszę listing (zaprezentowany kod) w odpowiednie bbcode oraz nadaj temu wątkowi sensowny tytuł. http://forum.php.pl/regulamin.html#IV
Huh, sorki thek, nie zauważyłem smile.gif
muk4
  1. $_SESSION["koszyk"]=""; //tutaj ustawiasz zmienną jako empty
  2. $lacznie=0;
  3. if (!empty ($_SESSION["koszyk"])){ //tutaj sprawdzasz czy nie jest pusta, a jest.
  4. if (count($_SESSION["koszyk"])>0) {


Tak jak w komentarzach - najpierw ustawiasz zmienną = "" a potem sprawdzasz czy jest pusta.
tommasi
skrypt działa bod bazą MySQL chciałem przerobić go do połączenia za bazą ORACLE ale nie daje rady.
muk4
Tzn, co nie daję rady? -.-
Hoku
Dodaj na końcu przed "?>"
Kod
echo session_encode();

dostaniesz wszystko co zapisujesz w sesji, i prawdopodobnie będzie coś takiego:
Cytat
koszyk|s:0:""
gdzie nazwa_zmiennej|typ_zmiennej:(jesli string to jego dlugość):wartość
albo wcale nie będzie (nie pamiętam czy zapisywało puste dane do sesji)
to jest najprawdopodobniej przyczyna jeśli inne dane w sesji są a tej brak.
nie widzę też session_start(); chyba że masz session.auto_start=1;
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.