Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php] [mysql] problem z wysukiwarką
pokrak
post 23.03.2010, 11:41:36
Post #1





Grupa: Zarejestrowani
Postów: 20
Pomógł: 0
Dołączył: 23.03.2010

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


Witam
stworzyłem bazę danych, do tego na razie prostą wyszukiwarkę (ilość zmiennych po których będzie szukanie jest o wiele większa) docelowo chce, żeby wyszukiwanie opierało się na kilku zmiennych, lecz na razie chce ogarnąć w ten sposób. Wyświetlanie zawartości poprzez php odbyło się bez większych problemów. Zaczęły się schody jak doszło do wyszukiwania:

kod html wyszukiwarki
CODE

<b>Wyszukiwanie </b> <br><br>

<form action="wyniki.php" method="post">
Szukaj na podstawie:<br>
<select name="szukanie">
<option value="nr"> Numer
<option value="data_imm"> Data imm
<option value="nazwisko"> Nazwisko
</select>
<br><br>
Szukanyt:<br>
<input name="haslo" type=text> <br>
<input type=submit value="szukaj">
</form>


kod wyniki.php
CODE

<? if (!$szukanie || !$haslo)
{
print "nie zostało wpisane żadne hasło";
exit;
}
$szukanie=addslashes($szukanie);
$haslo=addslashes($haslo);
@$db=mysql_connect("localhost", "user", "haslo");
if (!$db)
{
print "błąd połączenia";
exit;
}

mysql_select_db("nazwa_bazy");
$query="select * from nazwa_tabeli where ".$szukanie." like '%".$haslo."%'";
$result=mysql_query($query);
$num_results=mysql_num_rows($result);
print "<p> ilość pozycji w bazie: ".$num_results."</p>";
for ($i=0; $i <$num_results; $i++) {
$row=mysql_fetch_array($result);
# print ($i+1).". ";
print stripslashes($row["nr"]);
print ", Data im: ";
print stripslashes($row["data_imm"]);
print ", Nazwisko: ";
print stripslashes($row["nazwisko"]);
print "<br>";
}
?>


skończyły mi się już pomysły a wyszukiwanie wciąż nie działa.
Może ktoś świeżym okiem dostrzeże błąd.

Z góry dziękuje za pomoc
Go to the top of the page
+Quote Post
Armstrong
post 23.03.2010, 12:02:50
Post #2





Grupa: Zarejestrowani
Postów: 200
Pomógł: 40
Dołączył: 26.08.2009
Skąd: Kobiernice

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


  1. if (!$szukanie || !$haslo)

to mi nie pasuje.
Gdzie odbierasz $_POST[] ?


--------------------
// NOPE
Go to the top of the page
+Quote Post
piotrooo89
post 23.03.2010, 12:05:59
Post #3


Newsman


Grupa: Moderatorzy
Postów: 4 005
Pomógł: 548
Dołączył: 7.04.2008
Skąd: Trzebinia/Kraków




lektura dla Ciebie: register_globals.


--------------------
Go to the top of the page
+Quote Post
pokrak
post 23.03.2010, 12:07:15
Post #4





Grupa: Zarejestrowani
Postów: 20
Pomógł: 0
Dołączył: 23.03.2010

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


Jestem początkującym biggrin.gif wiec z nudów dla znajomej zajołem si e kwestia i odkurzyłem cosik takiego jak "kurs php i mysql" w wersji avi i to jest zrobione na przykładzie z tegoż kursu i początkowy zapis miał za zadanie nie dopuścić do pustych haseł
Go to the top of the page
+Quote Post
nospor
post 23.03.2010, 12:08:23
Post #5





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




ale kurs jest przestarzały i nie uwzględnia register_globals, o których ci juz mowiono bys poczytal - zrob wiec to.

A dodatkowo uzywaj wlasciwego bbcode bo temat niechcący zostanie zamkniety winksmiley.jpg


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
pokrak
post 23.03.2010, 12:20:02
Post #6





Grupa: Zarejestrowani
Postów: 20
Pomógł: 0
Dołączył: 23.03.2010

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


