🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: pl.comp.lang.php
5 messages
5 total messages Started by gurbin Fri, 24 Aug 2001 12:58
maly problem
#890
Author: gurbin
Date: Fri, 24 Aug 2001 12:58
25 lines
1817 bytes
witam!

mam oto taka mniej wiecej baze (mysql):
kategorie-> | id_kat| kategoria|
slowa -> |id_slowa|slowo|
foty-> |id_foty|fota|
autorzy->|id_autor|autor|

link ->|id_kat|id_slowa|id_foty|id_autor|
wiersz w ostatniej tabeli jest unikalny...

zadaniem tej bazy jest odszukanie fotografii na podstawie slow kluczowych.
banalnie proste (oczywiscie php) - problem pojawil sie przy zapytaniu 2 slow
kluczowych (and). rozwiazalem to po przez stworzenie tymczasowej tabeli
(poniewaz mysql nie obsluguje podzapytan). teraz system szukania sie
zmienia....po wykonaniu przeszukiwania po jednym slowie kluczowym trzeba
umowzliwic uzytkownikowi przeszukanie wynikow pod wzgledem jakiegos innego
slowa. nie mam pojecia jak to mam zrobic? tworzenie tabel tymczasowych nie
ma sensu .. trzymanie w sesji wynikow tez jest nie ekonomiczne ze wzgledu na
ilosc wynikow (moze byc nawet 5 000)
moze ktos rzuci na to swiezym okiem?
jakies pomysly?

z gory dzwieczny jestem;)
Robert
Re: maly problem
#891
Author: Michal Sajdak
Date: Fri, 24 Aug 2001 14:01
24 lines
1649 bytes
>witam!
witam
>mam oto taka mniej wiecej baze (mysql):
>kategorie-> | id_kat| kategoria|
>slowa -> |id_slowa|slowo|
>foty-> |id_foty|fota|
>autorzy->|id_autor|autor|
>
>link ->|id_kat|id_slowa|id_foty|id_autor|
>wiersz w ostatniej tabeli jest unikalny...
>slowa. nie mam pojecia jak to mam zrobic? tworzenie tabel tymczasowych nie
>ma sensu .. trzymanie w sesji wynikow tez jest nie ekonomiczne ze wzgledu na
>ilosc wynikow (moze byc nawet 5 000)
>moze ktos rzuci na to swiezym okiem?
>jakies pomysly?
na pierwszy rzut oka do glowy przychodzi mi taki hint:
zapytanie z OR, grupowanie po id_foty, sprawdzanie COUNT

pozdrawiam.

--
Michal Sajdak --> xterm --> LinuxNews Team.
GPG: http://urtica.linuxnews.pl/~xterm/key/
[ http://hardware.linuxnews.pl/ ] - [ http://linuxnews.pl/ ]
Re: maly problem
#892
Author: gurbin
Date: Fri, 24 Aug 2001 14:16
30 lines
2246 bytes
Użytkownik Michal Sajdak <sajdakm@demon.viii-lo.krakow.pl> w wiadomości do
grup dyskusyjnych napisał:slrn9ocnu5.1bqh.sajdakm@demon.viii-lo.krakow.pl...
> >witam!
> witam
[ciach]
> na pierwszy rzut oka do glowy przychodzi mi taki hint:
> zapytanie z OR, grupowanie po id_foty, sprawdzanie COUNT

widocznie zle sie wyrazilem -> ten hint juz zastosowalem w szukaniu 2 slow
create temporary table copy select cos_tam, count(foty.id_foty) as licznik
from foty,slowa,link,autorzy where 'warunki' and (slowo='$slowo1' or
slowa.slowo='$slowo2')  and 'warunki' group by foty.id_foty;

chodzi o to ze jesli szukam jedno slowo kluczowe (nie potrzebne create
temporary...) to zeby udostepnic uzytkownikowi mozliwosc przeszukania
wynikow innym slowem kluczowym...i moze sobie tak zawezac je az mu sie nie
znudzi - albo baza strzeli ;)

chyba bede musial pamietac w sesji slowa submitowane....

> pozdrawiam.
>
> --
> Michal Sajdak --> xterm --> LinuxNews Team.
> GPG: http://urtica.linuxnews.pl/~xterm/key/
> [ http://hardware.linuxnews.pl/ ] - [ http://linuxnews.pl/ ]

w kazdym razie dzieki
rowniez pozdrawiam
Robert
Re: maly problem
#893
Author: Michal Sajdak
Date: Sat, 25 Aug 2001 08:38
17 lines
1621 bytes
>widocznie zle sie wyrazilem -> ten hint juz zastosowalem w szukaniu 2 slow
>create temporary table copy select cos_tam, count(foty.id_foty) as licznik
>from foty,slowa,link,autorzy where 'warunki' and (slowo='$slowo1' or
>slowa.slowo='$slowo2')  and 'warunki' group by foty.id_foty;
chodzilo mi raczej o cos w stylu:

test=# SELECT idf FROM link, slowa WHERE link.ids=slowa.id AND (slowo='a' 
OR slowo='b') GROUP BY idf HAVING COUNT(*)=2;

powinno dac idf'y dla ktorym odpowiadaja slowa a i b - moga tez byc inne.

pozdrawiam.

--
Michal Sajdak --> xterm --> LinuxNews Team.
GPG: http://urtica.linuxnews.pl/~xterm/key/
[ http://hardware.linuxnews.pl/ ] - [ http://linuxnews.pl/ ]
Re: maly problem
#894
Author: gurbin
Date: Sat, 25 Aug 2001 08:50
31 lines
2302 bytes
Użytkownik Michal Sajdak <sajdakm@demon.viii-lo.krakow.pl> w wiadomości do
grup dyskusyjnych napisał:slrn9oepcd.1s26.sajdakm@demon.viii-lo.krakow.pl...
> >widocznie zle sie wyrazilem -> ten hint juz zastosowalem w szukaniu 2
slow
> >create temporary table copy select cos_tam, count(foty.id_foty) as
licznik
> >from foty,slowa,link,autorzy where 'warunki' and (slowo='$slowo1' or
> >slowa.slowo='$slowo2')  and 'warunki' group by foty.id_foty;
> chodzilo mi raczej o cos w stylu:
>
> test=# SELECT idf FROM link, slowa WHERE link.ids=slowa.id AND (slowo='a'
> OR slowo='b') GROUP BY idf HAVING COUNT(*)=2;
>
> powinno dac idf'y dla ktorym odpowiadaja slowa a i b - moga tez byc inne.
>
> pozdrawiam.
>
> --
> Michal Sajdak --> xterm --> LinuxNews Team.
> GPG: http://urtica.linuxnews.pl/~xterm/key/
> [ http://hardware.linuxnews.pl/ ] - [ http://linuxnews.pl/ ]

dzieki wielkie
mam rozwiazanie -> wystarczy trzymac w sesji poszczegolne zadane slowa i
zmieniac ilosc or w zapytaniu (slowo = 'a' or .... ) i zmieniac having count
na ilosc slow

jeszcze raz dzieki ;)

pozdrawiam
Robert
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads