Nette 2.1 – editace dat z databáze

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

Zdravím,

mám v databázi desítky dat (3 sloupečky: id, turnaj, uzivatel, pocet_bodu).

Jak byste doporučili vytvořit editační formulář, který by měl za úkol načíst a zobrazit seznam uživatelů a ke každému uživateli počet bodů?

Nemůžu před uložením celou tabulku smazat a data po uložení znovu uložit ale potřebuji data updatetovat. Uživatel stejného názvu může být v databázi víckrát a proto ho musím identifikovat jeho ID.

Používám takoéto řešení kdy po odeslání parsuju data a ze kterych ziskam ID vysledku pro editaci. Ale nepřijde mi to správná cesta.

foreach ( $vysledky as $vysledek )
{
$form->addText( "{$vysledek->id_user}", 'Uživatel:' )
     ->setValue( $vysledek->uzivatel );

$form->addText( "{$vysledek->id_pocet_bodu}", 'Bodů:' )
     ->setValue( $vysledek->pocet_bodu );
}

Znáte někdo lepší způsob? V Nette 2.1 byly velké změny ve formulářích, nebylo přidáno něco co by mi ulohčilo muj problom?

Díky

Editoval motorcb (5. 1. 2014 20:35)

Oli
Člen | 1215
+
0
-

Zkus se podívat na phpfashion jestli ti to nepomůže

sKopheK
Člen | 207
+
0
-

Není tohle spíš otázka k databázi?

Já bych to řešil zparsováním dat z formuláře v jednom cyklu (např. pts[id_user] = [ …, … ]) a pak postupně po uživatelích procházel a updatoval, přidával, nebo mazal záznamy. Jinak proč nemůžeš data k jednomu turnaji smazat a pak přidávat, když to celé dáš do transakce (pokud tedy používáš InnoDB)?

motorcb
Člen | 552
+
0
-

@sKopheK:

Právě že s polem jsou problémy :-(

for( $i = 0; $i<10; $i++)
{
    $form->addText( "pst[{$i}]", 'Pořadí:' );
}

Hlásí chybu: Component name must be non-empty alphanumeric string, ‚pst[0]‘ given

Je nějak možné tvořit pole v názvu komponenty ve formuláři?

David Matějka
Moderator | 6445
+
0
-

@motorcb: container

$container = $form->addContainer('pst');
for( $i = 0; $i<10; $i++)
{
    $container->addText( $i, 'Pořadí:' );
}
motorcb
Člen | 552
+
0
-

@matej21:

Díky, to vypadá nadějně :-)

jen bych potřeboval vypisovoat Uživatel, Pořadí. Jde to?

Takhle mohu zadávat pouze body :-(

David Matějka
Moderator | 6445
+
0
-

@motorcb: kontejnery muzes zanorovat, nebo pouzij https://componette.org/search/?…