ok w łączenie register_globals momentalnie zadziałało biggrin.gif
lecz widzę, że napotkałem na inny błąd :/
wyniki nie wyświetlają polskich znaków kodowanie w bazie danych mam ustawione na utf8 polish
Go to the top of the page
+Quote Post
nospor
post 23.03.2010, 12:21:25
Post #7





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Cytat
ok w łączenie register_globals momentalnie zadziałało
Nie chodzilo o to bys włączał, ale bys dostosował skrypt do wyłączonego (zastosował $_POST) - register globals to zło wcielone i jest juz przestarzałe.

Cytat
wyniki nie wyświetlają polskich znaków kodowanie w bazie danych mam ustawione na utf8 polish
bylo milion razy. uzyj wyszukiwarki


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
pokrak
post 23.03.2010, 12:29:38
Post #8





Grupa: Zarejestrowani
Postów: 20
Pomógł: 0
Dołączył: 23.03.2010

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


tongue.gif ale zadziałało tongue.gif w następnej wersji dostosuje do register globals off -> serwer na którym to pracuje jest w sieci zwewnetrznej

poszukam wyszukiwarki ale jak nie znajdę to się przypomnę a nie powiem pomocny byłby link z przykładowym tematem tongue.gif
Go to the top of the page
+Quote Post
nospor
post 23.03.2010, 12:32:51
Post #9





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Cytat
pomocny byłby link z przykładowym tematem
Zas ja bym oczekiwał bys nie pokazywał podczas rozmowy swojego jęzora...


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
pokrak
post 23.03.2010, 13:06:18
Post #10





Grupa: Zarejestrowani
Postów: 20
Pomógł: 0
Dołączył: 23.03.2010

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


nie bądź już taki nadwrażliwy ..

ok wiec
krok pierwszy wykonany
Kod
ALTER DATABASE `nazwa_bazy` DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci

krok drugi wykonany
Kod
ALTER TABLE `nazwa_tabeli` DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci

krok trzeci w wyniki.php dodane
Kod
<html>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
</html>


nie pomogło
Go to the top of the page
+Quote Post
nospor
post 23.03.2010, 13:08:26
Post #11





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Cytat
nie bądź już taki nadwrażliwy ..
to sobie wyobraź ze stoisz przedemną i mi pokazujesz jezyk co drugie slowo. Nadal jestem nadwrazliwy? Emotki słuza do zobrazowania pewnych rzeczy wiec nienaduzywaj ich jak nie wiesz do czego słuzą.

Cytat
nie pomogło
Jest jeszcze jeden krok:
podczas nawiązywania połączenia ustawic kodowanie tez na utf8


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
pokrak
post 23.03.2010, 13:18:04
Post #12





Grupa: Zarejestrowani
Postów: 20
Pomógł: 0
Dołączył: 23.03.2010

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


dodanie:
Kod
mysql_query("SET NAMES 'utf8'");

załatwiło sprawę
wielkie dzięki

PS.prosiłbym ew o podpowiedź w jai sposób można było by zmodyfikować skrypt, żeby wyszukiwanie brało pod uwagę wiele haseł (mam do dyspozycji 15 kolumn z około 40 000 lini), żeby jak najbardziej zawęzić wynik wyszukiwania.
Go to the top of the page
+Quote Post
piotrooo89
post 23.03.2010, 13:58:11
Post #13


Newsman


Grupa: Moderatorzy
Postów: 4 005
Pomógł: 548
Dołączył: 7.04.2008
Skąd: Trzebinia/Kraków




może:

  1. ... WHERE kol1='cos' OR kol2='cos' OR kol3='cos' ...


--------------------
Go to the top of the page
+Quote Post
pokrak
post 23.03.2010, 14:04:00
Post #14





Grupa: Zarejestrowani
Postów: 20
Pomógł: 0
Dołączył: 23.03.2010

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


Cytat(piotrooo89 @ 23.03.2010, 13:58:11 ) *
może:

  1. ... WHERE kol1='cos' OR kol2='cos' OR kol3='cos' ...


może .... lecz podkreślam jestem dość początkujący i widzę kod który do końca nie wiem jak zjeść
na pewno będzie wchodziło w rachubę prze edytowanie pliku wyszukiwarki (czyli html`a) i zmiana zapytania w pliku php do mysqla
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: 18.07.2025 - 06:05