Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> przeszukiwanie całej bazy, jakis sugestie?
AxZx
post
Post #1





Grupa: Zarejestrowani
Postów: 1 385
Pomógł: 55
Dołączył: 1.03.2005
Skąd: śląsk

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


witam

zabralem sie za pisanie wyszukiwarki dla administratora ktora bedzie wyszukiwala z calej bazy okreslonej frazy.

szukalem roznych sposobow, klas itd
ale nie znalazlem niczego co by mi odpowiadalo
klasy sa jakies dziwne, wole sam napisac jakies cos prostego


jak w zlym forum pisze to przepraszam, moze to bardziej do php by sie nadawalo


poki co wymyslilem ze bede pobieral dane z bazy jakie sa tabele, pozniej jakie sa nazwy kolumn i przeszukiwal tak jak zawsze:
  1. "SELECT *
  2. FROM ".$dane1[<span style='color:red'>'Name'] ." WHERE ".$dane2['Field']." LIKE '%".$string."%' "


Czy takie podejscie jest dobre czy inaczej jakos to rozwiazac?

  1. <?php
  2. $string = $_POST['string'];
  3. $zapytanie1 = $sql->query(&#092;"SHOW TABLE STATUS FROM \".$baza_baza);
  4. while($dane1 = $sql->fetch_assoc($zapytanie1)){
  5.  
  6. $zapytanie2 = $sql->query(&#092;"SHOW COLUMNS FROM \".$dane1['Name']);
  7. while($dane2 = $sql->fetch_assoc($zapytanie2)){
  8.  
  9. $zapytanie3 = $sql->query(&#092;"SELECT * FROM \".$dane1['Name'] .\" WHERE \".$dane2['Field'].\" LIKE '%\".$string.\"%' \");
  10. $dane3 = $sql->fetch_row($zapytanie3);
  11.  
  12. #wyswietlanie wyniku
  13.  
  14. }
  15. }
  16.  
  17. ?>


z gory dzieki za wszystkie sugestie porady pomysly:)


--------------------
aplikacje internetowe | Symfony
Go to the top of the page
+Quote Post
SongoQ
post
Post #2





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%)
-----


Jest kilka rozwiazan, ten 2 odpada bo przeciez nie bedziesz szukal w kazdym polu?
No chyba ze cos wykluczysz. To pierwsze by bylo lepsze tylko zboduj 1 zapytanie z wieloma warunkami. Najgorsza bedzie wydajnosc czegos takiego. Trzeba sie OR wystrzegac bo moga zamulic. No chyba ze jakos na partie zapytan podzielisz.


--------------------
Go to the top of the page
+Quote Post
AxZx
post
Post #3





Grupa: Zarejestrowani
Postów: 1 385
Pomógł: 55
Dołączył: 1.03.2005
Skąd: śląsk

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


czekam na nastepne rozwiazania smile.gif
nadal nic mi nie przychodzi do glowy jak to ladnie rozwiazac
tak jak np w phpmyadmin

pisze tam ile znalezionych i w jakiej tabeli


--------------------
aplikacje internetowe | Symfony
Go to the top of the page
+Quote Post
mario
post
Post #4





Grupa: Zarejestrowani
Postów: 186
Pomógł: 0
Dołączył: 23.09.2003
Skąd: Siemianowice Śląskie

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


Cytat(AxZx @ 2005-05-03 15:23:10)
pisze tam ile znalezionych i w jakiej tabeli

każdy by chciał wszystko mieć na tacy smile.gif najlepszą metodą poznania php'a jest samodzielna nauka. Więc skoro piszesz, że chcesz kod na takie rozwiązanie jakie jest w phpMyAdmin'ie to nic Ci nie pozostaje, jak podejrzeć strukturę kodu i do dzieła!!!


--------------------
W życiu piękne są tyko chwile....
Życie choć piękne tak krótkie jest....
Wystarczy chwila by zgasić je....
Go to the top of the page
+Quote Post
AxZx
post
Post #5





Grupa: Zarejestrowani
Postów: 1 385
Pomógł: 55
Dołączył: 1.03.2005
Skąd: śląsk

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


e tam, nie o to chodzi

mowie ze chcialbym otrzymac cos podobnego

a poki co wyswietla mi kilka pozycji znalezionych z tej samej tabeli

czekam dalej na sugestie smile.gif


--------------------
aplikacje internetowe | Symfony
Go to the top of the page
+Quote Post
SongoQ
post
Post #6





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%)
-----


