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
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
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)