Veröffentlicht 22. März 200520 j Hilfe ich drehe mich im Kreise!! :beagolisc Ich möchte Daten aus einer mysql Tabelle auslesen (mit php) und diese Daten dann einer statischen HTML Tabelle übergeben. Z.b. 10 Datensätze auslesen und von links nach rechts in Spalten füllen.Somit könnte ich dann weitere Zellen anfügen und diese weiter verarbeiten. Vielen Dank für Deine Hilfe!?
22. März 200520 j Ich weiss nicht, ob ich dich richtig verstanden habe aber wenn du nur Tabellenzellen haben willst dann geht doch sowas: out.println("<table>"); out.println("<tr>"); for(int i=0; i < databaseRecords.length; i++) { out.println("<td>"; out.println(databaseRecords[i].getContent()); out.println("</td>"; } out.println("</tr>"); out.println("</table>"); Ist zwar nicht PHP aber ich denke das Prinzip sollte klar sein
22. März 200520 j Was meinst du mit "statisch"? Dynamisch ist es ja dann doch, da du außerhalb PHPs nicht weißt, wieviele Zeilen es letztendlich werden. Ansonsten ist der Ansatz von perdi richtig: <table> <?php $rh = mysql_query("SELECT ...",$db) or die("Fehler!"); while (($result = mysql_fetchrow($rh)) !== NULL) //Hoffe, daß ich das noch richtig im Kopf hab print "<tr><td>".$result[0]."</td><td>".$result[1]. ... ."</td></tr>"; ?> </table> [/PHP] EDIT: Die Print-Anweisung kannst du natürlich auch noch mal in eine Schleife packen, um die Anzahl der Spalten variabel zu machen. Ermittelt wird jene mit count($result) (glaub ich ).
22. März 200520 j <table> <?php $rh = mysql_query("SELECT ...",$db) or die("Fehler!"); while (($result = mysql_fetchrow($rh)) !== NULL) //Hoffe, daß ich das noch richtig im Kopf hab print "<tr><td>".$result[0]."</td><td>".$result[1]. ... ."</td></tr>"; ?> </table>[/PHP] Fast, es heißt mysql_fetch_row() und nicht mysql_fetchrow. PHP schmeißt dich automatisch raus, wenn es keine Inhalte gibt, also muss eine Prüfung auf NULL nicht wirklich sein, wenn error_reporting in der php.ini deaktiviert ist, kann man es im else-Zweig ausgeben. Also z. B. so: [php]<?php // hier sollte die DB-Abfrage stehen ?> <table> <tr> <?php while($result = mysql_fetch_row($rh)) { ?> <td><?php echo $result[1]; ?></td> <?php } else { echo mysql_error(); } ?> </tr> </table>
22. März 200520 j Danke für die schnellen Antworten! :cool: Das probier ich doch gleich mal aus. melde mich dann wieder.
22. März 200520 j Ich habe das so codiert wie Du mir es geschrieben hast. Funktioniert gut jedoch hat das Ganze noch einen kleinen Fehler. Wenn ich dies so ausgebe macht er mir eine zig.spaltige Tabelle. Ich möchte nun jedoch nach einem Durchgang einen Tabellenumbruch generieren. Das heisst nach acht Daten soll die Tabelle auf der nächsten Zeile weitergehen und wieder acht Daten ausgeben u.s.w. Irgendwo muss ich doch einen <br> einbauen oder sowas ?? Hier mein Codeschnipsel: //Datenbank abfrage $res = mysql_query("select * from reisemobile ORDER BY id ASC"); ?> <table width="180" border="1" cellspacing="2" cellpadding="0"> <tr> <?php while($result = mysql_fetch_row($res)) { ?> <td><?php echo $result[1]; ?></td> <td><?php echo $result[2]; ?></td> <td><?php echo $result[3]; ?></td> <td><?php echo $result[4]; ?></td> <td><?php echo $result[5]; ?></td> <td><?php echo $result[6]; ?></td> <td><?php echo $result[7]; ?></td> <td><?php echo $result[8]; ?></td>//Hier sollte ein Zeilenumbruch/Tabellenumbruch rein <?php } ?> </tr> </table> Gruss
22. März 200520 j <table width="180" border="1" cellspacing="2" cellpadding="0"> <tr> <?php $counter=0; while($result = mysql_fetch_row($res)){ $counter++; echo "<td>".$result[1]."</td>"; if($counter%8==0){ echo "</tr><tr>"; } } ?> </tr> </table> ungetestet Gruß Jaraz
22. März 200520 j Toll von Euch!! Ich habe das Problem mit eurer Hilfe endlich gelöst. Hat nur noch an der richtigen Stelle ein <tr></tr> gefehlt. :bimei Danke Wie es so ist kommt nach einem gelösten Knopf der nächste!!!! Siehe neuen Eintrag
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.