SQL příkaz pro update tabulky user
- Karel Chramosil
- Člen | 105
Jsem úplný začátečník chci provést update tabulky user. Posílám část zdrojového programu. Nechodí mne SQL příkaz. Prosím o radu.
$form->setDefaults(array(
‚username‘ ⇒ $user->getIdentity()->username,
‚titul‘ ⇒ $user->getIdentity()->titul,
‚jmeno‘ ⇒ $user->getIdentity()->jmeno,
‚prijmeni‘ ⇒ $user->getIdentity()->prijmeni,
‚email‘ ⇒ $user->getIdentity()->email,
‚funkce‘ ⇒ $user->getIdentity()->funkce,
‚oddeleni‘ ⇒ $user->getIdentity()->oddeleni,
‚mobil‘ ⇒ $user->getIdentity()->mobil));
$form->addSubmit(‚set‘, ‚Uložit změny‘);
$form->onSuccess[] = callback($this, ‚editaceFormSubmitted‘);
return $form;
}
/**
* Zpracuje odeslaný formulář. Mění data uživatele.
* @param Nette\Application\UI\Form $form
*/
public function editaceFormSubmitted(Form $form)
{
$values = $form->getValues();
$user = $this->getUser();
try {
$this->context->where(‚id‘=>getId())
->update(array(‚jmeno‘=>$values->jmeno));
$this->flashMessage(‚Data byla změněna.‘, ‚success‘);
$this->redirect(‚UserEditace:‘);
} catch (NS\AuthenticationException $e) {
$form->addError(‚Zadaná data nejsou správné.‘);
}
- jtousek
- Člen | 951
$this->context ⇒ $this->context->connection nebo $this->context->database, nevím přesně co je výchozí.
EDIT: Příště nezapomeň uvést, co to dělá („nechodí mi“ není dostatečné, ideální je klikatelný log z laděnky). Dále verzi PHP a Nette a na kód používat příslušné značky pro zvýraznění syntaxe.
Editoval jtousek (31. 5. 2012 20:08)
- Karel Chramosil
- Člen | 105
Nette Framework 2.0.3, PHP 5.3 Toto chyba z laděnky
syntax error, unexpected T_DOUBLE_ARROW search►
File: …\app\presenters\UserEditacePresenter.php Line: 66
57: /**
58: * Zpracuje odeslaný formulář. Mění data uživatele.
59: * @param Nette\Application\UI\Form $form
60: */
61: public function editaceFormSubmitted(Form $form)
62: {
63: $values = $form->getValues();
64: $user = $this->getUser();
65: try {
66:
$this->context->database->createUsers()->where(‚id‘=>$user->id)
67: ->update(array(‚jmeno‘=>$values->jmeno));
68:
69: $this->flashMessage(‚Data byla změněna.‘, ‚success‘);
70: $this->redirect(‚UserEditace:‘);
- Karel Chramosil
- Člen | 105
Děkuji za rady
příkaz
$this->context->database->table(‚user‘)
->update(array(‚jmeno‘=>$values->jmeno));
provede update ve všech řádcích tabulky
u příkazu laděnka hlásí že nezná syntaxi pro řádek where
$this->context->database->table(‚user‘)
->update(array(‚jmeno‘=>$values->jmeno))
->where(‚id‘=>$user->id);
- Karel Chramosil
- Člen | 105
Děkuji moc za radu. Už vše funguje jak má. Akorát nevím jak funguje find($user->id) místo where.
- bojovyletoun
- Člen | 667
Prosím používej 3. tlačítko zprava. Takhle se kód nedá přečíst, ani zkopírovat do editoru (kvůli nahrazení uvozovek a šipek) a ani se nedá rovnou vložit, když si ho chci prohlídnout pomocí Citace (neboť před každý řádek vloží >)