Nette\Database: vynechání řádků za nulovým id
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- zool
- Člen | 144
Ahoj nevím, kde může být problém: ale myslím že je to chybav Nette\Database.
Mějme tabulku „test“.
id nazev
0 c
1 b
2 a
když
teď vyberu třeba takto
foreach($this->test->table as $tes)
{
echo $tes->nazev
}
//tak se mi vypíši jen dva sloupce
//pokud kód zapíši takto
foreach($this->test->table->order('id') as $tes)
{
echo $tes->nazev
}
// tak se vypíší všechny 3.
Já osobně si myslím že tomu vadí to nulové „id“.
- zool
- Člen | 144
Ahoj promiň, verze nette je 2.0.10
udělal jsem malý prog..
v databázi
INSERT INTO `ztest` (`id`, `nazev`) VALUES
(0, 'C'),
(1, 'D'),
(2, 'A'),
(3, 'B');
v Presenteru
class TestPresenter extends BasePresenter
{
/** @var \Nette\Database\Table\Selection */
private $data;
public function actionDefault()
{
$this->data = $this->test->table->order('nazev');
echo $this->data->count('*')."<br>";
echo $this->data->getSql()."<br>";;
foreach($this->data as $da)
{
echo $da->id;
}
echo "<br>";
$this->data = $this->test->table->order('id');
echo $this->data->count('*')."<br>";
echo $this->data->getSql()."<br>";;
foreach($this->data as $da)
{
echo $da->id;
}
exit();
}
}
A výpis na obrazovku
4
SELECT `id` FROM `ztest` ORDER BY `nazev`
031 //melo být 2301 a navíc chybí ta 2
4
SELECT `id` FROM `ztest` ORDER BY `id`
0123
Editoval zool (26. 3. 2013 17:21)