Zadejte hledaný výraz...

foreach výpis

FAKAM
verified
rating uzivatele
(10 hodnocení)
18. 7. 2010 20:14:35
Zdravím
Potreboval by som pomocou FOREACH vypísať práve posledné x záznamy, nie všetky?
Dalo by sa to nejako?
18. 7. 2010 20:14:35
https://webtrh.cz/diskuse/foreach-vypis#reply529153
sweetboi
verified
rating uzivatele
(2 hodnocení)
18. 7. 2010 20:18:56
vypis z ceho ? z pole ? pouzijte sort a promennou, kterou incremenujete a az dojdete na pozadovane cislo, nasilne ukoncete foreach ...
S.
18. 7. 2010 20:18:56
https://webtrh.cz/diskuse/foreach-vypis#reply529152
FAKAM
verified
rating uzivatele
(10 hodnocení)
18. 7. 2010 20:24:27
výpis z databázy. mozes napísat reálny príklad k tomu:
$count = 0;
$balance = 0;
foreach ( $arrBalance as $row )
{
$count++;
$balance += $row;
?>
18. 7. 2010 20:24:27
https://webtrh.cz/diskuse/foreach-vypis#reply529151
sweetboi
verified
rating uzivatele
(2 hodnocení)
18. 7. 2010 20:37:56
$count = 0;
$balance = 0;
foreach ( $arrBalance as $row )
{
$count++;
$balance += $row;
if($count==10) break;
}
bude vypsano 9 zaznamu
ale v SQL dotazu do databaze muzete nastavit LIMIT
?>
18. 7. 2010 20:37:56
https://webtrh.cz/diskuse/foreach-vypis#reply529150
Z DB? Tak to by bylo lepsi vybrat jen poslednich X zaznamu a ty si vypsat, ne? Pak ani foreach nebudes potrebovat... napr posledni 3
select * from table order by id desc limit 0,3
18. 7. 2010 20:43:12
https://webtrh.cz/diskuse/foreach-vypis#reply529149
FAKAM
verified
rating uzivatele
(10 hodnocení)
18. 7. 2010 20:44:15
ano ale potrebujem práve vypísať posledné záznamy. to čo si napísal dava prvých 9 záznamov ja potrebujem napríklad posledných 9
18. 7. 2010 20:44:15
https://webtrh.cz/diskuse/foreach-vypis#reply529148
sweetboi
verified
rating uzivatele
(2 hodnocení)
18. 7. 2010 20:49:25
nastudujte na php.net ARRAY, tam najdete vse co jde s polem delat ....
18. 7. 2010 20:49:25
https://webtrh.cz/diskuse/foreach-vypis#reply529147
FAKAM
verified
rating uzivatele
(10 hodnocení)
18. 7. 2010 20:57:29
vdaka prave ten pocet viem urobit len aby to bolo desc to nie skoda
18. 7. 2010 20:57:29
https://webtrh.cz/diskuse/foreach-vypis#reply529146
hm
verified
rating uzivatele
(20 hodnocení)
18. 7. 2010 21:45:06
$count = count($arrBalance);
$x = 0;
$balance = 0;
foreach ( $arrBalance as $row )
{
$x++;
if($x>$count-9) $balance += $row;
}
pokud je to ale jednoduche cislovane pole tak urcite jednodussi a mene narocne na vykon bude
$count = count($arrBalance);
$balance = 0;
for ( $x = $count-9 ; $x<$count ; $x++ )
{
if($x>$count-9) $balance += $arrBalance;
}
btw to je strasna prasarna :) pokud jsou to data z databaze coz predpokladam tak se to da udelat uz primo v databazi ! coz je urcite spravne reseni...
18. 7. 2010 21:45:06
https://webtrh.cz/diskuse/foreach-vypis#reply529145
Kamil Tomšík
verified
rating uzivatele
(3 hodnocení)
19. 7. 2010 11:24:58
takze znovu ti to rikam - ja bych dal ten udaj balance rovnou do databaze - musis to sice urdrzovat, ale z db vytahujes cista data, to zaprve, zadruhe vypsat poslednich 9 zaznamu je potom easy, proste zmenis trideni na opacne a vypises prvnich 9 (a v php si to pak otocis zpatky pomoci array_reverse)
a pokud bys chtel pomoci php vypsat poslednich 9 zaznamu z x prvkoveho pole, tak pouzijes array_slice ( $pole, -9 );
a opet bys mel znacne jednodussi praci, kdybys balance mel primo v db :-)
BTW: koukam, ze nejsem sam, kdo navrhuje databazi, alesi to chce ale asi pocitat v selectu, ja navrhuju primo db. sloupec, ma to jeste jednu vyhodu - a to sice, ze vis, jakej byl balance v okamziku, kdys tu transakci provadel (a nebo ses schopnej si ji dopocitat jednoduchym odectem 2 sloupcu v ramci jednoho radku)
19. 7. 2010 11:24:58
https://webtrh.cz/diskuse/foreach-vypis#reply529144
Martin Klíma
verified
rating uzivatele
(13 hodnocení)
19. 7. 2010 12:41:29
Napsal FAKAM;539408
ano ale potrebujem práve vypísať posledné záznamy. to čo si napísal dava prvých 9 záznamov ja potrebujem napríklad posledných 9
19. 7. 2010 12:41:29
https://webtrh.cz/diskuse/foreach-vypis#reply529143
Kamil Tomšík
verified
rating uzivatele
(3 hodnocení)
19. 7. 2010 13:24:07
Napsal pooky;539693
desc :-)
a psal sem to v predchozim prispevku :-)
19. 7. 2010 13:24:07
https://webtrh.cz/diskuse/foreach-vypis#reply529142
Napsal vedouci;539710
desc :-)
Tak to je chyba mezi klavesnici a zidli... kdyz to clovek neumi prepsat, natoz zkopirovat...
19. 7. 2010 15:56:17
https://webtrh.cz/diskuse/foreach-vypis#reply529141
hm
verified
rating uzivatele
(20 hodnocení)
19. 7. 2010 20:07:28
Napsal vedouci;539640
takze znovu ti to rikam - ja bych dal ten udaj balance rovnou do databaze - musis to sice urdrzovat, ale z db vytahujes cista data, to zaprve, zadruhe vypsat poslednich 9 zaznamu je potom easy, proste zmenis trideni na opacne a vypises prvnich 9 (a v php si to pak otocis zpatky pomoci array_reverse)
a pokud bys chtel pomoci php vypsat poslednich 9 zaznamu z x prvkoveho pole, tak pouzijes array_slice ( $pole, -9 );
a opet bys mel znacne jednodussi praci, kdybys balance mel primo v db :-)
BTW: koukam, ze nejsem sam, kdo navrhuje databazi, alesi to chce ale asi pocitat v selectu, ja navrhuju primo db. sloupec, ma to jeste jednu vyhodu - a to sice, ze vis, jakej byl balance v okamziku, kdys tu transakci provadel (a nebo ses schopnej si ji dopocitat jednoduchym odectem 2 sloupcu v ramci jednoho radku)
i kdeze, ja bych to taky urcite ukladal, vypocet pri vypisovani je neefektivni :) a ja si na optimalizaci potrpim
19. 7. 2010 20:07:28
https://webtrh.cz/diskuse/foreach-vypis#reply529140
Petr Vacek
verified
rating uzivatele
20. 7. 2010 00:46:57
pokud stojíš pouze o vypsání posledních 9 položek z pole, je podle mě vhodné použít následující postup: nastavit ukazatel na konec pole a od konce se 9 krát posunou nahoru. Je to rychlé a nemusíš iterovat přes celé pole. Tento postup se ti vyplatí u větších polí. Jeho nevýhodou je, že údaje z pole získáš v opačném pořadí, tedy od konce. Proto je dobré je nasázet hodnoty do pomocného pole a potom otočit, nebo je nedávat na konec pomocného pole ale na začátek. potom pole vypíšeš klasicky přes foreach.
$pole = array(...);
$upravenePole=array();
end($pole); // posunout ukazatel na konec pole
$i = 0;
if(count($pole)>0) do{
array_unshift ($upravenePole,current($pole));
$i++;
}while($i < 9 and true === prev($pole));
foreach($upravenePole as $hodnota) echo $hodnota;
20. 7. 2010 00:46:57
https://webtrh.cz/diskuse/foreach-vypis#reply529139
Pro odpověď se přihlašte.
Přihlásit