DIBI nefunguje a v návodu na tohle nic není

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

Potřeboval bych vědět, jak zprovoznit Dibi. Nefunguje mi to, při jakémkoliv pokusu o operaci nad Dibi to hlásí Fatal error class dibi not found.
Složka dibi je nahraná přesně dle návodu. Kam se má co vložit nebo zapsat?

marau
Člen | 50
+
0
-

Nahrál jsi Dibi do složky, kam se kouká robot loader? Používáš PHP 5.3? Máš správně namespace? (\Dibi)

studna
Člen | 181
+
0
-

Zkus promazat cache.

ondrej_piza
Člen | 6
+
0
-

Okej, dibi jsem rozjel, nějaká blbost. Proč mi při obou těchto zápisech vyhodí hlášku, že to vrací objekt místo stringu?

$jmeno = dibi::select(‚name‘)
->from(‚users‘)
->where(‚id=%i‘,$id)
->execute();

$jmeno = dibi::query(‚SELECT users.name FROM [users] WHERE [id] = %i‘, $id);

$this->template->prijmeni = $jmeno;

Warning: htmlspecialchars() expects parameter 1 to be string, object given in E:\wamp\www\mujprojekt\libs\Nette\Templates\Filters\TemplateHelpers.php on line 62

Jan Endel
Člen | 1016
+
0
-

Prostuduj dibi

Editoval pilec (20. 4. 2011 20:00)

ondrej_piza
Člen | 6
+
0
-

To je rada na nic. Mám tu otevřených asi 20 oken, každý to popisuje trochu jinak, ale v tomhle se shodují. Tohle je formálně správný zápis.

Aurielle
Člen | 1281
+
0
-

Objekt nemůžeš vypsat v šabloně. Můžeš nad ním iterovat, můžeš dělat další věci, ale jako takovej ho vypsat nemůžeš.

mrataja
Člen | 57
+
0
-

ondrej_piza napsal(a):

To je rada na nic. Mám tu otevřených asi 20 oken, každý to popisuje trochu jinak, ale v tomhle se shodují. Tohle je formálně správný zápis.

Co tohle? (viz. dibi quick start a ziskávání výsledků)

$jmeno = dibi::query(‚SELECT users.name FROM [users] WHERE [id] = %i‘, $id, ' LIMIT 1')->fetch();

$this->template->prijmeni = $jmeno;
Aurielle
Člen | 1281
+
0
-

mrataja: i když to udělá takto, tak pořád musí přistupovat k jednotlivým položkám přes $prijmeni->jmeno_sloupce. Pokud vybírá jen jednu hodnotu, tak pak fetchSingle().

ondrej_piza
Člen | 6
+
0
-

Dá se nějak vypsat pole? Jako že přes dibi::query načtu celé pole záznamů a chtěl bych ho vypsat například do tabulky. Jde to nějak jednoduše?

mrataja
Člen | 57
+
0
-

ondrej_piza napsal(a):

Dá se nějak vypsat pole? Jako že přes dibi::query načtu celé pole záznamů a chtěl bych ho vypsat například do tabulky. Jde to nějak jednoduše?

$jmeno = dibi::query('SELECT users.name, users.email FROM [users]')->fetchAll();
foreach($jmeno as $row => $value) {
	echo '<tr><td>' . $value->name . '</td><td>'. $value->email. '</td></tr>';
}

Editoval mrataja (20. 4. 2011 21:41)

mkoubik
Člen | 728
+
0
-

Spíš v šabloně, ne?

<table>
  <tr n:foreach="$jmeno as $value">
    <td>{$value->name}</td>
    <td>{$value->email}</td>
  </tr>
</table>
Filip Procházka
Moderator | 4668
+
0
-

Příště se ptej na dibi fóru.