Autor | Zpráva | ||
---|---|---|---|
Jendák Profil * |
#1 · Zasláno: 8. 5. 2012, 08:28:39
Ahoj,
zase mám dotaz. Mám 4 sloupce vytvořené pomocí divů (tabulka se v mém případě nehodila). A v každém sloupci několik dalších divů a v těch má být samotný obsah. Ještě obrázek pro lepší představu. S PHP teprve začínám, a tak dokážu vypsat obsah jen do jednoho sloupce. Příkazem mysql_query("SELECT * FROM posts ORDER BY post_id DESC LIMIT 16") vytahávám posledních 16 příspěvků a byl bych rád, kdyby se příspěvky vypisovali po řádcích (viz. obrázek). Můžete mě zas nějak nakopnout jak na to? :) Nepotřebuju přímo řešení (i když to mi taky nevadí - dokážu se učit i přímo z toho).
|
||
gogy27 Profil |
Jendák:
Skús to urobiť pomocou cyklu napríklad while ($zaznam=mysql_fetch_array(mysql_query("SELECT * FROM posts ORDER BY post_id DESC LIMIT 16")) |
||
Jendák Profil * |
#3 · Zasláno: 8. 5. 2012, 09:39:56
Jasně, to jsem ještě "dokázal" udělat sám... právě že si nevim rady s tím algoritmem.
|
||
mimochodec Profil |
Jendák:
Tohle neuděláš na jeden průchod. Vytáhni si údaje do pole a z něj si pak ty údaje ber. Nebo přestaň vymýšlet blbosti a udělej to prostě jako tabulku. |
||
gogy27 Profil |
#5 · Zasláno: 8. 5. 2012, 10:16:55
Jendák:
Niekto možno to bude vedieť jednoduchšie, ja idem na to obkľukou, môj nápad: $pole_zotriedit = array(); while ($zaznam=mysql_fetch_array(mysql_query("SELECT * FROM posts ORDER BY post_id DESC LIMIT 16")) { $pole_zotriedit[] = $zaznam["obsah"]; } Teraz to budeš mať všetko v poli ($pole_zotriedit) a do prvého väčšieho div-u dáš divy s obsahom z array s indexami (0, 4, 8, 12), potom druhý väčší div s obsahom z array s indexami (1, 5, 9, 13)... Nezabudni, že do poľa sa indexuje od nuly, čiže index 0 je tvoj prvý div s obsahom. |
||
Jendák Profil * |
#6 · Zasláno: 8. 5. 2012, 10:40:55
mimochodec:
„Nebo přestaň vymýšlet blbosti a udělej to prostě jako tabulku.“ Podle mě to řešit tabulkou nejde (nebo aspoň neznám řešení). Protože ty vnitřní divy, mají různou výšku. A já chci aby následovali hned po sobě pod sebou... a chci aby se chovali nezávisle... Tady už je to vidět http://i49.tinypic.com/303codj.png. gogy27: Díky moc... zkusim to tak udělat :) |
||
mimochodec Profil |
#7 · Zasláno: 8. 5. 2012, 10:50:22
Jendák:
„Tady už je to vidět ht>tp://i49.tinypic.com/303codj.png.“ Tak to trochu mění situaci. V tom případě je gogy27 nejlepší řešení (ne-li jediné možné). |
||
Jendák Profil * |
#8 · Zasláno: 9. 5. 2012, 18:20:43 · Upravil/a: Jendák
Tak se mi to povedlo. :) Díky
Vypisuju tímhle příkazem echo $pole[0].$pole[4].$pole[8]; A u ostatních sloupců naprosto stejně (jen s jinejma číslama). Ale přijde mi to zbytečně složité. Nešlo by to vypisovat cyklem, hlavně mi jde o to jak zapsat aby se vypsalo "každý čtvrtý". Našel jsem tenhle cyklus.
for($c=1; $c<101; $c++){ echo($c." "); } *zbytečně né složité, ale neefektivní, zvlášť když se počet vypisovaných dat bude měnit (LIMIT u SQL příkazu budu asi různě přepisovat) |
||
Jendák Profil * |
#9 · Zasláno: 9. 5. 2012, 21:23:00 · Upravil/a: Jendák
Tak jsem na to nakonec přišel přecejenom sám :)
$limit = count($resultsarray) - 3; for($c=-3; $c<$limit; $c++){ $c = $c + 3; echo $resultsarray[$c];} |
||
mimochodec Profil |
#10 · Zasláno: 9. 5. 2012, 23:24:48
Měnit proměnnou cyklu uvnitř toho cyklu je poněkud nepěkné. Doporučoval bych spíš for .. do hodnoty count($resultsarray)/4 a v cyklu pracovat s echo $resultsarray[4*$c];
Ale věřím, že ti tohle funguje. |
||
Časová prodleva: 9 let
|
0