Stránka: 1 z 1
| [ Príspevkov: 13 ] | |
Autor | Správa |
---|
Registrovaný: 22.09.12 Prihlásený: 25.05.13 Príspevky: 8 Témy: 4 | 4 |
Ahojte,
vedel by mi niekto poradit ako docielim aby sa mi vypisala databaza napr. produktov do html tabulky s tym, ze ich chcem mat napr. v jednom riadku 3
....proste aby sa vypisali 3 polozky vedla seba v tabulke a 4ta sa uz automaticky vypisala do noveho riadku.
Dakujem pekne
|
|
Registrovaný: 22.08.11 Prihlásený: 14.12.23 Príspevky: 2361 Témy: 11 | 11 |
Skusal si uz nieco ? Skusal si nieco hladat ? Myslis ze ti niekto napise vsetko len tak. Ak zadas do googlu vypis z MySql tak neverim ze nenajdes riesenie.
|
|
Registrovaný: 22.09.12 Prihlásený: 25.05.13 Príspevky: 8 Témy: 4 | 4 |
no skusal.....a problem mam v tom...ze mi vypisuje mysql kazdy zaznam do noveho riadku...ja by om potreboval napr. 3 vedla seba a az potom novy riadok a zase 3 vedla seba....
|
|
Registrovaný: 08.08.09 Príspevky: 12449 Témy: 39 | 39 |
Potrebuješ dva cykly (napríklad pomocou for). Jedným vypisuješ riadky <tr> tabuľky (počet riadkov získaš ako pomer počtu záznamov a požadovaného počtu stĺpcov zaokrúhlené nahor - odporúčam požadovaný počet stĺpcov určiť ako premennú). V rámci hlavného cyklu medzi tagy <tr> a </tr> (hranica jedného riadku tabuľky) ešte potrebuješ vypísať jednotlivé bunky.
Niekam na začiatok skriptu nastav ľubovoľnú voľnú premennú (napr. $u a nech sa rovná na začiatku počtu záznamov. Teda ak máš počet v premennej $pocet, tak $u = $pocet). Každým prebehnutím hlavného cyklu znižuješ $u vždy o jedna. To znamená, že ak budeš mať sedem záznamov v databáze, vypíše sa (pri troch stĺpcoch) tabuľka s veľkosťou 3x3, čo je 9, takže posledné dva záznamy musia ostať prázdne.
Jednotlivé bunky môžeš vypisovať vedľajším cyklom, ktorý je v hlavnom cykle. V premennej $u máš vlastne počet zostávajúcich záznamov, ktoré musíš vypísať. Ak je $u väčšie ako nula, vypíšeš záznam. Ak nie, prázdny tag <td></td>.
Schématicky asi takto:
Kód: <?php // ostatne potrebne premenne (pocet zaznamov, pocet stlpcov,...) $u = $pocet; for(...) { // hlavný cyklus vypisuje celé riadky tabuľky echo "<tr>"; for(...) { // vedľajší cyklus vypisuje jednotlivé bunky - overenie podmienkou $u = $u-1; if($u >= 0){ echo "<td>vypises zaznam</td>"; } else { echo "<td>[prazdne]</td>"; } } echo "</tr>"; } ?>
_________________ always is always wrong |
|
Registrovaný: 27.07.07 Príspevky: 3948 Témy: 51 | 51 Bydlisko: Bratislava |
Len doplnim, ze sa to da spravit aj cez jeden cyklus, pripadne aj bez neho...
_________________ NTB: Acer Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB | RAM: 8GB DDR3 1066 MHz | HDD: 1TB SSD WD BLUE |
|
Registrovaný: 24.01.08 Prihlásený: 13.09.17 Príspevky: 14572 Témy: 66 | 66 Bydlisko: Žilina |
Kto sa nespýta, ostane hlúpy...
Jedným cyklom samozrejme, v tom máš 100% pravdu, ale bez cyklu? Mohol by si dať ukážku na vypísanie obsahu kolekcie do html tabuľky bez akéhokoľvek cyklu?
_________________ C#, PHP, ... |
|
Registrovaný: 27.07.07 Príspevky: 3948 Témy: 51 | 51 Bydlisko: Bratislava |
Samozrejme som vychadzal z toho, ze vsetky data ziskane z db su ulozene v jednom poli, potom nie je problem vypisat udaje aj bez cyklu. Pre lepsiu predstavu uvediem este cast kodu. Zaklad by mohol vypadat napriklad takto:
Kód: array_walk(array_chunk($data, $cols), 'printr', $cols);
kde $cols predstavuje pozadovany pocet stlpcov tabulky a $data je pole so vsetkymi potrebnymi udajmi z db. Cez funkciu printr sa uz len vypisu jednotlive riadky tabulky.
_________________ NTB: Acer Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB | RAM: 8GB DDR3 1066 MHz | HDD: 1TB SSD WD BLUE |
|
Registrovaný: 25.05.13 Prihlásený: 10.06.13 Príspevky: 2 Témy: 0 | 0 |
vedel by mi niekto pomôcť a zahrnúť mi to do môjho kódu ? Chcel by som to isté, iba s inými parametrami a neviem ako to tam mám zakomponovať. Proste 3 produkty do jedného riadku a ďalšie 3 do ďalšieho atď. Vedel by mi s tým niekto pomôcť ? Kód: <? //nastavenia pripojenia k DB
$sql="SELECT * FROM $tbl_name"; $result=mysql_query($sql); ?> <? while($rows=mysql_fetch_array($result)){ ?> <table bgcolor="green"> <tr> <td><img src="<? echo $rows['foto']; ?>" style="height:120px;"></td> </tr> <tr> <td><font color="white" face="Arial" size="2"><? echo $rows['meno']; ?></font></td> </tr> </table> <?}?>
|
|
Registrovaný: 11.10.09 Prihlásený: 23.06.22 Príspevky: 289 Témy: 51 | 51 Bydlisko: Kysucké Nov... |
Ja by som dodal, že to čo požaduješ by možno bolo lepšie riešiť inou cestou ako tabuľkami. Teda napríklad nečislovaným zoznamom <ul> a položkami <li> pričom by si mal <li> cez CSS nastylované tak, aby sa na každý riadok vošli 3. (samozrejme môžeš použiť aj <div> prípadne hocičo iné, zoznam som uviedol iba ako príklad.)
_________________ cpu intel c2q9550, 2.83GHz @ 3.91 GHz gpu asus eah4890 hdti 1GD5 1Gb ddr5 pcx zakl.doska asus p5q e HDD samsung 1Tb sata2 32Mb ram a-data ddr2 4x2Gb 1066+MHz Extreme zdroj fortron everest 600w 80+ skrinka enermax staray blue monitor LG 23" LCD W2343T-PF 2ms FULL HD DVI reproduktory Creative T6100 5.1 |
|
Registrovaný: 11.08.07 Príspevky: 4088 Témy: 34 | 34 Bydlisko: Brno |
Vsak vypisuje tabulkove data, naco by pouzival cokolvek ine ako tabulky?
|
|
Registrovaný: 28.04.11 Prihlásený: 25.11.24 Príspevky: 296 Témy: 27 | 27 Bydlisko: Martin/Brno |
Podla mna ma pravdu, ze sa do jedneho riadku dava zoznam(<ul>) lepsie ako tabulky. Ked uz tabulky asi by som na to siel tak ze ked je zvysok po deleni tromi rovny 0 dal by som tam </tr><tr>.
|
|
Registrovaný: 25.05.13 Prihlásený: 10.06.13 Príspevky: 2 Témy: 0 | 0 |
vedeli by ste mi to presne do kódu dosadiť ?
|
|
Registrovaný: 11.10.09 Prihlásený: 23.06.22 Príspevky: 289 Témy: 51 | 51 Bydlisko: Kysucké Nov... |
Ďuri píše: Vsak vypisuje tabulkove data, naco by pouzival cokolvek ine ako tabulky? Pretože to až tak úplne tabuľkové dáta nie sú, keďže sám píše, že potrebuje vypísať 3 produkty do riadku. Ak by sme sa bavili o čistom pojme tabuľkové dáta, je to niečo také, že máš hore hlavičku (napr.: ID, Názov, Dátum, ..., Akcia - Vymazať, Upraviť,...) a v riadkoch máš jednotlivé položky. Ono nechcem sa hádať o tabuľkových dátach, iba som načrtol jednoduchšie riešenie, nemusí sa dopočítavať počet buniek na konci a podobne, ak si všimneš väčšina eshopov to má rovnako ako píšem.
_________________ cpu intel c2q9550, 2.83GHz @ 3.91 GHz gpu asus eah4890 hdti 1GD5 1Gb ddr5 pcx zakl.doska asus p5q e HDD samsung 1Tb sata2 32Mb ram a-data ddr2 4x2Gb 1066+MHz Extreme zdroj fortron everest 600w 80+ skrinka enermax staray blue monitor LG 23" LCD W2343T-PF 2ms FULL HD DVI reproduktory Creative T6100 5.1 |
|
Stránka: 1 z 1
| [ Príspevkov: 13 ] | |
|