Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Problem z wyszukiwaniem danych z bazy.
tiramizu
post
Post #1





Grupa: Zarejestrowani
Postów: 22
Pomógł: 0
Dołączył: 14.07.2005

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


Mam takie pytanie, mam bazę „ksiazki” potrzebuje zrobić wyszukiwanie z tej bazy.
Po numerku indenu lub po imie i nazwisko pisarza. Tylko ze pracować to musi w taki sposób:
Np. znam tylko nr indexu wpisuje i mam dane o książce, bądź wpisuję pisarza i mam tez dane o książce. (tylko że działać to ma w ten sposób że przy wpisaniu pisarza, dane będą wyświetlone według celności trafień, czyli jak wpisze np. Adam Mickiewicz to pierwsza pozycja będą wyświetlone książki Adama Mickiewicza, ponieważ jest trafne imie i nazwisko. Następne pozycję to będą książki innych Mickiwiczy a potem innych Adamów. Chodzi mi o to ze on będzie sobie robił priorytet najpierw dane jeśli jest trafne imie i nazwisko potem dane po nazwisku i na końcu dane trafne po imieniu. Przepraszam jeśli nie jasno wyjaśniłem.
Na razie napisałem sobie aby szukał dokładnie imię i nazwisko.
  1. <?php
  2.  
  3. $kontrola=0;
  4. include("connect.php");
  5. if (!empty($_POST[a]))
  6. {
  7. $sql="select * from ksiazki where nr_ind = "$_POST[a]"" ;
  8. }
  9. else
  10. {
  11. $sql="select * from ksiazki where imie = "$_POST[b]" and nazwisko = "$_POST[c]"" ;
  12. } 
  13.  
  14. ?>

(IMG:http://forum.php.pl/uwaga.gif)
poprawiam
---
nospor


Dziękuję za pomoc.
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%)
-----


To co chesz zrobic tak latwo juz nie zrealizujesz, sa bazki ktore to jednym selectem zalatwiaja, z tego co wiem MySQL nie ma takiej mozliwosci. Musisz to rozblic na indeksowanie wyrazow. Pare tygodni temu taki post byl na tym forum, jak dobrze poszukasz znajdziesz. Zostaly tam poruszone sprawy ktore napewno Cie zainteresuja.
Go to the top of the page
+Quote Post
JOHNY
post
Post #3





Grupa: Zarejestrowani
Postów: 297
Pomógł: 0
Dołączył: 17.01.2003
Skąd: Tarnów

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


a nie lepiej zrobić coś takiego

  1. <?php
  2.  
  3. if(isset($a) && $a<>"") {
  4.  
  5. $query = "SELECT * FROM ksiazki WHERE nr_id LIKE '%$a%' OR imie LIKE '%$a%' OR nazwisko LIKE '%$a%' ORDER BY id DESC";
  6. // ect
  7.  
  8. }
  9.  
  10. ?>


Przeszuka Ci wszystko tylko napisać odpowienie ORDER BY i będzie (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif)
Go to the top of the page
+Quote Post
SongoQ
post
Post #4





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


LIKE + OR jest bardzo nie efektywne, dla wielu kryteriow i bardzo duzej ilosci rekordow czas bedzie zauwazalny.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 26.09.2025 - 13:38