![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 6 Pomógł: 0 Dołączył: 18.02.2009 Ostrzeżenie: (0%) ![]() ![]() |
Witam.
Mam dwa problemy! Zacznę od pierwszego bardziej istotnego (pod względem mojej bezradności). Napisałem sobie prosty kodzik wyciągający z bazy danych MySQL wartość tabeli zapytanie wygląda mniej więcej tak:
a $fraza = '%'.$_GET['klucz'].'%'; niestety operator LIKE nie działa no i w tym przypadku nie mam pojęcia dlaczego <IMG src="style_emoticons/default/sad.gif" emoid=":(" border="0" style="vertical-align: middle"> Oto kod z małym komentarzem Kod $ofe="";$typ=""; $fraza = "%".$_GET['klucz']."%"; $branza = "$_GET['branza']; switch($_GET['r']){ //tutaj sobie sprawdzam rozne warunki dla ktorych daje rozne zapytania /*...*/ case 's': //trafiam na interesujacy mnie fragment kodu $ofe = "- Wyszukiwanie"; //ustawiam jakis tytul (nieistotne) $typ = 6; //ustawiam typ (nieistotne w tym przypadku) $zapytanie = mysql_query("SELECT * FROM nazwa_tabeli WHERE data >= '$data' AND branza = '$branza' AND sta LIKE '$fraza' ORDER BY id_o DESC") or die(...); /*zapytanie nie zwraca żadnych rezultatow nawet jesli zamiast $fraza wpisze %a% natomiast bez LIKE wszystko dziala ladnie i pięknie*/</P><P>break; /*...*/ } /*...*/ while($wykonaj = mysql_fetch_row($zapytanie)){ /*...*/} Drugi problem polega na źle dobranym kodowaniu bazy danych (być może jego wynikiem jest problem pierwszy ;p Kodowanie bazy ustawiałem na utf-8-polish-ci i latin-2-general-ci o ile sie dobrze orientuje one obsluguja polskie znaki. Swoj skrypcik mam kodowany na utf-8 (Bez BOM cokolwiek by to mialo znaczyć ![]() Z góry dziękuję za odpowiedzi. Ten post edytował mpawel007 3.08.2009, 21:11:44 |
|
|
![]()
Post
#2
|
|
![]() Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów ![]() |
Cytat iestety operator LIKE nie działa no i w tym przypadku nie mam pojęcia dlaczego Tzn? Nic nie zwraca? Cytat Drugi problem polega na źle dobranym kodowaniu bazy danych (być może jego wynikiem jest problem pierwszy ;p Kodowanie bazy ustawiałem na utf-8-polish-ci i latin-2-general-ci o ile sie dobrze orientuje one obsluguja polskie znaki. Swoj skrypcik mam kodowany na utf-8 (Bez BOM cokolwiek by to mialo znaczyć Z polskimi znakami via GET jest problem, wysyłaj przez POST. -------------------- ![]() ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW! |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 6 Pomógł: 0 Dołączył: 18.02.2009 Ostrzeżenie: (0%) ![]() ![]() |
Cytat(erix) Tzn? Nic nie zwraca? na przykład jeśli policzę ile kolumn mi wyszukało (mysql_num_rows()) zawsze jest 0, czyli jakby nie było pasujących kryteriów (a takowe istnieją) Co do drugiego problemu to wysyłam POST'em GET'a używam tylko w tym wypadku do wyszukiwania (w wyszukiwaniu nie muszą być uwzględniane polskie znaki wystarczy, żeby działał LIKE jak należy) |
|
|
![]()
Post
#4
|
|
![]() Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów ![]() |
Ale każda przeglądarka koduje znaki w GET inaczej i nie da się tak uniwersalnie. Najprościej ten problem rozwiązać przez POST.
Cytat na przykład jeśli policzę ile kolumn mi wyszukało (mysql_num_rows()) zawsze jest 0, czyli jakby nie było pasujących kryteriów (a takowe istnieją) A to samo zapytanie wykonane ręcznie zwraca wyniki? -------------------- ![]() ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW! |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 6 Pomógł: 0 Dołączył: 18.02.2009 Ostrzeżenie: (0%) ![]() ![]() |
Właśnie wklepałem w phpMyAdmina to zapytanie ręcznie i się elegancko wyszukało (tak jak powinno w założeniu)
Zmieniłem też na POST i dalej nie działa :/ EDIT>> OK! wszystko działa przepraszam za zamieszanie poprostu po drodze zapomniałem dopisać znaku dolarka '$' przy jednej ze zmiennych przez co nie mógł być spełniony warunek ;p Mam jednak kolejny dylemat wrzuciłem pliki na zewnetrzny serwer ftp. i wyskoczyło ostrzeżenie Kod Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at /home/.../.../.../public_html/.../conf/settings.php:2) in /home/.../.../.../public_html/.../conf/loginout.php on line 75 ... - oznaczają katalogi nieistotne w tym przypadku plik settings.php przechowuje dane bazy danych i łączy się z nią (w drugiej linijce mam tekst <?php) plik loginout ładuje sesję, zapisuje ciasteczka i takie tam inne bzdety zresztą jak widać na listingu Ponieważ sesji nie ogarniam za bardzo prosiłbym o małą pomoc EDIT 2>> Ok teraz się pośpieszyłem ;p (znow gafa) Może komuś się przyda rozwiązanie: poprostu w includowaniu pliku były spacje przed znacznikiem '<?php' i po '?>' przez co przegladarka zaczela wyswietlac tekst MOŻNA ZAMKNĄĆ TEMAT Ten post edytował mpawel007 4.08.2009, 23:00:57 |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 99 Pomógł: 22 Dołączył: 14.12.2007 Skąd: Wyszków Ostrzeżenie: (0%) ![]() ![]() |
Co do krzaczków z bazy:
SET NAMES 'utf8'; Przy łączeniu z MySQL ![]() |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 26 Pomógł: 5 Dołączył: 29.07.2009 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 6 Pomógł: 0 Dołączył: 18.02.2009 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 6.05.2025 - 05:33 |