Schleifenfrage

GodWar

Erfahrenes Mitglied
Guten Tag!

Ich wollte eigendlich noch eine Infozeile über jede Ausgabe bekommen! Schaff es aber einfach nicht :/

So sieht es momentan aus:
PHP:
echo "<table border='0' cellspacing='5' cellpadding='0'>";
			while($row = mysql_fetch_array($result))
				{  
				$i++;
				if($i=='1')
				{
					echo "<tr>\n";
				}
				echo "<td title=\"ID: $row[id] | Name: $row[name] | Uploader: $row[uploader] | Klicks: $row[klicks]\" class=\"gideos_tabelle_gesamt\"><embed style=\"width:345px; height:300px;\" id=\"VideoPlayback\" align=\"middle\" type=\"application/x-shockwave-flash\" src=\"$row[link]\" allowScriptAccess=\"sameDomain\" quality=\"best\" bgcolor=\"#ffffff\" scale=\"noScale\" wmode=\"window\" salign=\"TL\"  FlashVars=\"playerMode=embedded\"></embed></td>\n";
				if($i=='2')
				{
					$i = ''; 
					echo "</tr>\n";
				} 
			}
echo "</table>";

Die Tabelle sollte eigendlich so aussehen:
PHP:
<table width="100" border="0" cellspacing="0" cellpadding="0">
  <tr>
    <td>Info 1</td>
    <td>Info 2</td>
  </tr>
  <tr>
    <td>ID 1</td>
    <td>ID 2</td>
  </tr>
  <tr>
    <td>Info 3</td>
    <td>Info 4</td>
  </tr>
  <tr>
    <td>ID 3</td>
    <td>ID 4</td>
  </tr>
</table>
 
Kommt die Info auch aus der DB?

Also wenn ich dich richtig verstehe, ist das was du vorhast nicht so ohne weiteres möglich..
Ich würde dir zu Templates raten.. Lies dir alle Daten aus der DB aus und ersetze anschliessend die Platzhalter im Template damit.. So wäre es eigentlich ziemlich simpel..

Ps.: Bei deinen if-Abfragen muss es heissen:

PHP:
if ($i == 1)
und nicht
PHP:
if ($i == '1')
Du prüfst hier einen numerischen Wert und keinen String..
 
Zuletzt bearbeitet:
Du solltest den Zähler $i zurücksetzen oder einen anderen Vergleich (etwa Modulo) benutzen.
 
$i setzt ich ja zurück damit er nach 2 Einträgen eine neue Zeile anfängt! Aus der DB lses ich natürlichauch aus!

Also nochmal:

Momentan gibt er folgendes Beispiel aus:
HTML:
<table>
  <tr>
    <td>ID 1</td>
    <td>ID 2</td>
  </tr>
  <tr>
    <td>ID 3</td>
    <td>ID 4</td>
  </tr>
</table>

Diese wird hiermit erstellt:

PHP:
<?
			$sql = "SELECT * FROM ".$dbprefix."_gideos WHERE activ='1' ORDER BY id ASC";  
			$result = mysql_query($sql) or die(mysql_errno().":".mysql_error());   
			$count = mysql_num_rows($result);  

			echo "<table border='0' cellspacing='5' cellpadding='0'>";
			
			while($row = mysql_fetch_array($result))
				{  
				$i++;
				if($i==1)
				{
					echo "<tr>\n";
				}
				echo "<td>$row[id]</td>\n";
				if($i==2)
				{
					$i = ''; 
					echo "</tr>\n";
				} 
			}
			echo "</table>";
?>

Folgendermaßen sollte die Tabelle aber aussehen damit über jeder Zeile wo sich eine ID befindet noch eine Zeile eingefügt wird mit Inforamtionen zu der ID:

HTML:
<table>
  <tr>
    <td>Info 1</td>
    <td>Info 2</td>
  </tr>
  <tr>
    <td>ID 1</td>
    <td>ID 2</td>
  </tr>
  <tr>
    <td>Info 3</td>
    <td>Info 4</td>
  </tr>
  <tr>
    <td>ID 3</td>
    <td>ID 4</td>
  </tr>
</table>
 
Du willst Daten aus Datensatz 1 und Datensatz 2 in einer Zeile.. In der nächsten Zeile dann wieder Daten aus 2 Datensätzen..
So wie du das machen willst, muss du ja aber auch irgendwann mal den <tr>-Tag schliessen..
Das geht zwar, ist aber meiner Meinung nach zu aufwendig.. Deswegen empfehle ich dir nochmals Templates zu benutzen..
 
Zurück