Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: problem ze skryptem do MySQL
Forum PHP.pl > Forum > Przedszkole
gladiror
Witam!
Mam dosyć poważny problem... Otoz jestem w trakcie budowy sklepu internetowego i potrzebuje pomocy w poprawieniu skryptu, ponieważ nie działa on do końca... Chodzi o to, że nie wszystkie dane wpisuje on do bazy danych... Wszystko wyglada nastepujaco:

zmienna $size jest zmienna globalna ustawiana w adresie strony, np. www.php.pl?size=40

zmienna $login - sprawdza czy ktos jest zalogowany
zmienna $sztuki - dane z formularza

  1. <?php
  2.  
  3.  
  4. $dbh=mysql_connect (&#092;"localhost\", \"login\", \"haslo\") or die ('Nie mogę poł&plusmn;czyć się z baz&plusmn; danych: ' . mysql_error());
  5. mysql_select_db (&#092;"aa\"); 
  6. $zapytanie = &#092;"SELECT * FROM `towar` WHERE kategoria = 'Bojówka' and widoczny = 'TAK' and kolor= 'czarny' and rozmiar = '$size'\";
  7. $wykonaj = mysql_query($zapytanie);
  8.  
  9. while($wiersz=mysql_fetch_array($wykonaj))
  10.     {
  11.     $nazwa_towaru = &#092;"\".$wiersz['nazwa'].\"\";
  12.     $cena_towaru = &#092;"\".$wiersz['cena'].\"\";
  13.     $rozmiar_towaru = &#092;"\".$wiersz['rozmiar'].\"\";
  14.     $kolor_towaru = &#092;"\".$wiersz['kolor'].\"\";
  15.     }
  16.     mysql_close($dbh);
  17.     
  18.     
  19.     
  20. if(isset($zamawiam))
  21. {
  22.     if($login<>'')
  23.     {
  24.     
  25.         if($sztuki==1 or $sztuki==2 or $sztuki==3 or $sztuki==4 or $sztuki==5 or $sztuki==6 or $sztuki==7 or $sztuki==8 or $sztuki==9)
  26.         {
  27.         print(&#092;"<h1>$nazwa_towaru</h1>\");
  28.         print(&#092;"<h1>Cena: $cena_towaru</h1>\");
  29.         print(&#092;"<h1>Rozmiar: $rozmiar_towaru</h1>\");
  30.         print(&#092;"<h1>Kolor: $kolor_towaru</h1>\");
  31.         
  32.         
  33.         $dbh=mysql_connect (&#092;"localhost\", \"login\", \"haslo\") or die ('Nie mogę poł&plusmn;czyć się z baz&plusmn; danych: ' . mysql_error());
  34.         mysql_select_db (&#092;"aa\"); 
  35.         $zapytanie = &#092;"INSERT INTO koszyk SET id_koszyk='', klient='$login', towar='$nazwa_towaru', rozmiar='$rozmiar_towaru', kolor='$kolor_towaru', ilosc='$sztuki', cena='$cena_towaru',data='2004-01-01'\";
  36.         $wykonaj = mysql_query($zapytanie);
  37.  
  38.         mysql_close($dbh);
  39.         
  40.         }
  41.         else
  42.         {
  43.         print(&#092;"Podana przez Ciebie wartość jest błędna!\");
  44.         }
  45.     
  46.     
  47.     }
  48.     else
  49.     {
  50.     print(&#092;"Nie jesteś zalogowany, aby móc dokonać zakupów!\");
  51.     }
  52. }
  53. else
  54. {
  55. print(&#092;"\");
  56. }
  57.  
  58.  
  59. ?>



Problem polega na tym, że do bazy danych przy pomocy zapytania:

  1. <?php
  2.  
  3. $zapytanie = &#092;"INSERT INTO koszyk SET id_koszyk='', klient='$login', towar='$nazwa_towaru', rozmiar='$rozmiar_towaru', kolor='$kolor_towaru', ilosc='$sztuki', cena='$cena_towaru',data='2004-01-01'\";
  4.  
  5. ?>


nie są wszystkie dane przesyłane -> przesyłana jest tylko zmienna ilosć i id_koszyk jest uzupełniany, natomiast reszta w bazie danych pozostaje pusta... nazwy pól w tabeli zgadzają się...

Bardzo proszę o pomoc....
kwiateusz
a nie powinno byc questionmark.gif
  1. <?php
  2.  
  3. &#092;"INSERT INTO koszyk VALUES ('NULL', '\".$login.\"', '\".$nazwa_towaru.\"', '\".$rozmiar_towaru.\"', '\".$kolor_towaru.\"', '\".$sztuki.\"', '\".cena_towaru.\"', '2004-01-01')\";
  4.  
  5. ?>
of course moge sie mylic smile.gif
SongoQ
@kwiateusz Oczywiscie sie mylisz smile.gif. Taka skladnia jest dopuszczana w MySQLu, lecz w innych bazkach nie zadziala. Jesli sie stosuje aplikacje przenosne na rozne bazy to nigdy sie tak nie uzywa.

Wracajac do tego problemu. Wyswietl co generuje zapytnie echo $zapytanie i zobaczysz czy wszystko masz ok.
kwiateusz
ja sie ucze wiec przepraszam ale to jest w poczatkujacym wiec nie zakladalem ze to mzoe byc skrypt multiplatformowy smile.gif
gladiror
Tam co napisałeś brakuje jednego dolara, ale wpisałem tak i dalej jest tak samo... Siedziałem nad tym cały dzień i nie potrafię dojść o co tutaj chodzi...

Wpisałem jak kazałeś

  1. <?php
  2. echo &#092;"$zapytanie\"; 
  3. ?>


i wyskoczyło coś takiego:

  1. <?php
  2.  
  3. INSERT INTO koszyk VALUES ('NULL', 'gladiror', '', '', '', '3', '', '2004-01-01') 
  4.  
  5. ?>


Zaupelnie jakby zmiennich nie widzial w tym miejscu...
peterj
Sprawdz czy zmienna $size ma jakąś wartość lub spróbuj użyć jej w ten sposób $_GET[size] i zmień jeszcze w liniach 13-16 na:
  1. <?php
  2. $nazwa_towaru = $wiersz['nazwa'];
  3. $cena_towaru = $wiersz['cena'];
  4. $rozmiar_towaru = $wiersz['rozmiar'];
  5. $kolor_towaru = $wiersz['kolor'];
  6. ?>
gladiror
ZMienna $size w miejscu (2 linijki przed wykonywaniem dodawania do bazy danych) nie ma żadnej wartości. Poprawilem tamte linijki co mi podałeś... Ale dalej jest tak samo...
peterj
Jeżeli wyciągasz z bazy tym zapytaniem SELECT * FROM `towar` WHERE kategoria = 'Bojówka' and widoczny = 'TAK' and kolor= 'czarny' and rozmiar = '$size'" to $size musi mieć wartość bo tak nic nie znajdzie chyba ze w tabeli z produktami w polu rozmiar tez nie podajesz tej wartości.
gladiror
Zmienna $size na początku ma ustawioną wartość w taki sposób, że wchodze na następującą stronę www.php.pl?size=40 a później formularz przerzuca na stronę www.php.pl Na początku - to znaczy tutaj:

  1. <?php
  2.  
  3. while($wiersz=mysql_fetch_array($wykonaj))
  4. {
  5. $nazwa_towaru = &#092;"\".$wiersz['nazwa'].\"\";
  6. $cena_towaru = &#092;"\".$wiersz['cena'].\"\";
  7. $rozmiar_towaru = &#092;"\".$wiersz['rozmiar'].\"\";
  8. $kolor_towaru = &#092;"\".$wiersz['kolor'].\"\";
  9. }
  10. mysql_close($dbh);
  11.  
  12. ?>


Wszystko jest ok, bo widzi $size=40, bo dzięki temu zapytanie robi i wyswietla na stronie, natomiast później jakby gubił wartość $size...
SongoQ
@kwiateusz Ja Ci nic nie zarzucam, w standardzie jest i powinno sie tez tak stosowac, tylko napisalem taka mala uwage odnosnie tego sposobu wykonania UPDATE.
peterj
Cytat
Zmienna $size na początku ma ustawioną wartość w taki sposób, że wchodze na następującą stronę www.php.pl?size=40 a później formularz przerzuca na stronę www.php.pl

Pokaż ten formularz bo ten kod co podales nie jest pelny.
gladiror
Plik w którym jest ten kod to (jak wpisuje do przeglądarki): www.php.pl/spodnie.php?size=40

  1. <?php
  2.  
  3. $dbh=mysql_connect (&#092;"localhost\", \"login\", \"haslo\") or die ('Nie mogę poł&plusmn;czyć się z baz&plusmn; danych: ' . mysql_error());
  4. mysql_select_db (&#092;"aa\"); 
  5. $zapytanie = &#092;"SELECT * FROM `towar` WHERE kategoria = 'Bojówka' and widoczny = 'TAK' and kolor= 'czarny' and rozmiar = '$size'\";
  6. $wykonaj = mysql_query($zapytanie);
  7.  
  8. while($wiersz=mysql_fetch_array($wykonaj))
  9.     {
  10.     $nazwa_towaru = $wiersz['nazwa'];
  11.     $cena_towaru = $wiersz['cena'];
  12.     $rozmiar_towaru = $wiersz['rozmiar'];
  13.     $kolor_towaru = $wiersz['kolor'];
  14.     }
  15.     mysql_close($dbh);
  16.     
  17.     
  18.     
  19.     
  20.     
  21.     
  22. if(isset($zamawiam))
  23. {
  24.     if($login<>'')
  25.     {
  26.     
  27.         if($sztuki==1 or $sztuki==2 or $sztuki==3 or $sztuki==4 or $sztuki==5 or $sztuki==6 or $sztuki==7 or $sztuki==8 or $sztuki==9)
  28.         {
  29.         print(&#092;"<h1>$nazwa_towaru</h1>\");
  30.         print(&#092;"<h1>Cena: $cena_towaru</h1>\");
  31.         print(&#092;"<h1>Rozmiar: $rozmiar_towaru</h1>\");
  32.         print(&#092;"<h1>Kolor: $kolor_towaru</h1>\");
  33.         print(&#092;"<h1>Rozmiar - zmienna size: $_GET[size]</h1>\");
  34.         
  35.         
  36.         
  37.         
  38.         
  39.         $dbh=mysql_connect (&#092;"localhost\", \"login\", \"haslo\") or die ('Nie mogę poł&plusmn;czyć się z baz&plusmn; danych: ' . mysql_error());
  40.         mysql_select_db (&#092;"aa\"); 
  41.         $zapytanie = &#092;"INSERT INTO koszyk VALUES ('NULL', '\".$login.\"', '\".$nazwa_towaru.\"', '\".$rozmiar_towaru.\"', '\".$kolor_towaru.\"', '\".$sztuki.\"', '\".$cena_towaru.\"', '2004-01-01')\";
  42.         $wykonaj = mysql_query($zapytanie);
  43.         
  44.         echo &#092;"$zapytanie\";
  45.         
  46.         mysql_close($dbh);
  47.         
  48.         }
  49.         else
  50.         {
  51.         print(&#092;"Podana przez Ciebie wartość jest błędna!\");
  52.         }
  53.     
  54.     
  55.     }
  56.     else
  57.     {
  58.     print(&#092;"Nie jesteś zalogowany, aby móc dokonać zakupów!\");
  59.     }
  60. }
  61. else
  62. {
  63. print(&#092;"\");
  64. }
  65.  
  66.  
  67.  
  68.  
  69.  
  70.  
  71. ?>
  72.  
  73. <form action=\"spodnie.php\" method=\"post\">
  74. <h2>ZAMAWIAM</h2>
  75. <div align=\"center\">Ilo&para;ć sztuk:
  76. <input type=\"text\" name=\"sztuki\" size=\"1\" maxlength=\"1\" title=\"Nie więcej niż 9 sztuk\"><br><br>
  77. <input type=\"submit\" name=\"zamawiam\" value=\"Zamawiam\">
  78. </div>
peterj
w formularzu daj jeszcze
  1. <INPUT TYPE="hidden" NAME="size" VALUE="<?php echo $size; ?>">
gladiror
Jesteś WIELKI!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

Bardzo Ci dziękuję!!!

Już wszystko działa winksmiley.jpg Heh... cały dzień nad tym siedziałem...

Jeszcze raz wielkie THX!!!!!!!!!!!!

guitar.gif
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.