Vyhledávací formulář který hledá podle dat v db

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

Ahoj, zkouším vytvořit vyhledávací formulář který by mi měl vyhledat data v databázi podle zadaného kriteria. V mém případě se jedná o to když zadám jméno nebo příjmení uživatele, tak chci aby se mi aby se mi pod vyhledávací formulář vypsali informace o vyhledávaném uživateli které jsou v tabulce. Pbudu říd za každou radu jak bych to měl udělat. Děkuji!

Takhle to zatím vypadá:
Pserenter:

public function processSearchUser(Form $form) {
        try {
             $values = $form->getValues();
             $this->model->searchUser($values->search);
             $this->flashMessage('Zmena práv proběhla úspěšně', 'success');
             $this->redirect(':Admin:UpravaPrav:default');
         } catch (Exception $e) {
             $e->flashMessage('Hledání se nezdařilo zkuste to pozdeji!');
         }
    }

Zde přebírám data z vyhledávacího formuláře a dále je posílá do modelu kde se porovnávají s databází

Model:

public function searchUser($search) {
   return $this->database->table(self::TABLE_NAME)->where('surname' or 'name', $search);
}

A dál si nevím rady s tím výpisem.

ali
Člen | 342
+
0
-

Ja bych to udelal tak nejak:

public function processSearchUser(Form $form)
{
	$values = $form->getValues()
	$find = $this->model->searchUser($values->search);

	if($find!==null)
		$this->redirect(':Admin:UpravaPrav:default',$find);

	else
		$form->addError("Hledání se nezdařilo zkuste to pozdeji!");
}

Nepouzivat Nepouzivam Nette database, ale dibi, tak model si pak pro navraceni ID budes muset upravit podle sveho

public function searchUser($search)
{
	$sql = $this->db->query("SELECT * FROM %n WHERE [surname]=%s OR [name]=%s",self::TABLE_NAME,$search,$search);
	return (count($sql)==0 ? null : $sql->fetch()->user_id);
}

Editoval ali (23. 12. 2014 13:31)