Vyhledávání v databázi MySQL

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
plasmo
Člen | 66
+
0
-

Ahoj,
narazil jsem na drobný problém, jenž mi nejde vyřešit. V klasickém PHP to je bez problémů, ale pokulhávám s použitím Nette.

O co tedy jde, potřebuji vyrobit fultextové vyhledávání z databáze. V presenteru mám klasicky vytvořený formulář, ale nevím jak dál. Defakto potřebuju z formuláře předat hodnotu pole hledany výraz presenteru seacrh akci vysledek, modelem nacist data a vypsat je šabloně.

Dále jak v DIBI nejlépe zapsat MySQL dotaz pro fultext?

V případě kdybych chtěl hledání AJAXOVé, tak že se vásledek začne zobrazovat po začátku psaní, defakto to co má teď google. Jak na to? Děkuji za rady .

plasmo
Člen | 66
+
0
-

22 napsal(a):

co tohle?
https://componette.org/search/?…

Tak na to se podívám. Hlavně bych potřeboval poradit s předešlou částí mého příspěvku.

22
Člen | 1478
+
0
-

napřed se na to podívej, je tam i dotaz v DIBI, jinak v tom žádný velký rozdíl mezi PHP a Nette nehledej. Nebo to ber jako inspiraci pro vlastní suggest input.

plasmo
Člen | 66
+
0
-

22 napsal(a):

napřed se na to podívej, je tam i dotaz v DIBI, jinak v tom žádný velký rozdíl mezi PHP a Nette nehledej. Nebo to ber jako inspiraci pro vlastní suggest input.

Dota z v DIBI tam vidím, ale to není fultext :( Zkoušel jsem Dibi::Query a zapsat Select from match … ale neprošlo to :(

Editoval plasmo (7. 10. 2010 16:35)

22
Člen | 1478
+
0
-

Tak SQL dotaz do DB si musíš udělat podle sebe. DIBI ho za tebe nevymyslí.
https://dibiphp.com/

Editoval 22 (7. 10. 2010 16:39)

plasmo
Člen | 66
+
0
-

na1k napsal(a):

http://php.vrana.cz/…-v-mysql.php ;-)

Ach jo, jak už jsem psal zkoušel jsem to a přes DIBI mi to neprošlo … tak jsem myslel že na to má DIBI svůj vlastní příkaz …

Jak mám přesměrovat ten formuláře na presenter? Konkrétně jen předat hodnotu políčka hledaný výraz metodě presenteru search? Děkuji

arron
Člen | 464
+
0
-

co presne znamena, ze Ti to neproslo?

plasmo
Člen | 66
+
0
-

To teď z patra neřeknu, zkusím to ještě znovu, znovu se ptám jak přepošlu data formuláře na akci presenteru? Děkuji

arron
Člen | 464
+
0
-

Udelal bych to tak, ze v obsluzne metode toho formulare bych zavolal redirect nebo forward na presenter a akci, ktera ma provadet samotne vyhledani a zobrazeni vysledku. Jako parametr bych si predal hledanou frazi.

22
Člen | 1478
+
0
-

muzes poslat kod v PHP, jak to funguje Radvisovi a tim padem i tobe?

arron
Člen | 464
+
0
-

Nemam konkretni implementaci, jen jsem se tak zamyslel :-)

22
Člen | 1478
+
0
-

mysli dal

arron
Člen | 464
+
0
-

No tak chlapi, vzdyt je to v tom vlakne v podstate napsane…

public function formSubmitted(Form $form)
{
        //predpokladam, ze jsem v nejakem presenteru
	$this->redirect('Foo:bar', array('search' => $form->values['search']));
	$this->terminate();
}

No a pak v prezenteru neco jako:

class FooPresenter extends Presenter {
{
	private $searchResults;
	public function actionBar($search) {
		//provedu nejake vyhledani a vysledky si ulozim do $this->searchResults
	}
	public function renderBar() {
		$this->template->results = $this->searchResults;
	}
}

Ale tak tohle snad napisete uz kazdy ne, v tom neni zadna veda…

Editoval arron (7. 10. 2010 22:43)

22
Člen | 1478
+
0
-

..posloche, ty ses mistni nebo dojizdis? :-)

arron
Člen | 464
+
0
-

nechapu…

22
Člen | 1478
+
0
-

ja zas tvuj prispevek, co jsim ti vyresil?

arron
Člen | 464
+
0
-

Tak otazka znela, jak preposlu data z formulare na akci presenteru…presne takhle…co je na tom tak nepochopitelneho?

Kdyz potrebuju zpracovat vsechna data z formulare (napr. ulozit neco do databaze), tak je asi nejlepsi to udelat primo v submit metode. V tomhle konkretnim pripade mi osobne prijde vyhodny tento zpusob. Taky nerikam, ze je to jedine mozne reseni.

Editoval arron (8. 10. 2010 0:23)

22
Člen | 1478
+
0
-

nic proti, ale plasmo se ptal na neco trochu jineho, aspon jak to chapal ja.

plasmo
Člen | 66
+
0
-

Ahoj, moc děkuju. Nakonec jsem dospěl k řešení jak uvádí arron. Ohledně toho dotazu v DIBI, nevím co se dělo před tím ale teď už funguje jak má :)

arron
Člen | 464
+
0
-

Tak alespon, ze tak:-)

PetrP
Člen | 587
+
0
-

arron napsal(a):

Udelal bych to tak, ze v obsluzne metode toho formulare bych zavolal redirect nebo forward na presenter a akci, ktera ma provadet samotne vyhledani a zobrazeni vysledku. Jako parametr bych si predal hledanou frazi.

OT: forward by tady byl nevhodnej, protože by se uživateli nezměnila url. Takže by F5 znovu zpracovával formulař.

arron
Člen | 464
+
0
-

Jo, to jsem si pak taky uvedomil, proto ten priklad je s redirectem:-)

plasmo
Člen | 66
+
0
-

Nevím co jsem ten čtvrtek vyváděl ale teď mi je to všechno jasný :D … Děkuju ještě jednou za pomoc.