🚀 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 bambaja Fri, 17 Aug 2001 19:22
Baza SQL przeszykiwana na bieżąco - kto jest w tym MOCNY?
#1
Author: bambaja
Date: Fri, 17 Aug 2001 19:22
40 lines
2038 bytes
Witam,

Ma ktoś może namiary w sieci albo sugestie jak zrobić coś takiego co działa
jak mechanizm w Outlooku Expresie przy wyszukiwaniu grup dyskusyjnych.

A więc chodzi mniej więcej o coś takiego:

Na górze (bo strona www z ramkami wydaje się jedynym rozwiązaniem) formatka
tekstowa gdzie wpisujemy szukane stringi.
Na dole wyniki wyszukiwania.

Po wpisaniu litery pierwszej np. "p" na dole znajduja sie wszystkie rekordy
mySQL'a ktore w danym polu maja litere "p" (bez klikania "szukaj" lub
"enter" koniecznie!!!)

Potem piszesz "i" - więc na dole pojawiają się wszystkie rekordy które w
danym polu mają string zawierający ciąg "pi"

itd.  po wpisani każdej litery np. słowa "pisarz", na dole pojawiaja sie
wynik - za każdym wpisaniem litery, wyników jest oczywiście mniej.

Aby to skomplikować to po wpisaniu spacji i zaczęciu nowego wyrazu
wyszukiwane jest jak w przykładzie na dole

wpisujesz "crack pl"

a odnajdywane są rekordy

pl.news.crack
cracking.pl
crackingowanie na placu
plac crackowski  :)
itd.

Co wy na to?


dzieki za pomoc i informacje

bambaja@poczta.onet.pl
Re: Baza SQL przeszykiwana na bieżąco - kto jest w tym MOCNY?
#2
Author: bambaja
Date: Fri, 17 Aug 2001 20:46
11 lines
1210 bytes
Uzupełnienie:

- Działać to może  lokalnie na PHP + mySQL ale efektywnie (zamiast PHP moze
być "JavaScript, albo inny wynalazek")
- lepiej żeby nie używać funkcji "refresh" w ramce dolnej - bo wygląda to
nie ciekawie


dzieki za pomoc i informacje

bambaja@poczta.onet.pl
Re: Baza SQL przeszykiwana na bieżąco - kto jest w tym MOCNY?
#3
Author: Krzysztof Walkowicz
Date: Sat, 18 Aug 2001 19:52
23 lines
2054 bytes
> Ma ktoś może namiary w sieci albo sugestie jak zrobić coś takiego co
działa
> jak mechanizm w Outlooku Expresie przy wyszukiwaniu grup dyskusyjnych.

..ciach...

> Po wpisaniu litery pierwszej np. "p" na dole znajduja sie wszystkie
rekordy
> mySQL'a ktore w danym polu maja litere "p" (bez klikania "szukaj" lub
> "enter" koniecznie!!!)

Ilosc danych do przeslania miedzy klientem a serwerem bylaby zbyt duza, aby
to rozwiazanie bylo efektywne. Zauwaz, ze w Outlooku, wszystkie dane masz
zgromadzone lokalnie, a i tak mechizm ten nie dziala w czasie rzeczywistym.
Jezeli chcesz dane najpierw pobrac do przegladarki i tam na nich operowac,
to chyba pomyliles grupe, to wtedy bedzie to client-side, czyli jakis
JavaScript, albo inny wynalazek.

pozdrawiam,

--
Krzysztof Walkowicz <kw@php.pl>
[ webdeveloper / sysadmin ]
Re: Baza SQL przeszykiwana na bieżąco - kto jest w tym MOCNY?
#4
Author: 7th Wojciech Jukowski
Date: Sun, 19 Aug 2001 16:59
40 lines
2466 bytes
witam,

bambaja wrote:
> Po wpisaniu litery pierwszej np. "p" na dole znajduja sie wszystkie rekordy
> mySQL'a ktore w danym polu maja litere "p" (bez klikania "szukaj" lub
> "enter" koniecznie!!!)

