Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

MySql, UltraDev - Search

[es] :: MySQL :: MySql, UltraDev - Search

[ Pregleda: 5514 | Odgovora: 6 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Kusur
Grafički dizajner
Beograd

Član broj: 2485
Poruke: 208
*.bitsyu.net



Profil

icon MySql, UltraDev - Search28.07.2002. u 12:43 - pre 264 meseci
Pozdrav svima!

Baza: MySql (nusphere)
Tabele: KNJIGA, INSTITUCIJA
Aplikacija: Dreamweaver Ultradev 4.0 + PHP (PHAKT ekstenzija)

Napravio sam trazi.php stranu sa poljem "tekst". Form action = rez.php
Pretrazujem u tabeli knjiga - (iz istog polja "tekst") sledeca polja:

knjiga_naslov
autor
isbn_broj

PITANJE 1

I to radi, mada kada ukucam np. ime knjige "Prva knjiga" pronadjem je, takodje i sa "prva" i sa "knjiga" ali kada promenim redosled reci np. "knjiga prva" ne pronadjem nista?

PITANJE 2

Kako da napravim "search" sa "list" poljem?
Zelim da dodam i pretrazivanje po INSTITUCIJI (list polje) + opcija "sve institucije". Obe tabele "KNJIGA" i "INSTITUCIJA" imaju polje "ins_id"



Strana REZ.PHP - Recordset knjiga

SELECT *
FROM knjiga
WHERE knjiga_naslov LIKE '%tekst%' or autor LIKE '%tekst%' or isbn_broj='tekst'

Variabiles

name = tekst

Default value = 1

Run-time value = $HTTP_POST_VARS["tekst"]

Unapred hvala
Kusur
 
Odgovor na temu

bOkIcA
Bojan Abramovic
Novi Sad

Član broj: 1808
Poruke: 520
*.prozone.co.yu.

Sajt: www.bokica.com


Profil

icon Re: MySql, UltraDev - Search28.07.2002. u 21:34 - pre 264 meseci
Pokusacu da ti odgovorim na prvo


1. ako dobijes ovakav string $StariString = " prva knjiga", prvo treba da ocistis isti, (eregi, trim... i sl.)

2. razbijes string u array ($ArrayString = explode(" ", $StariString);

3. u for petlji vrtis stringove koliko ih ima (for ($i=1; $i < count($ArrayString; $i++))

4.
$TvojQuey = "SELECT * FROM knjiga WHERE knjiga_naslov LIKE '%$ArrayString[0]%'";
a u for petlji dodajes na isti string
$TvojQuery .= " AND knjiga_naslov LIKE '%$ArrayString[$i]%'";
(ako je AND onda trazi sve reci, ili stavis OR pa bilo koju)

5. i posle for petlje nastavis query
$TvojQuery .= " ORDER BY ...............";


Znaci koliko imas trazenih reci toliko puta kod doda " AND trt LIKE '%%'

si
nadam se da ce ti pomoci
btw mozes slobodno da menjas generisan kod phakta i da ga prilagodis sebi

 
Odgovor na temu

Jbyn4e

Član broj: 422
Poruke: 6049
*.verat.net



+257 Profil

icon Re: MySql, UltraDev - Search29.07.2002. u 15:26 - pre 264 meseci
Citat:

$TvojQuey = "SELECT * FROM knjiga WHERE knjiga_naslov LIKE '%$ArrayString[0]%'";
a u for petlji dodajes na isti string
$TvojQuery .= " AND knjiga_naslov LIKE '%$ArrayString[$i]%'";
(ako je AND onda trazi sve reci, ili stavis OR pa bilo koju)
5. i posle for petlje nastavis query
$TvojQuery .= " ORDER BY ...............";

Ja bih samo dodao da mozes umesto "knjiga_naslov" da stavis promenljivu (recimo $polje) i da na osnovu toga sta je odabrano da bude i knjiga_naslov like, i ins_id like i sta god vec. Sad, kako ces to odabrai - to je vec druga stvar (recimo mozes da if komandama, mozes sa switch ili koja vec bese) da odabiras koja je vrednost onoga $polje.
Takodje, mozes umesto LIKE da koristis i REGEXP ukoliko poznajes regular expressionse. Cak, stavise, ukoliko imas i nasa slova u nazivima - moraces da koristis i regexpe da bi nasao gde se javlja slovo c, č, ili ć (npr. Čitalište da bude prepoznato i ako korisnik unese citaliste). Ako hoces da moze da se koristi i OR i AND i NOT, to ces morati da odradis sa regexpovima razdvajanje na delove, ali o tom potom.

BTW. Moze li se znati sta to pokusavas da napravis, i za koga?
Kad sve ostalo zakaže, pročitaj uputstvo...
 
Odgovor na temu

Kusur
Grafički dizajner
Beograd

Član broj: 2485
Poruke: 208
*.bitsyu.net



Profil

icon Re: MySql, UltraDev - Search29.07.2002. u 18:33 - pre 264 meseci
Hvala na pomoći, mada malo razumem pošto nisam programer nego grafički dizajner.

Nadao sam se odogovoru tipa "ovde" ubaci "ovo" u SQL query ili pošto sam optimista da ću dobiti "gotov" query - Koji ću ubaciti u recordset u Dreamweaveru.

Radim u Megatrendu (Izdavačka služba) čiji sajt je radila agencija "Gistro" (valjda) ali deo o izdavačkoj službi je loš pa, pokušavamo da to mi uradimo (izdavačka služba) ali sa MySql bazom i PHP-om pošto je sajt na Apaču (linux).

Znači da studenti mogu da dobiju informaciju o udžbenicima, autorima i sadržaju udžbenika. Takođe bi voleli da ovaj deo sajta ima i pretraživanje knjiga po:

Naslovu knjige
Autoru
Isbn broju
i Instituciji (Megatrend ima šest institucija)

Eto to je priča. Uzged ja prvi put radim sa PHP-om i MySql-om. Više se snalazim sa ASP-om, ali sve kroz Dremweaver i njegove ekstenzije. Ručno editivanje koda ne znam osim ako imam neki primer pa uspem da ga ukapiram i promenim, onako kako meni odovara.

Mada mi se sve ovo jako dopada - ali čim nešto malo naučim vidim koliko još treba da učim, a nisam baš mlad :))negde ok��etiri sata, da su p
Kusur
 
Odgovor na temu

Kusur
Grafički dizajner
Beograd

Član broj: 2485
Poruke: 208
*.bitsyu.net



Profil

icon Re: MySql, UltraDev - Search29.07.2002. u 18:49 - pre 264 meseci
Mnogo pričam - zaboravih, interesuje me ovo sa REGEXP i Yu slovima.

Gde mogu da "skinem" primere rađene u DW Ultradev-u (PHP, MySql)?

Unapred hvala!
Kusur
 
Odgovor na temu

Jbyn4e

Član broj: 422
Poruke: 6049
*.verat.net



+257 Profil

icon Re: MySql, UltraDev - Search29.07.2002. u 19:19 - pre 264 meseci
Hm, pazi, nema bas mnogo veze sa dreamweaverom sve to, on je tu samo kao alat - a da bi mogao da uradis nesto sa regexpovima trebace ti mnogo vremena. Potrebno je opet malo iskustva sa bazom i sa php-om da bi znao kako da sve to realizujes, nije bas tako jednostavno da se svodi na select nesto from nesto_drugo where nesto_trece like nesto_cetvrto. Mislim, na kraju se svede na to, ali prethodno se pripremi sql upit pomocu php funkcija, pa se onda pljusne upit sql serveru koji vrati podatke. Nisam bas siguran da bi kao pocetnik u PHP-u to mogao da odradis, ali pitanje je - Megatrend je ipak (trebalo bi) bogatija skola, sto lepo ne plate nekoj firmi ili nekom programeru koji se time vec bavio da to odradi, nego muce tebe koji to nisi radio?
Meni je trebalo ipak neko vreme da osmislim search za neke stvari na knjizara.com, a i za to mi je trebalo neko iskustvo, proucavanje skripti i dosta toga na internetu da dobijem ideju kako da to uradim... u principu ne moze bas sve da bude uopsteno, vec na osnovu specificnog zahteva da se uradi.
Sto se tice regexp-a, ja sam to uradio tako sto imam nekoliko linija koje su oblika:
$string = ereg_replace ("č, "[č|c]", $string);, tj. kazem mu da ako naidje na č da mu da mogucnost da to bude ili č ili c. I obrnuto,
$string = ereg_replace ("c", "[č|ć|c]", $string); - ovde mu kazem da umesto c trazi i č i ć. (ovo sve pricam zbog onih koji znaju o cemu se radi, i dajem ideju ako im je potrebno).
Kod regexp-a , ovo [a|b|c] znaci - ili a ili b ili c.

Kod tebe bi mozda bilo uproscenije - da se stavi <select><option NAME="list" VALUE="naziv_prve_institucije"><option...></select> (jel to zoves "list"?), pa da posle php skripta ima nesto kao
switch $list: {
case "naziv_prve_institucije": $query .= "AND institucija REGEXP $list";
...
}
ili nesto slicno, u zavisnosti od specificnosti.

Moj savet na kraju - ja ne znam nekoga da ima volje i vremena da vam da ceo kod - da se trudi da uradi samo da bi ste ga vi iskoristili na sajtu, a da od toga on ima samo izgubljeno vreme. Bolje kontaktirajte nekoga ili neku firmu da vam to odradi za neku kolicinu love.

Kad sve ostalo zakaže, pročitaj uputstvo...
 
Odgovor na temu

subwire
Ivan Matic
Beograd

Član broj: 6885
Poruke: 1
*.net.yu



Profil

icon Re: MySql, UltraDev - Search18.12.2002. u 10:00 - pre 259 meseci
Treba da napravis drugaciji SQL upit. Koji treba da izgleda ovako na primer:
SELECT Ime FROM NekaTabela WHERE MATCH(Ime, Prezime, Detalji) AGAINST ('programer')
Posto me mrzi da kucam, pusti cu tebe da trazis malo po dokumentaciji. Ali bi ovo trebalo da resi tvoj problem.
Pozdrav!
 
Odgovor na temu

[es] :: MySQL :: MySql, UltraDev - Search

[ Pregleda: 5514 | Odgovora: 6 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.