| 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: 11 let
|
|||
0