tiny ‘n’ smart
database layer

Odkazy: dibi | API reference

Oznámení

Omlouváme se, provoz fóra byl ukončen

Načtení údaju do select option

před 7 lety

pavell86
Člen | 5

Zdravím, mám níže uvedený dotaz, pomocí kterého vypisuji do inputu místo a čas zápasu. Ještě bych však potřeboval načíst do formulářového prvku select domácí a hostující tým.

SELECT z.id as id,d.tym as domaci,h.tym as hoste,DATE_FORMAT(z.cas,"%d.%m.%Y %H:%i") as datum, z.misto as misto from system_terminy_zapasu  z
 LEFT JOIN system_tymy d ON z.id_domaci=d.id
 LEFT JOIN system_tymy h on z.id_hoste=h.id
 WHERE z.id=%i,$id)->fetch();

V případě že jsem dělal výpis jen do roletky tak jsem použil dibi::fetchPairs, ale ted nevím jak zápis skombinovat s výše uvedeným…mohl by mi prosím někdo poradit.

Děkuji

Editoval pavell86 (17. 7. 2012 10:35)

před 7 lety

Milo
Nette Core | 1124

fetchPairs() můžeš předat dva parametry. fetchPairs('id', 'hoste').

PS: Nerozumím datům co taháš z DB

před 7 lety

pavell86
Člen | 5

to ano, ale jak mám vypsat do inputu i ty zbývající data ?

před 7 lety

Milo
Nette Core | 1124

Problém bude, že nechápu co chceš udělat :) Zkusim…

$res = $db->query('SELECT .... FROM');

$data1 = $res->fetch();
$data2 = $res->fetchPairs();

před 7 lety

pavell86
Člen | 5

Mám formulář, ve kterém mám položky
domácí tým (roletka ze které lze vybrat tým)
hostující tým (roletka ze které lze vybrat tým)
čas utkání (input)
místo utkání (input)

a pak chci do formuláře načíst data, které mám uložené v databázi

struktura tabulek

system_terminy_zapasu

id_domacihotymu
id_hostujicihotymu
cas
misto

system_tymy

id
nazev

Pomocí left join spojím tabulky a vytáhnu názvy týmu, které spolu mají hrát

před 7 lety

Milo
Nette Core | 1124

Dobrá, to už je lepší. Ale pokud budeš mít 50 zápasů, to chceš pro každý zápas vykreslit formulář, nebo chceš jen pro nějaký konkrétní?

Pokud to děláš v Nette, princip takto. Ale to už je spíš dotaz na Nette fórum kde se to probíralo X-krát.

function createComponentForm()
{
    $teams = dibi::fetchPairs('SELECT id, nazev FROM system_tymy');

    $form = new UI\Form;
    $form
        ->addSelect('id_domacihotymu', 'Domácí', $teams);
        ->addSelect('id_hostujicihotymu', 'Hosté', $teams);
        ->addInput('cas', 'Čas')
        ->addInput('misto', 'Místo')
        ->addHidden('id', NULL);

    return $form;
}

function actionEdit($id)
{
    $this['form']->setDefaults(dibi::fetch('SELECT * FROM system_terminy_zapasu WHERE id = %i', $id);
}

Editoval Milo (17. 7. 2012 14:50)