Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> problem ze skryptem do MySQL
gladiror
post 26.07.2005, 21:45:01
Post #1





Grupa: Zarejestrowani
Postów: 398
Pomógł: 0
Dołączył: 13.07.2005
Skąd: Lublin

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


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

Ten post edytował gladiror 14.09.2005, 20:30:16


--------------------
"Państwo to ja" Ludwik XIV
"Wróg zaatakuje to co kochasz" Ojciec Chrzestny
"Wszystko powinno być proste jak to tylko możliwe, ale nie prostsze..." A. Einstein
"Wyobraźnia jest ważniejsza niż wiedza" Albert Einstein
"Nieprawda powtarzana wielokrotnie staje się prawdą"
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 13)
kwiateusz
post 26.07.2005, 22:03:19
Post #2


Admin Techniczny


Grupa: Administratorzy
Postów: 2 071
Pomógł: 93
Dołączył: 5.07.2005
Skąd: Olsztyn




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

Ten post edytował kwiateusz 26.07.2005, 22:03:48
Go to the top of the page
+Quote Post
SongoQ
post 26.07.2005, 22:21:50
Post #3





Grupa: Przyjaciele php.pl
Postów: 2 923
Pomógł: 9
Dołączył: 25.10.2004
Skąd: Rzeszów - studia / Warszawa - praca

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


@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.


--------------------
Go to the top of the page
+Quote Post
kwiateusz
post 26.07.2005, 22:25:36
Post #4


Admin Techniczny


Grupa: Administratorzy
Postów: 2 071
Pomógł: 93
Dołączył: 5.07.2005
Skąd: Olsztyn




ja sie ucze wiec przepraszam ale to jest w poczatkujacym wiec nie zakladalem ze to mzoe byc skrypt multiplatformowy smile.gif
Go to the top of the page
+Quote Post
gladiror
post 26.07.2005, 22:36:00
Post #5





Grupa: Zarejestrowani
Postów: 398
Pomógł: 0
Dołączył: 13.07.2005
Skąd: Lublin

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


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

Ten post edytował gladiror 26.07.2005, 22:38:54


--------------------
"Państwo to ja" Ludwik XIV
"Wróg zaatakuje to co kochasz" Ojciec Chrzestny
"Wszystko powinno być proste jak to tylko możliwe, ale nie prostsze..." A. Einstein
"Wyobraźnia jest ważniejsza niż wiedza" Albert Einstein
"Nieprawda powtarzana wielokrotnie staje się prawdą"
Go to the top of the page
+Quote Post
peterj
post 26.07.2005, 22:49:08
Post #6





Grupa: Zarejestrowani
Postów: 121
Pomógł: 0
Dołączył: 9.02.2004
Skąd: Warszawa

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


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. ?>


Ten post edytował peterj 26.07.2005, 22:51:24


--------------------
Warsztat: Apache 1.3.29 / PHP 4.3.4 / MySQL 3.23.58 / Winsyntax
Go to the top of the page
+Quote Post
gladiror
post 26.07.2005, 22:53:18
Post #7





Grupa: Zarejestrowani
Postów: 398
Pomógł: 0
Dołączył: 13.07.2005
Skąd: Lublin

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


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


--------------------
"Państwo to ja" Ludwik XIV
"Wróg zaatakuje to co kochasz" Ojciec Chrzestny
"Wszystko powinno być proste jak to tylko możliwe, ale nie prostsze..." A. Einstein
"Wyobraźnia jest ważniejsza niż wiedza" Albert Einstein
"Nieprawda powtarzana wielokrotnie staje się prawdą"
Go to the top of the page
+Quote Post
peterj
post 26.07.2005, 22:57:22
Post #8





Grupa: Zarejestrowani
Postów: 121
Pomógł: 0
Dołączył: 9.02.2004
Skąd: Warszawa

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


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.

Ten post edytował peterj 26.07.2005, 23:02:40


--------------------
Warsztat: Apache 1.3.29 / PHP 4.3.4 / MySQL 3.23.58 / Winsyntax
Go to the top of the page
+Quote Post
gladiror
post 26.07.2005, 23:03:08
Post #9





Grupa: Zarejestrowani
Postów: 398
Pomógł: 0
Dołączył: 13.07.2005
Skąd: Lublin

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


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


--------------------
"Państwo to ja" Ludwik XIV
"Wróg zaatakuje to co kochasz" Ojciec Chrzestny
"Wszystko powinno być proste jak to tylko możliwe, ale nie prostsze..." A. Einstein
"Wyobraźnia jest ważniejsza niż wiedza" Albert Einstein
"Nieprawda powtarzana wielokrotnie staje się prawdą"
Go to the top of the page
+Quote Post
SongoQ
post 26.07.2005, 23:05:32
Post #10





Grupa: Przyjaciele php.pl
Postów: 2 923
Pomógł: 9
Dołączył: 25.10.2004
Skąd: Rzeszów - studia / Warszawa - praca

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


@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.


--------------------
Go to the top of the page
+Quote Post
peterj
post 26.07.2005, 23:19:00
Post #11





Grupa: Zarejestrowani
Postów: 121
Pomógł: 0
Dołączył: 9.02.2004
Skąd: Warszawa

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


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.


--------------------
Warsztat: Apache 1.3.29 / PHP 4.3.4 / MySQL 3.23.58 / Winsyntax
Go to the top of the page
+Quote Post
gladiror
post 26.07.2005, 23:26:28
Post #12





Grupa: Zarejestrowani
Postów: 398
Pomógł: 0
Dołączył: 13.07.2005
Skąd: Lublin

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


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>


Ten post edytował gladiror 14.09.2005, 20:31:10


--------------------
"Państwo to ja" Ludwik XIV
"Wróg zaatakuje to co kochasz" Ojciec Chrzestny
"Wszystko powinno być proste jak to tylko możliwe, ale nie prostsze..." A. Einstein
"Wyobraźnia jest ważniejsza niż wiedza" Albert Einstein
"Nieprawda powtarzana wielokrotnie staje się prawdą"
Go to the top of the page
+Quote Post
peterj
post 26.07.2005, 23:31:01
Post #13





Grupa: Zarejestrowani
Postów: 121
Pomógł: 0
Dołączył: 9.02.2004
Skąd: Warszawa

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


w formularzu daj jeszcze
  1. <INPUT TYPE="hidden" NAME="size" VALUE="<?php echo $size; ?>">


Ten post edytował peterj 26.07.2005, 23:31:49


--------------------
Warsztat: Apache 1.3.29 / PHP 4.3.4 / MySQL 3.23.58 / Winsyntax
Go to the top of the page
+Quote Post
gladiror
post 26.07.2005, 23:38:10
Post #14





Grupa: Zarejestrowani
Postów: 398
Pomógł: 0
Dołączył: 13.07.2005
Skąd: Lublin

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


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


--------------------
"Państwo to ja" Ludwik XIV
"Wróg zaatakuje to co kochasz" Ojciec Chrzestny
"Wszystko powinno być proste jak to tylko możliwe, ale nie prostsze..." A. Einstein
"Wyobraźnia jest ważniejsza niż wiedza" Albert Einstein
"Nieprawda powtarzana wielokrotnie staje się prawdą"
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 14.08.2025 - 03:39