@AxZx Chyba w phpMyAdminie zrobili tak jak podales w 2 przykladzie. Ale tak z Ciekawosci potrzebne Ci jest znalezienie frazy we wszystkich polach w kazdej tabeli?


--------------------
Go to the top of the page
+Quote Post
AxZx
post
Post #7





Grupa: Zarejestrowani
Postów: 1 385
Pomógł: 55
Dołączył: 1.03.2005
Skąd: śląsk

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


jak 2 przykladzie?
ja nie podawalem 2 przykladow
tylko pisalem o jednym rozwiazaniu ktory wymyslilem


potrzebujesz przeszukac kilka kolumn w tabeli
bo czasem sie zdarzy ze np sa 2 kolumny, albo 3 co moze byc szukana fraza akurat

wiec trzeba przeszukac cala baze


--------------------
aplikacje internetowe | Symfony
Go to the top of the page
+Quote Post
SongoQ
post
Post #8





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%)
-----


No faktycznie 1 przyklad jakos te 2 zapytania mi zamieszaly. Zastanawiam sie co z takimi polami gdzie sa Id - klucze glowne i klucze obce, bo po tym chyba nie bedziesz szukal.


--------------------
Go to the top of the page
+Quote Post
AxZx
post
Post #9





Grupa: Zarejestrowani
Postów: 1 385
Pomógł: 55
Dołączył: 1.03.2005
Skąd: śląsk

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


hmmm
wlasciwie to wlasnie przydaloby sie wykluczyc niektore pola, zrobie tablice w ktorej zapisze pola ktore mozna by wykluczyc i chyba bedzie dobrze smile.gif


zrobilem cos takiego:
  1. <?php
  2.  
  3. function szukaj1(){
  4. global $sql, $baza_baza;
  5.  
  6. $string = $_POST['string'];
  7. $zapytanie1 = $sql->query(&#092;"SHOW TABLE STATUS FROM \".$baza_baza);
  8. while($dane1 = $sql->fetch_assoc($zapytanie1)){
  9. echo '<strong>'.$dane1['Name'].'</strong>: <br>';
  10. $zapytanie2 = $sql->query(&#092;"SHOW COLUMNS FROM \".$dane1['Name']);
  11. while($dane2 = $sql->fetch_assoc($zapytanie2)){
  12.  
  13.  
  14. if(!eregi(&#092;"(.*)_id\",$dane2['Field'])){
  15.  
  16.  
  17. $zapytanie3 = $sql->query(&#092;"SELECT * FROM \".$dane1['Name'] .\" WHERE \".$dane2['Field'].\" LIKE '%\".$string.\"%' \");
  18. while($dane3 = $sql->fetch_row($zapytanie3)){
  19. $ile_z = $sql->num_rows($zapytanie3);
  20.  
  21.  
  22. switch($dane1['Name']){
  23. case&#092;"artykuly\";
  24. $link = '?admin=art_edit1&amp;art_id='.$dane3[0];
  25. break;
  26. case&#092;"dzial\":
  27. $link = '?admin=dzial_edit2&amp;dzial_id='.$dane3[0];
  28. break;
  29. case&#092;"komentarze\":
  30. $link = '?admin=kom_view2&amp;kom_id='.$dane3[0];
  31. break;
  32. case&#092;"user\":
  33. $link ='?admin=user_edit2&amp;id='.$dane3[0];
  34. break;
  35. case&#092;"wydanie\":
  36. $link='?admin=numer_edit&amp;wyd_id='.$dane3[0];
  37. break;
  38. default:
  39. $link = '';
  40. break;
  41. }
  42.  
  43. if($ile_z>0){  
  44. echo '<strong>'.$dane1['Name'].'</strong>: ';
  45. echo '<a href=\"'.$link.'\">link</a><br>';
  46. }
  47. }
  48. }
  49. }
  50. }
  51.  
  52. }#koniec funkcji szukaj1
  53.  
  54. ?>



teraz mam pytanie
co zrobic zeby jak juz znajdzie cos w jednej kolumnie nie szukal juz w drugiej kolumnie?

bo teraz jak znajdzie w pierwszej kolumnie wypisze linka, i jak znajdzie w drugiej kolumnie tej samej tabeli wypisze linka tego samego sad.gif

Ten post edytował AxZx 4.05.2005, 07:26:16


--------------------
aplikacje internetowe | Symfony
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 Aktualny czas: 19.08.2025 - 10:14