zakladam ze masz juz jakis frameset. wiec plik z formularzem (gorna ramka):

<form name="formularz"><input type="text" name="poleszukaj"
onkeyup="parent.nazwadolnejramki.location='select.php?cio='+escape(document.formularz.poleszukaj.value)">
</form>

przykladowy select.php (pamietaj ze musi byc w osobnej ramce a nazwa musi
byc podana w onkeyup (np ramka moze sie nazywac nazwadolnejramki):

<hr><?
$pola=array_diff(split(' ',trim($HTTP_GET_VARS['cio'])),array('',"\t"));
if($pola[0]!=''){
 $query="select pole from table where table like '%".array_shift($pola)."%'";
 while($i=array_shift($pola))$query.=" and oryginalname like '%$i%'";

 $nrpolacz = mysql_pconnect('localhost','root','');
 $result = mysql_db_query('test',$query);
 while($row=mysql_fetch_row($result))echo++$i.'. '.$row[0].'<br /> ';
}
?><hr>

czyli trimuje pole cio, dziele po spacji i usuwam z tablicy elementy
rowne ciagowi pustemu ('') i znakowi tabulacji ("\t").
tworze selecta jesli jest pierwszy element. dla kazdego nastepnego
elementu z tablicy $pola powiekszam zapytanie do bazy ($query).
lacze sie z baza (z racji duzej liczby polaczen polaczenie stale),
wykonuje $query na bazie 'test' i kazdy wynik poprzedzajac indeksem
listuje w postaci 1. pole<br />. na koniec jakby okazalo sie ze nic
nie jest drukowane (np 0 zwracanych rekordow) daje <hr> by plik nie
byl pusty.

-- 
wojciech.jukowski
Re: Baza SQL przeszykiwana na bieżąco - kto jest w tym MOCNY?
#5
Author: Łukasz Dyszy
Date: Mon, 20 Aug 2001 09:06
41 lines
2588 bytes
Użytkownik "bambaja" <bambaja@poczta.onet.pl> napisał w wiadomości
news:3b7ec11e@news.vogel.pl...
> Witam,
>
> Ma ktoś może namiary w sieci albo sugestie jak zrobić coś takiego co
działa
> jak mechanizm w Outlooku Expresie przy wyszukiwaniu grup dyskusyjnych.
>
> A więc chodzi mniej więcej o coś takiego:
>
> Na górze (bo strona www z ramkami wydaje się jedynym rozwiązaniem)
formatka
> tekstowa gdzie wpisujemy szukane stringi.
> Na dole wyniki wyszukiwania.
[..]
IMO Najlatwiej client-side to byloby we flashu :) hi hi ... Zaleta jest to
ze nie musisz przeladowywac strony WWW, masz dosc dobrze oprogramowany event
data sygnalizujacy zaladowane dane (dane ladowane asynchronicznie). Dosc
latwa i wzglednie szybka do oprogramowania komunikacja po http.
-Wada jest wymagana dobra znajomosc Flasha ... jezeli chcesz wydajny
'engine' trzeba pooptymalizowac troche plik .swf na poziomie bytecode
...(przyczyna - blad wewnetrzny na poziomie bytecode przy kompilacji)
mechanizmu 'rozbijania' stringow (String.split()) ... Jest to jednak dosc
latwe do przeskoczenia (5 min.) wystarczy do skompilowanego swf'a dokleic
skompilowana poprawiona implementacje 'rozbijania' stringow ktora jest ok
20x szybsza od wbudowanej.

Mozesz tez robic komunikacje po sockecie  ... ale to juz jest troche
bardziej skomplikowane nie mowiac o mnogosci bledow w tej klasie Flasha.

Idac dalej mozesz ladowac sekwencyjnie dane tak ze uzytkownik na biezaco
widzi pojawiajace sie tematy etc.

pzdr.
Łukasz


--
szChodziMiOToZebyByloWiadomoOCoMiChodzi
Flash EXP  http://www.lukasz.ibt.pl/
Flash FAQ  http://www.lukasz.ibt.pl/faq/
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