Autor | Zpráva | ||
---|---|---|---|
Mortem Profil |
#1 · Zasláno: 18. 2. 2016, 14:17:08
Dobrý den mám takový dotaz umím obsah z databáze vypsat do tabulky otázkou je jak to vypsat třebas do 3 sloupců a automaticky další 3 pod to je to vůbec možné? Vrtá mi to hlavou..
![]() Nějak takto ![]() Děkuju moc za jakoukoliv odpověď |
||
mimochodec Profil |
#2 · Zasláno: 18. 2. 2016, 16:48:48
Při každém průchodu cyklu vypiš td. Průchody počítej. Až budou tři, udělej </tr><tr>. Před tím cyklem si ošetři, abys table a tr otevřel a po něm zajisti zavření tr a table.
|
||
Taps Profil |
#3 · Zasláno: 18. 2. 2016, 16:51:14
Urcite by slo uplatnit i modulo deleni
|
||
Časová prodleva: 12 dní
|
|||
Mortem Profil |
#4 · Zasláno: 1. 3. 2016, 14:56:01
Mortem:
Vůbec nevím maximálně se mi povedlo to vypsat pod sebe, ale to nechci .. ![]() ![]() Už jsem zkoušel ruzné věci nic nefungovalo. ![]() Takhle bych si to představoval 3 sloupce a pod sebe by se vypisovali další a další data.. |
||
RastyAmateur Profil |
Mortem:
Chceš tedy udělat to, co je na obrázku? HTML kód jsem vytvořil v živé ukázce... Ovšem ten ty asi nepotřebuješ. Tobě jde asi o výpis z databáze v tomto "tvaru". Nebylo to lehké, ale vymyslel jsem to! Myslím si sice, že existuje i lepší a kratší řešení, ovšem toto také funguje... Netestoval jsem to s databází, ale to pole jsem si uměle vytvořil... <?php $sql = mysqli_query($con, "SELECT * FROM knihy"); $sloupcu = 3; $array = array(); while($row = mysqli_fetch_assoc($sql)){ $array[] = array("nazev" => $row["nazev"], "autor" => $row["autor"]); } echo "<table>"; for($i=0; $i < ceil(count($array)/$sloupcu); $i++){ echo "<tr>"; for($ii=0; $ii < $sloupcu; $ii++){ if(!empty($array[($i*$sloupcu)+$ii])){ echo "<td>".$array[($i*$sloupcu)+$ii]["nazev"]."</td>"; } } echo "</tr>"; echo "<tr>"; for($ii=0; $ii < $sloupcu; $ii++){ if(!empty($array[($i*$sloupcu)+$ii])){ echo "<td>".$array[($i*$sloupcu)+$ii]["autor"]."</td>"; } } echo "</tr>"; echo "<tr>"; for($ii=0; $ii < $sloupcu; $ii++){ if(!empty($array[($i*$sloupcu)+$ii])){ echo "<td>Zobraz</td>"; } else{ break 2; } } echo "</tr><tr><td> </td><td> </td><td> </td></tr>"; } echo "</table>"; ?> |
||
Mortem Profil |
#6 · Zasláno: 1. 3. 2016, 20:26:20
RastyAmateur:
Wow, tak to bych vážně nesplácal funguje to skvěle! Moc vám děkuji :) |
||
RastyAmateur Profil |
#7 · Zasláno: 1. 3. 2016, 20:31:25
Mortem:
Není zač. Ona asi existuje i lepší varianta, bez toho pomocného pole, ale na tu jsem zatím nepřišel. Doufám, že kód je jasný. Pokud ne, tak se ptejte, protože při možné úpravě by bylo asi pozdě... |
||
juriad Profil |
#8 · Zasláno: 1. 3. 2016, 20:54:34
Nějak mi není jasné, proč celý jeden záznam není jedna buňka. Nebo ještě lépe, položka v seznamu. Pak je dokonce možné jen čistě pomocí media queries přeskládat tabulku do menšího počtu sloupců pro malé diplaye.
Například takto: Živá ukázka |
||
Mortem Profil |
RastyAmateur:
Ano na jakem principu to funguje jsem pochopil takže otázky nemám, ale přece jenom by asi byla :D nevím proč, ale když chci. echo "<td>".$array[($i*$sloupcu)+$ii]["autor"]."</td>"; Přiřadit třídu echo "<td class="test">".$array[($i*$sloupcu)+$ii]["autor"]."</td>"; Tak mi to vyhazuje erorr a nevím proč vždycky jsem to tak psal. Mortem: „ echo "<td class="test">".$array[($i*$sloupcu)+$ii]["autor"]."</td>"; “
Dobre už vím, špatné uvozovky někdy si přijdu opravdu jako dement. :D |
||
RastyAmateur Profil |
#10 · Zasláno: 1. 3. 2016, 21:51:02
juriad:
Dobrý nápad. Jak se tu celou dobu řeší výpis pomocí tabulky, nehledal jsem jiná řešení (a docela mě zarazilo, že to není tak jednoduché. Chtěl jsem objevit řešení...). |
||
Časová prodleva: 7 let
|
0