Portál AbcLinuxu, 12. května 2025 06:36
$r1 = mysql_query("SELECT * FROM mura "); $r2 = mysql_query("SELECT COLUMN_NAME FROM information_schema.columns WHERE table_name = 'mura' "); echo '<table>'; while ($row=mysql_fetch_assoc($r1)) { echo '<tr>'; while ($row2 = mysql_fetch_assoc($r2)) { echo <td><input type="text" name="'.$row2['COLUMN_NAME'].'['.$row['id'].']" value="'.$row[$row2['COLUMN_NAME']].'"/></td>'; } echo </tr>'; } echo '</table>';žádnou chybu to nehází, ale vypíše se to jen jednou (první řádek) i když je v mysql v tabulce mura asi 1000 řádku.. Poradí prosím někdo? Pokud by někdo věděl o lepším řešení, rád uvítám ;) Děkuji
Řešení dotazu:
$r2
se přečtou všechny výsledky, takže podruhé už není co číst. Jen se domnívám, že druhou tabulku načítáš zbytečně, stačí načíst tu první. Je to jen takový netestovaný nástřel, tak si musíš zbytek doladit:
$r1 = mysql_query("SELECT * FROM mura;"); echo '<table>'; while ($row=mysql_fetch_assoc($r1)) { echo '<tr>'; foreach($row as $key => $value) { echo '<td><input type="text" name="'.$key.'['.$row['id'].']" value="'.$value.'"/></td>'; } echo '</tr>'; } echo '</table>';Zajímavé, mně to odsazení od levého okraje nepolyká. Vnořené dotazy se dělají přímo na databázovém serveru, jinak dochází k přetížení databáze a degradaci jejího výkonu. Ovšem v tomto případě to zřejmě nebylo vůbec nutné.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.