| Autor | Zpráva | ||
|---|---|---|---|
| kuba1999 Profil |
#1 · Zasláno: 10. 4. 2010, 19:32:16 · Upravil/a: kuba1999
Ahoj.
Mám tuto třídu:
class strankovani{
....
...
public function zaznamy(){
$by=($this->na_stranku * ($this->page - 1));
$select=mysql_query("SELECT * FROM clanky");
$result = mysql_fetch_object($select);
foreach ($result as $field => $value)
$result->$field = $value;
return $result;
}
...
...
}
Když přes třídu strankovani zavolám funkci zaznamy(), tak potřebuji, abych pomocí while začal vypisovat řádky. (které jsou přes tuto funkci vráceny v objektu)
while($r=$strankovani->$select){
echo $r->nazev;
}
Ale nedaří se mi to vůbec udělat.. Mockrát děkuji za rady. Jakub |
||
|
Časová prodleva: 3 dny
|
|||
| Jan Tvrdík Profil |
#2 · Zasláno: 13. 4. 2010, 23:24:16
Vypisovat to přes while je značně nepraktické. Funkce
zaznamy by měla vracet pole, které by se následně prošlo přes foreach.
|
||
| AM_ Profil |
#3 · Zasláno: 14. 4. 2010, 00:01:14
kuba1999:
> $result = mysql_fetch_object($select); > > foreach ($result as $field => $value) > $result->$field = $value; > return $result; tohle mi přijde jako dost nesmyslná konstrukce, proč prostě hned po prvním řádku nevrátíš $result? ten foreach vlastně neudělá vůbec nic. > while($r=$strankovani->$select){ > echo $r->nazev; > } tahle konstrukce je také nějak nesmyslná... čeho je instance objekt $strankovani? pokud třídy strankovani, tak je to od základu špatná konstrukce, třída strankovani především neobsahuje jako členy žádná konkrétní data. Osobně bych doporučoval vrátit se k nějakému tutoriálu objektového programování, mám z Tvého kódu pocit, že máš v principu objektů trochu zmatek, a bude lepší si přečíst nějaký hotový článek, než abych tady rozepisoval rozsáhlé pojednání o tom, jak mají objekty fungovat. |
||
| Mastodont Profil |
#4 · Zasláno: 14. 4. 2010, 10:52:42 · Upravil/a: Mastodont
Ono by to šlo, kdyby tam byla nějaká metoda Load a Select by pak z načteného pole vybral následující záznam, umístil ho do public členů a vrátil true, ale moc se mi to nezamlouvá ...
$r = new Strankovani;
$r->Load(...);
while ($r->select() ){
echo $r->nazev;
} |
||
|
Časová prodleva: 16 let
|
|||
0