![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 198 Pomógł: 3 Dołączył: 27.02.2007 Skąd: Tczew Ostrzeżenie: (0%) ![]() ![]() |
Witam nie owijając w bawełne (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) pragne przedstawić mój problem otóż polega on na tym ,że nie przekazuję danych tak jak powinien tzn. chodzi o nie dokładne przesyłanie ilości towaru (w form ustawiam 1 a w koszyku wyświetla 2) i tutaj nie o tyle błąd co moja nieumiejętność w zrozumieniu może i nawet w wykonaniu aby cena danego towaru która w form jest wybierana za pomocą option select byla przesłana taka jak została wybrana. w pliku "koszyk.pizza.php" będzie widoczne pole cena lecz nie wiem jak wykonać aby przyjmowała wartość wysłanego z wcześniejszego formularza
oto kod tego formularza który przesyła dane do koszyka nosi nazwę "zam.pizza.php"
a oto plik koszyk.pizza.php
Podam również zrzut z bazy danych (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) nie da się tego wszystkiego wyświetlić w jetnym topicu (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) jak ktoś będzie chętny proszę napisać w nastepnej wypowiedzi podam takowy zrzut (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Prosiłbym was o pomoc w wykonaniu prawidłowgo skryptu nie mam pojęcia jak przekazać poprawnie te dane do koszyk a może bardziej jak je odebrac w pliku koszyk (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) pozdrawiam Ten post edytował FliSs_tCv 25.09.2007, 12:29:58 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 4 Pomógł: 0 Dołączył: 25.09.2007 Ostrzeżenie: (0%) ![]() ![]() |
hej:)
piszesz bardzo nieczytelny kod:) o tej porze już ciężko się domyślać jakie dane pobierasz np tutaj "$wynik = mysql_query("SELECT * FROM $sql_tabela WHERE id='$id'");". Co do twojego pytania, to prześledź dokładnie, co się dzieje z twoją zmienną od momentu przesłania jej do skryptu-koszyka. Błędy 'o jedynkę' zdarzają się bardzo często, zwłaszcza przy operatorach dekrementacji/inkrementacji Kod if ($sz=="") $_SESSION["koszyk"]["$id"]["ile"]++; Być może to ta linia powoduje błąd - wrzuć w kilku miejscach echo, które wypisze ci aktualną wartość zmiennej w trakcie wykonywania się skryptu, wtedy szybko wyłapiesz miejsce, gdzie następuje niepożądana zmiana. Kolejnym punktem, gdzie może się wszystko sypać jest zapis typu Kod $_SESSION["koszyk"]["$id"]["ile"] Jeśli $id jest zmienną, wówczas nie obejmuj jej cudzysłowem. W cudzysłowach umieszczaj tylko stringi (literały). Następną rzeczą, która może ci kiedyś uprzykrzyć życie to nie trzymanie się wybranych przez ciebie standardów. Może pomyślisz że się czepiam, ale tak nie jest:) na podobnych błędach straciłem kiedyś sporo czasu:) piszesz np. <br /> co sugeruje xhtml'a, a wartości atrybutów tagów podajesz bez cudzysłowów, co było dopuszczalne tylko w 'zwykłym' html'u: Kod <b>Wybierz ilość</b>: <input (...) name="ilosc" value=1 size=5 maxlength=2> Wartości liczbowe atrybutów również warto podawać otaczając je cudzysłowem lub apostrofami. Wątpię, aby to było przyczyną twojego problemu, ale to tak na zapas:) Poza tym, zamiast tablicy $_REQUEST polecam ci używanie konkretnie $_GET lub $_POST, gdyż masz wtedy większą kontrolę nad przekazywanymi danymi - wiesz skąd się spodziewasz danych i stamtąd je pobierasz. Polecam ci jeszcze jedną rzecz. Zamiast grzęznąć w kodzie obok zapisów takich jak Kod if (mysql_connect($sql_serwer, $sql_login, $sql_haslo) && mysql_select_db($sql_baza)) { $wynik = mysql_query("SELECT * FROM $sql_tabela WHERE id='$id'"); mysql_close(); } warto sobie nawiązywanie i kończenie połączenia z bazą wywalić do osobnego pliku, gdzie znajdą się dwie podstawowe funkcje: Kod // łączenie z bazą danych function ConnectDB() { $sql = @mysql_connect('localhost', 'login', 'haslo'); if (!$sql) { exit('Wystąpił błąd nr ('.mysql_errno().'): <b>'.mysql_error().'</b>'); } $db = mysql_select_db('caprii') or die("BŁĄD - nieudane wybranie bazy!"); } // rozłączenie z bazą danych function DisconnectDB() { @mysql_close(); } potem sobie ten plik inkludujesz na początku każdego skryptu wymagającego dostępu do bazy, na początku skryptu wywołujesz ConnectDB() a na końcu DisconnectDB(). W środku zostaje ci już tylko miła zabawa z zapytaniami. To tyle , mam nadzieję, że trochę ci pomogłem swoim gadaniem. Pozdro:) Aha, pisz więcej komentarzy:) Ten post edytował hank 25.09.2007, 01:55:36 |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 198 Pomógł: 3 Dołączył: 27.02.2007 Skąd: Tczew Ostrzeżenie: (0%) ![]() ![]() |
Witaj Hank wielkie dzięki za opr (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif) nic nie szkodzi (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) skrypt koszyka uległ zmianie. podam go niżej, lecz w nim mam również problem ale myślę że to proscizna (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) ja już nie mam pomysłów (IMG:http://forum.php.pl/style_emoticons/default/sad.gif)
Tutaj jest taki problemem że jak nie dodam żadnego dodatku wyświetla mi taki o to błąd patrzałem w manualu ale dla mnie mało jeszcze znającego się na php to nic nie powiedziało ehh. \ BŁĄD = "Warning: array_keys() [function.array-keys]: The first argument should be an array in D:\WebServ\httpd-users\test\koszyk.php on line 22 Warning: Invalid argument supplied for foreach() in D:\WebServ\httpd-users\test\koszyk.php on line 24 ser podwójny ser potrójny ser papryka szynka" jak widać pokazuję mi wszystkie dostępne składniki poniżej (IMG:http://forum.php.pl/style_emoticons/default/sad.gif) . Zaznaczę że jak tylko nie dodam tego dodatku tak sie pokazuję a jak dodam chodżby jeden już nie ma tego błędu (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) please help me (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) -----------EDIT ------------------- zauważyłem również że nie da się za jednym zamówieniem zamówić 2 inych pizz kurde a to ważne (IMG:http://forum.php.pl/style_emoticons/default/sad.gif) bez kitu nie wiem już jak to zrobić:( to jest kod starego koszyka może mi pomożecie z niego jakoś udoskonalić ten wyżej abo na odwrót (IMG:http://forum.php.pl/style_emoticons/default/sad.gif) ? stary koszyk.php
Ten post edytował FliSs_tCv 25.09.2007, 13:59:35 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 20:01 |