Probleme bei Array-Zerlegung.

Moritz123

Erfahrenes Mitglied
Hallo!

ich habe folgenden Wert in meinem Tabellenfeld "sd" meiner MySQL-Datenbank:
Rohlayout:100|Umsetzung HTML:75|testwert2:150

Dies möchte ich nun folgendermaßen in einer Tabelle ausgeben:
Code:
| Name                   | Wert |
----------------------------------------
| Rohlayout             | 100   |
----------------------------------------
| Umsetzung HTML  | 75    |
usw..

ich habe das jetzt wie folgt realisiert:
PHP:
$abfrage = "SELECT sd FROM projekte WHERE user_id = '$_SESSION[user_id]' AND pid = '$_POST[pid]'";
			//echo $ausgabe;
			$ausgabe = mysql_query($abfrage);
			$num = mysql_num_rows($ausgabe);
			if ($num > 0) {while ($row = mysql_fetch_object($ausgabe)){
					$a = $row->sd;
					echo $a;
			}}
			$a = explode("|", $a);
			$i = 0;
			$z = 0;
			for($i=0;$i<=(count($a));$i++){
				$b = explode(":",$a[$i]);
				for($z=0;$z<=count($b);$z++){
			?>
          <tr bgcolor="#FFFFFF" class="nav_sub">
		    <td width="30%" valign="top"><img src="_images/spacer.gif" width="3" border="0"><?=$b[0];?></td>
            <td width="70%" valign="top"><img src="_images/spacer.gif" width="3" border="0"><?=$b[1];?> %</td>
		  </tr>
		  <?php }} ?>
       </table>
Was jetzt ausgegeben wird, ist äußerst komisch, denn alles erscheint dreimal.

Ich versteh das nicht, habe aber mal aus reinem Interesse das erste "count()" ersetzt durch "count()-1" und das zweite ersetzt durch "0" und dann klappt es. Komisch,komisch...

Ich hoffe Ihr könnt mir da weiterhelfen, stehe etwas auf dem Schlauch...
Vielen Dank!
 
Hi!

Du gibst schon eine ganze Tabellenzeile aus. Allerdings innerhalb einer for-Schleife, die sooft wiederholt wird, wie es Elemente von $b + 1 gibt.

Wenn du auf die for($z=0;...)-Schleife verzichtest, sollte alles problemlos funktionieren.

Mamphil
 
Zurück