název tabulky pomocí proměnné

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

Prosím jak zapsat název tabulky pomocí proměnné?

protected $tableName = ‚uzivatel$id‘; – toto nefunguje
protected $tableName = ‚uzivatel‘.$id; – toto nefunguje
protected $tableName = „uzivatel“.$id; – toto nefunguje
protected $tableName = „uzivatel$id“; – toto nefunguje

Editoval ololol (18. 9. 2012 21:17)

jtousek
Člen | 951
+
0
-

Nejdříve se nauč PHP.

protected $tableName;

public function __construct($id) {
	$this->tableName = 'uzivatel' . $id;
}

EDIT: Co to vůbec je za tabulku? Jestli je to název tabulky v databázi tak je nesmysl mít sólo tabulku pro každého uživatele.

Editoval jtousek (18. 9. 2012 22:10)

ololol
Člen | 18
+
0
-

Děkuju za radu, to už několik let umím, ted se učím tenhle framework

toto mám v Users.php

class Users extends Table
{

  /**
   * @var string
   */
  protected $tableName = 'uzivatele';

místo uživatele potřebuju otevírat tabulku uzivatele1 nebo uzivatele2 podle toho co mám v té chvíli uloženo v proměnné $_SESSION[‚id‘] nebo $id

Jak to mám provést ? Z toho příspěvku nade mnou to nechápu.

Majkl578
Moderator | 1364
+
0
-

V prvé řadě si nastuduj jak používat relační databáze. Pokud má každý uživatel jednu tabulku, je něco špatně.

ololol
Člen | 18
+
0
-

Prosímtě Majkl578 klid, Prostě mám několik tabulek s uživateli, v každé tabulce je např. 100 uživatelů

MW
Člen | 615
+
0
-

A kdyz uz by to melo byt, cemu neni rozumět na

$this->tableName = 'uzivatel' . $id;

nebo

$this->tableName = 'uzivatel' . $_SESSION['id'];
jtousek
Člen | 951
+
0
-

A proč ti nestačí jedna?!

Majkl578
Moderator | 1364
+
0
-

ololol napsal(a):

mám několik tabulek s uživateli, v každé tabulce je např. 100 uživatelů

Můžeš takovovou situaci nějak racionálně zdůvodnit?

mkoubik
Člen | 728
+
0
-

A kromě toho nepoužívej přímo $_SESSION, ale https://doc.nette.org/…ttp/sessions.

ololol
Člen | 18
+
0
-

ok, tak se zeptám:

$this->tableName = ‚uzivatel‘ . $id;

dám místo řádku

protected $tableName = ‚uzivatele‘; ????

jtousek
Člen | 951
+
0
-

Dokud neumíš pracovat s třídami a objekty v PHP tak se neuč Nette. Tohle nemá smysl řešit na Nette fóru, s tím jdi na jakpsatweb.

ololol
Člen | 18
+
0
-

jtousek napsal(a):

Dokud neumíš pracovat s třídami a objekty v PHP tak se neuč Nette. Tohle nemá smysl řešit na Nette fóru, s tím jdi na jakpsatweb.

Jo to máš pravdu, v těch zatím plavu, ale něco se dá pochytit z těchto diskusí na rozjezd, zbytek dostuduju. Díky všem

ololol
Člen | 18
+
0
-

Zdravím, zkusil jsem funkci __construct z druhého příspěvku
a bohužel to nemůže přistoupit k tabulce, laděnka hlásí chybu

Call to a member function table() on a non-object

47:       protected function getTable()
48:        {
49:--zde hlasi chybu        return $this->connection->table($this->tableName);
50:        }
jtousek
Člen | 951
+
0
-

Když ani neřekneš jakou chybu tak to je potom těžký. Pardon neumím číst. Evidentně $this->connection je NULL. Nejdříve tam musíš předat objekt třídy Connection, abys jej mohl používat.

A vážně, tohle nemá s Nette naprosto nic společného, přečti si dokumentaci PHP nebo si najdi nějakej seriál o objektovém programování.

Editoval jtousek (19. 9. 2012 22:11)

ololol
Člen | 18
+
0
-

Já myslel, že toto fórum je pro začátečníky s Nette…
Chápu, že Tě moje dotazy uráží, když už si tak daleko,
ale přeci jen menší nakopnutí by nešlo…?

Mně se Nette na spoustu funkcí zamlouvá, a mám je už hotové, ale bohužel potřebuju přistupovat
ke dvěma různým tabulkám se stejnou strukturou, ale pouze jiným názvem. Pro začátečníka v Nette je to těžká věc a gor když se do objektového programování pomalu dostává.

ololol
Člen | 18
+
0
-

Promin editoval jsi…

ololol
Člen | 18
+
0
-

Ještě dodatek, pokud tam dám natvrdo

protected $tableName = 'uzivatele1';

místo té funkce, tak aplikace jede …

jtousek
Člen | 951
+
0
-

Pro začátečníky s Nette ano. Pro začátečníky s PHP ne.

Když to rozvedu tak zde bys měl pokládat pouze dotazy související s Nette. To na co se ptáš je ale vesměs tvé nepochopení základních principů objektového programování v PHP a to sem skutečně nepatří.

EDIT: Jinými slovy pokud jsi nejen začátečník v Nette, ale i v PHP, snaž se aby to na tobě nebylo vidět a PHP dotazy dávej jinam. Mimochodem učit se libovolný framework aniž bys znal základy daného jazyka považuji za přinejmenším nepříliš dobrý nápad.

EDIT2: U svých příspěvků máš vpravo dole odkaz editovat, vyzkoušej. ;-)

Editoval jtousek (19. 9. 2012 22:32)

ololol
Člen | 18
+
0
-

dík, měl jsi pravdu

$this->connection bylo NULL

už to jede, hurá

Grelek
Člen | 233
+
0
-

K tomu objektovému programování, podívej se sem.

Majkl578
Moderator | 1364
+
0
-

ololol napsal(a):

Já myslel, že toto fórum je pro začátečníky s Nette…

S Nette ano, s PHP jako takovým nikoliv. Pro elementární dotazy týkající se PHP a OOP se obrať např. na Diskuzi JakPsátWeb.

Jan Tvrdík
Nette guru | 2595
+
0
-

Zamykám a vyhazuji do koše.