Autor | Zpráva | ||
---|---|---|---|
michalux Profil |
#1 · Zasláno: 21. 11. 2014, 13:17:37
Ahoj, poprosím zkušené o radu.
Potřebuju vypsat do tabulky celou tabulku databáze, ale nevím kolik má sloupců, takže to nejde napasovat na jednoduchý výpis do tabulky: $q = mysql_query("SELECT * FROM tabulka"); while ($a = MySQL_Fetch_Array($q)){ $id=$a["ID"]; $cinnost=$a["cinnost"]; echo '<tr><td>'.$id.'</td><td>'.$cinnost.'</td><td></tr>';} Už jsem přišel na to, jak dynamicky vypisovat záhlaví tabulky: $q = mysql_query("SELECT * FROM tabulka"); $pocet_sloupcu = mysql_num_fields($q); for ($i=0; $i<mysql_num_fields($q); $i++) { echo("<td>".mysql_field_name($q, $i)."</td>"); } Ale na podobný způsob, kterým bych vypsal řádky, aniž bych proměnnými specifikoval počet sloupců se mi přijít nepodařilo. Budu rád za každou radu :) |
||
juriad Profil |
while ($row = mysql_fetch_row($q)) { echo "<tr>"; for ($i = 0; $i < mysql_num_fields($q); $i++) { $col = mysql_field_name($q, $i); echo "<td>" . $row[$col] . "</td>"; # nebo jednodušeji: $row($i) bez potřeby $col } echo "</tr>"; } |
||
Kajman Profil |
#3 · Zasláno: 21. 11. 2014, 13:55:39
Lepší bude to $row[$i], kdyby tam byly dva sloupce se stejným názvem.
$q = mysql_query("SELECT * FROM tabulka"); $pocet_sloupcu = mysql_num_fields($q); echo "<table><thead><tr>"; for ($i=0; $i<$pocet_sloupcu; $i++) { echo "<th>".htmlspecialchars(mysql_field_name($q, $i))."</th>"; } echo "</tr></thead><tbody>"; while ($a = MySQL_Fetch_Array($q)) { echo "<tr>"; for ($i=0; $i<$pocet_sloupcu; $i++) { echo "<td>".nl2br(htmlspecialchars($a[$i]))."</td>"; } echo "</tr>"; } echo "</tbody></table>"; |
||
michalux Profil |
#4 · Zasláno: 21. 11. 2014, 15:48:54
V první variantě se mi nějak nechtěly zobrazovat hodnoty - vykreslily se řádky tabulky, ale byly prázdné. Nevím kde byla chybka :)
Kajmanova varianta funguje dokonale. Děkuji mnohokrát :-) |
||
juriad Profil |
#5 · Zasláno: 21. 11. 2014, 15:56:31
michalux:
Jo, pomotal jsem funkce mysql_fetch_row a mysql_fetch_array. Pak ještě existuje mysql_fetch_assoc. Všechny vrací pole, ale pokaždé trošku jinak. |
||
michalux Profil |
#6 · Zasláno: 21. 11. 2014, 18:32:24
Ještě doplňující dotaz...
Cyklem si vypíšu hodnoty a doplním je do formuláře, respektive do <inputů>: echo '<form method="post">'; ... for ($i=0; $i<$pocet_sloupcu; $i++) { echo '<td><input type="text" name="'.htmlspecialchars(mysql_field_name($q, $i)).'" value="'.nl2br(htmlspecialchars($a[$i])).'" /></td>'; } ... echo '</form>'; A řeším, co dál, když odešlu formulář. Potřebuju updatovat hodnoty v databázi hodnotami které přijdou z inputů, ale nevím jak je přijmout, když nevím jaké hodnoty přijdou a kolik jich bude. Existuje řešení? Díky :-) |
||
juriad Profil |
#7 · Zasláno: 23. 11. 2014, 23:18:17
Podobné vlákno, třeba pomůže: Formulář a vícenásobný input
|
||
Časová prodleva: 9 let
|
0