výpis z databáze do tabulek podle proměnné
- Altimit
- Člen | 82
Ahoj opět píšu, ale nevím si fakt rady :D
Tak jedná se o to, že chci udělat výpis pravidel z databáze..
v php jsem měl tuto možnost:
$result = mysql_query("SELECT * FROM rules WHERE active = '1' AND typ = '1'");
$total_results = mysql_num_rows($result);
for ($i = $start; $i < $end; $i++) {
// make sure that PHP doesn't try to show results that don't exist
if ($i == $total_results) {
break;
}
echo '<tr class="danger">';
echo "<td>" . mysql_result($result, $i, 'id') . "</td>";
echo "<td>" . mysql_result($result, $i, 'rule') . "</td></tr>";
}
ten typ určuje zda-li to jsou pravidla všeobecná, teamspeak nebo
serveru
ideální by bylo kdyby byl potom odkaz třeba takový:
localhost/server/www/rules/1 nebo /localhost/server/www/rules/teamspeak
routrovani neumím.. a nette je fakt super
Děkuji za odpovědi.
- Felix
- Nette Core | 1270
Ahoj,
Databaze
Doporucuju precist dokumentaci (https://doc.nette.org/cs/database). :-)
Nejjednodussi priklad.
public fuction actionDefaultList($active = 1, $type = 1) {
$this->template->rules = $this->model->getRules($active, $type);
}
/** @var Nette\Database\Context */
private $db;
public function getRules($active, $type) {
// Validate arguments!
return ->db->table('rules')->where(['active' => $active, 'type' => $type]);
}
Routovani
Routovani je uplne jednoduchy (https://doc.nette.org/…tion/routing) :-)
$router[] = new Route('pravidla/<active>/<type>', 'Rules:list');
Editoval Felix (19. 11. 2015 21:27)
- CZechBoY
- Člen | 3608
Presenter:
/**
* @var Nette\Database\Context
* @inject
*/
public $db;
public function actionDefault ()
{
$this->template->rules = $this->db->table('rules')->where('active', 1)->where('typ', 1);
}
Nebo to ještě napojit přes Model viz komentář předemnou.
Šablona
{block content}
<table>
<thead>
<tr>
<th>ID</th>
<th>Rule</th>
</tr>
</thead>
<tbody>
{foreach $rules as $rule}
<tr>
<td><a n:href="rule, id => $rule->id">{$rule->id}</a></td>
<td>{$rule->rule}</td>
</tr>
{/foreach}
</tbody>
</table>
{/block content}
Edit: Doplněno $this.
Editoval CZechBoY (20. 11. 2015 18:12)
- Altimit
- Člen | 82
nevím proč, ale furt mi to hází chybu, že nezná proměnou databázi přesněji
Undefined variable: database
a ukazuje to na to, že neví co ta database je a přitom ji mám v configu
definovanou
kod v presenteru:
class RulesPresenter extends BasePresenter {
public $database;
public function actionDefault ()
{
$db = $database;
$this->template->rules = $db->table('rules')->where('typ', 1);
}
}
a databese v config.local.neon
database:
dsn: 'mysql:host=127.0.0.1;dbname=portal'
user: ******
password: *******
options:
lazy: no
default.latte v rules
{block content}
<h2 n:block=title>Všechny pravidla portálu!</h2>
<hr><br>
<tbody>
{foreach $rules as $rule}
<tr>
<td><a n:href="rule, id => $rule->id">{$rule->id}</a></td>
<td>{$rule->rule}</td>
</tr>
{/foreach}
</tbody>
{/block}