![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 18 Pomógł: 0 Dołączył: 6.11.2009 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
Witam. Mam taki oto kod:
ma on za zadanie wyszukać auta z bazy o podanych z formularza danych (takie zadanie domowe (IMG:style_emoticons/default/tongue.gif) ) i gdy wysyłam z formularza te dane, wywala mi błąd : "Parse error: syntax error, unexpected $end in C:\Program Files\VertrigoServ\www\search.php on line 142" a linia 142 : to ta po zakończeniu strony i dalej nic tam nie ma. Nie wiem kompletnie jak to rozwiązać. Połączenie z baza jest ok, dane z formularza też wysyła poprawnie. |
|
|
![]()
Post
#2
|
|
Grupa: Administratorzy Postów: 1 552 Pomógł: 211 Dołączył: 7.07.2009 Skąd: NJ ![]() |
Sprawdź czy domknąłeś wszystkie nawiasy klamrowe w php
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 18 Pomógł: 0 Dołączył: 6.11.2009 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
ok działa, dzięki.
Ale dalej jest problem nie wyświetla wyświetlanego wyniku. A jestem pewny że to co wyszukuje w bazie danych jest. |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 678 Pomógł: 124 Dołączył: 26.09.2009 Ostrzeżenie: (0%) ![]() ![]() |
Trochę za mało kodu żeby coś stwierdzić. Spróbuj usunąć spacje po '". $marka." między podwójnym a pojedynczym apostrofem. Nie wiem czy to coś da, ale teoretycznie może szukać pola gdzie marka ma spacje na końcu.
Ten post edytował Blame 7.11.2009, 07:54:42 |
|
|
![]()
Post
#5
|
|
Grupa: Moderatorzy Postów: 4 362 Pomógł: 714 Dołączył: 12.02.2009 Skąd: Jak się położę tak leżę :D ![]() |
Nie stosuj porównania ( = ) dla marki i modelu bo to szuka dokładnie tego ciągu znaków jaki podajesz. Wystarczy, że ktoś wdusi gdzieś spację lub pomyli się o literkę to będziesz miał w wyniku brak rekordów. Stosuj w przypadku ciągów znakowych LIKE '%szukany%'
Ten post edytował thek 7.11.2009, 14:06:54 |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 18 Pomógł: 0 Dołączył: 6.11.2009 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
no cóż dalej nic się nie wyświetla... oto cały kod, nie mam pojęcia co może być źle:
|
|
|
![]()
Post
#7
|
|
Grupa: Moderatorzy Postów: 4 362 Pomógł: 714 Dołączył: 12.02.2009 Skąd: Jak się położę tak leżę :D ![]() |
Zapytanie masz źle... Konkretnie apostrofy źle użyte. Nie baw się w "ciapki" i apostrofy bo one u Ciebie bajzel powoduja... to nie to samo. Wytrimuj $model i walnij tak poprawione zapytanie (IMG:style_emoticons/default/smile.gif)
$zapytanie = 'SELECT marka, model, rokprod FROM cars WHERE marka = \''.$marka.'\' AND model LIKE \'%.( trim($model) ).'%\''; |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 1 568 Pomógł: 192 Dołączył: 7.03.2005 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
[quote name='pikko' date='7.11.2009, 22:32:34 ' post='677901']
no cóż dalej nic się nie wyświetla... oto cały kod, nie mam pojęcia co może być źle: [/qote] Ja też nie mam pojęcia dlaczego masz apostrof przy modelu, rokprod zamiast capka
Stosuj echo mysql_error(); Ten post edytował potreb 7.11.2009, 23:18:53 |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 18 Pomógł: 0 Dołączył: 6.11.2009 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
Cytat Ja też nie mam pojęcia dlaczego masz apostrof przy modelu, rokprod zamiast capka tak mnie w szkole uczyli (IMG:style_emoticons/default/dry.gif) no ok będę pamiętał na przyszłość, wkleiłem to zapytanie od theka, ale teraz to wywala mi takie błędy Cytat Warning: Unexpected character in input: '\' (ASCII=92) state=1 in C:\Program Files\VertrigoServ\www\search.php on line 126 domyślam się że gdzieś jest za dużo tego \ no ale nie wiem gdzie ;| Cytat Warning: Division by zero in C:\Program Files\VertrigoServ\www\search.php on line 126 że dzieli przez zero ? nie rozumiem skąd, ale pewnie spowodowane jest to tym 1 błędem tak jak i ten Cytat Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in C:\Program Files\VertrigoServ\www\search.php on line 131
|
|
|
![]()
Post
#10
|
|
Grupa: Moderatorzy Postów: 4 362 Pomógł: 714 Dołączył: 12.02.2009 Skąd: Jak się położę tak leżę :D ![]() |
Nie za dużo \ tylko jeden ' za mało (IMG:style_emoticons/default/winksmiley.jpg) Było
ma być Zjadłem apostrof po % (IMG:style_emoticons/default/smile.gif) A co do nauki to nazw kolumn, baz nie obejmuje się niczym albo robi to w odwróconym apostrofie, który popularnie nazywa się tu "ciapkami" (IMG:style_emoticons/default/winksmiley.jpg) Tylko zawartości pól powinny być ujęte w apostrofy dla bezpieczeństwa. Ja używam do zapytań ' zamiast " więc od każdego ' w zapytaniu muszę "uciekać" (IMG:style_emoticons/default/smile.gif) A dlaczego ' zamiast "? By niepotrzebnie nie wzywać interpretera PHP gdzie nie jest potrzebny. Równie dobrze moglem zrobić zamiast: tak: ale jest to minimalnie wolniejsze, gdyż interpreter PHP musi przeszukać całe zapytanie czy aby nie występują w nim zmienne PHP lub jakieś znaki specjalne z racji użycia ", gdyż to co pomiędzy ' jest uznawane za ciąg znakowy, który należy idealnie przenieść. Wywołaj sobie w skrypcie coś takiego: a zobaczysz różnicę (IMG:style_emoticons/default/smile.gif) Ten post edytował thek 8.11.2009, 00:00:50 |
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 18 Pomógł: 0 Dołączył: 6.11.2009 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
no ok dzięki faktycznie jest różnica i to nawet spora (IMG:style_emoticons/default/biggrin.gif)
nie ma już błędów, ale dalej nie wyświetla żadnych wyników, połączenie z bazą jest dobre, wyszukiwane pola są w bazie, sprawdzałem już 10 razy , echo mysql_error(); nie wywala żadnego błędu , poprawiłem kod wg waszych zaleceń, i dalej nie działa (IMG:style_emoticons/default/sad.gif) może czegoś brakuje ? albo źle się do tego zabrałem ;| nie mam pojęcia. |
|
|
![]()
Post
#12
|
|
Grupa: Moderatorzy Postów: 4 362 Pomógł: 714 Dołączył: 12.02.2009 Skąd: Jak się położę tak leżę :D ![]() |
W takim wypadku problem może być już tylko w 2 miejscach...
1) $_GET['type'] nigdy nie ustawia się na 'show' i przez to do zapytania nie dochodzi. Ale w to wątpię patrząc na kod. Zrób sobie var_dump($_GET) dla pewności w kodzie. 2) Taka kombinacja nie istnieje, co możesz sprawdzić prosto... Zrób sobie echo $zapytanie w kodzie by wyświetlić co idzie do bazy i wywołaj to bezpośrednio w bazie (choćby przez phpMyAdmin). Jeśli zwróci pustkę to wiesz, że problemem jest brak takiej kombinacji. Ten post edytował thek 8.11.2009, 00:42:22 |
|
|
![]()
Post
#13
|
|
Grupa: Zarejestrowani Postów: 18 Pomógł: 0 Dołączył: 6.11.2009 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
ok wiem czemu : ) już działa... przyglądnąłem się dokładnie bazie i wychodzi na to że my dodawaniu marki z pola select, dodawane są spacje... no cóż człowiek się uczy na błędach, wielkie dzięki za pomoc i wyrozumiałość (IMG:style_emoticons/default/biggrin.gif)
to jeszcze pytanie, żeby nie dodawało tych spacji mam je w jakiś sposób potraktować trimem ? formularz mam wykonany tak ( a dokladnie dodawanie samej marki (IMG:style_emoticons/default/smile.gif) )
a kod PHP służący dodawaniu danych z formularza wygląda tak:
i jak mam jak coś tego trima wykonać? $marka= trim($marka); (IMG:style_emoticons/default/questionmark.gif) czy jakoś inaczej ?(IMG:style_emoticons/default/biggrin.gif) |
|
|
![]()
Post
#14
|
|
Grupa: Zarejestrowani Postów: 678 Pomógł: 124 Dołączył: 26.09.2009 Ostrzeżenie: (0%) ![]() ![]() |
A działa? (IMG:style_emoticons/default/smile.gif) Jeśli tak to masz odpowiedź (IMG:style_emoticons/default/tongue.gif)
|
|
|
![]()
Post
#15
|
|
Grupa: Moderatorzy Postów: 4 362 Pomógł: 714 Dołączył: 12.02.2009 Skąd: Jak się położę tak leżę :D ![]() |
Trim możesz zastosować jak podałeś, ale możesz już wcześniej, przy spisywaniu z Posta
$marka = trim( $_POST['marka'] ); Ważne by było to przed wrzuceniem zapytania do bazy. Jak widziałeś, w moim wcześniejszym przykładzie, można to zrobić nawet przy tworzeniu zapytania. |
|
|
![]()
Post
#16
|
|
Grupa: Zarejestrowani Postów: 18 Pomógł: 0 Dołączył: 6.11.2009 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
działa działa wszystko jak trzeba (IMG:style_emoticons/default/smile.gif) dzięki wielkie (IMG:style_emoticons/default/winksmiley.jpg)
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 23.08.2025 - 20:36 |