anpera.net https://anpera.dyndns.org/phpbb3/ |
|
Werte werden doppelt angezeigt https://anpera.dyndns.org/phpbb3/viewtopic.php?f=34&t=1563 |
Seite 1 von 1 |
Autor: | Tronan [ Fr 15 Jul, 2005 13:45 ] |
Betreff des Beitrags: | Werte werden doppelt angezeigt |
Bei einem neuen Hack soll er Werte aus einer DB auslesen und dann in einer Tabelle darstellen. Damit die Hintergrundafrben in der tabelle abwechslend hell und dunkel sind habe ich folgendes gemacht: [php]output("<table border=0 cellpadding=2 cellspacing=1 bgcolor='#999999'>",true); output("<tr class='trhead'><td><b>XXX</b></td><td>XXX</td><td>XXX</td><td>Optionen</td></tr>",true); $sql2 = "SELECT id,xxx,xxx,xxx FROM xxx"; $result2 = db_query($sql2); $max = db_num_rows($result2); while($row2 = db_fetch_assoc($result2)){ for($i=0;$i<$max;$i++){ output("<tr class='".($i%2?"trdark":"trlight")."'><td>".$row2[xxx]."</td>",true); output("<td>".$row2[xxx]."</td>",true); output("<td>".$row2[xxx]."</td>",true); output("<td><a href='xxx.php?op=xxx&xxx=".$row2[id]."'>XXX</a></td>",true); output("</tr>",true);[/php] Allerdings zeigt er jeden Wert zweimal untereinader völlig indentisch an, obwohl er nur einmal in der DB steht. Kann mir jemand helfen? P.S.: Das mit den xxx ist nur, damit mir keiner meine Idee klaut =) |
Autor: | Kevz [ Fr 15 Jul, 2005 14:59 ] |
Betreff des Beitrags: | |
Versuch es mal so: [php] [...] output("<table border=0 cellpadding=2 cellspacing=1 bgcolor='#999999'>",true); output("<tr class='trhead'><td><b>XXX</b></td><td>XXX</td><td>XXX</td><td>Optionen</td></tr>",true); $sql = "SELECT id,xxx,xxx,xxx FROM xxx"; $result = db_query($sql); while($row = db_fetch_assoc($result)){ output("<tr class='".($i%2?"trdark":"trlight")."'><td>".$row[xxx]."</td>",true); output("<td>".$row[xxx]."</td>",true); output("<td>".$row[xxx]."</td>",true); output("<td><a href='xxx.php?op=xxx&xxx=".$row[id]."'>XXX</a></td>",true); output("</tr>",true); } [...] [/php] Was mich wundert wieso machst du ne While und haust dann noch folgendes dran: [php] [...] for($i=0;$i<$max;$i++){ [...] [/php] Das macht garkeinen Sinn...darum wurden auch zwei werte angezeigt |
Autor: | Tronan [ Do 04 Aug, 2005 10:51 ] |
Betreff des Beitrags: | |
Danke, danke lieber Kev |
Autor: | Eliwood [ Do 04 Aug, 2005 14:41 ] |
Betreff des Beitrags: | |
Kevz hat geschrieben: [php]
[...] output("<table border=0 cellpadding=2 cellspacing=1 bgcolor='#999999'>",true); output("<tr class='trhead'><td><b>XXX</b></td><td>XXX</td><td>XXX</td><td>Optionen</td></tr>",true); $sql = "SELECT id,xxx,xxx,xxx FROM xxx"; $result = db_query($sql); while($row = db_fetch_assoc($result)){ output("<tr class='".($i%2?"trdark":"trlight")."'><td>".$row[xxx]."</td>",true); output("<td>".$row[xxx]."</td>",true); output("<td>".$row[xxx]."</td>",true); output("<td><a href='xxx.php?op=xxx&xxx=".$row[id]."'>XXX</a></td>",true); output("</tr>",true); } [...] [/php] Du zählst überhaupt $i nicht hoch ![]() [php] [...] output("<table border=0 cellpadding=2 cellspacing=1 bgcolor='#999999'>",true); output("<tr class='trhead'><td><b>XXX</b></td><td>XXX</td><td>XXX</td><td>Optionen</td></tr>",true); $sql = "SELECT id,xxx,xxx,xxx FROM xxx"; $result = db_query($sql); $i = 0; while($row = db_fetch_assoc($result)){ output("<tr class='".($i%2?"trdark":"trlight")."'><td>".$row[xxx]."</td>",true); output("<td>".$row[xxx]."</td>",true); output("<td>".$row[xxx]."</td>",true); output("<td><a href='xxx.php?op=xxx&xxx=".$row[id]."'>XXX</a></td>",true); output("</tr>",true); $i++; } [...] [/php] |
Autor: | Kevz [ Do 04 Aug, 2005 15:46 ] |
Betreff des Beitrags: | |
Musst ja auch nit ![]() Hab nur vergessen des $i zu ändern ![]() |
Autor: | Eliwood [ Do 04 Aug, 2005 15:52 ] |
Betreff des Beitrags: | |
"Damit die Hintergrundafrben in der tabelle abwechslend hell und dunkel sind" Er wollte aber abwechslungsweise trlight und trdark, mit for kein Problem, mit while muss man den counter noch dazu machen... Es sei den, es gibt auch einen anderen Weg ![]() Und wie das $i ändern? |
Autor: | Tronan [ Do 04 Aug, 2005 16:06 ] |
Betreff des Beitrags: | |
Eliwood hat geschrieben: "Damit die Hintergrundafrben in der tabelle abwechslend hell und dunkel sind"
Er wollte aber abwechslungsweise trlight und trdark, mit for kein Problem, mit while muss man den counter noch dazu machen... Es sei den, es gibt auch einen anderen Weg ![]() Und wie das $i ändern? Mit Kevs Lösung gehts nämlich net :p Danke, aber ich verstehs net... Edit: Mit deiner auch nicht... |
Autor: | Chaosmaker [ Do 04 Aug, 2005 16:24 ] |
Betreff des Beitrags: | |
Man kann natürlich auch while und for zusammenmixen. Wird selten gemacht, finde ich aber eigentlich ganz hübsch (da man direkt erkennt, wovon die Schleife beeinflußt wird): for ($i=0; $row=db_fetch_assoc($result); $i++) { ... } |
Autor: | Tronan [ Do 04 Aug, 2005 16:43 ] |
Betreff des Beitrags: | |
Chaosmaker hat geschrieben: Man kann natürlich auch while und for zusammenmixen. Wird selten gemacht, finde ich aber eigentlich ganz hübsch (da man direkt erkennt, wovon die Schleife beeinflußt wird):
for ($i=0; $row=db_fetch_assoc($result); $i++) { ... } $row2 und $result2, aber ansonsten funktionierts super! Danke! Wenn du mir den Befehl auch noch erklären würdest, wärs noch besser XD |
Autor: | Chaosmaker [ Do 04 Aug, 2005 20:15 ] |
Betreff des Beitrags: | |
Das ist im Prinzip nix anderes als die for-Schleife, wie Du sie vorher auch hattest (mit $i). Der mittlere Teil ist die Prüfung, ob die Schleife fortgesetzt werden soll oder nicht. Meistens wird da geprüft, ob $i einen bestimmten Grenzwert nicht übersteigt. In diesem Fall wird aber einfach geprüft, ob noch ein Datensatz (=eine Zeile) vorhanden ist. |
Seite 1 von 1 | Alle Zeiten sind UTC + 1 Stunde |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |