DB in Tabelle ausgeben..

medico

Erfahrenes Mitglied
Hallo,

ich habe mal ne frage und zwar wenn ich eine Msql abfrage mache kann ich sie ja ganz einfach in eine Tabelle ausgeben lassen. Klappt alles wunderbar.

Nun möchte ich aber das es in mehreren Spalten ausgegeben wird, wie stelle ich das an?

Sollte so aussehen:
+-------------+-------------+-------------+-------------+
| ID 1 | ID 3 | ID 5 | ID 7 |
+-------------+-------------+-------------+-------------+
| ID 2 | ID 4 | ID 6 | ID 8 |
+-------------+-------------+-------------+-------------+

Naja so in der Art...zeigt es ein wenig falsch an hier im Forum :)

Geht das?

gruß Medico
 
Zuletzt bearbeitet:
Sorry, hätte vielleicht erwähnen müssen das ich blutiger anfänger bin....

Ich habe das bis jetzt so geregelt:
PHP:
<html>
<body>

<?
//Verbindung herstellen
$db = mysql_connect("localhost", "xxx", "xxx");
mysql_select_db("xxx",$db);

//Daten auslesen
$result = mysql_query("SELECT * FROM xxx ORDER BY id DESC",$db);

?>

<? while ($daten = mysql_fetch_array($result)) { ?>

</div>
<p>&nbsp;</p>
<table border="1" cellpadding="0" cellspacing="0" style="border-collapse: collapse" width="50%" id="table1">
	<tr>
		<td><? echo $daten[id]; ?></td>
	</tr>
	<tr>
		<td><? echo $daten[name]; ?></td>
	</tr>
	<tr>
		<td><? echo $daten[ort]; ?></td>
	</tr>
</table>
<?
}
?>
</body>
</html>

Und das möchte ich halt gerne auf drei Spalten verteilt haben.

Gruß Medico
 
Hallo!

Probiers mal so:

PHP:
<html>
<body>

<? // Du legst deine jetzige Tabelle einfach in eine Zelle einer anderen Tabelle ?>
<table align=center>
<tr>
<?
//Verbindung herstellen
$db = mysql_connect("localhost", "xxx", "xxx");
mysql_select_db("xxx",$db);

//Daten auslesen
$result = mysql_query("SELECT * FROM xxx ORDER BY id DESC",$db);

// Dieser Zähler für die Anzahl der Spalten, den lässt du in deiner 
// Schleife mitlaufen und je nach Zählerstand, schließt du nur die Zelle 
// oder auch die Zeile und fängst eine neue an.
// Das funktioniert dann über die IF-Abfragen (die sind ungetestet, da mußt du evtl.
// ein wenig experimentieren.

$zaehler=1;
while ($daten = mysql_fetch_array($result)) { ?>

<td width=200 valign=top>

<table border="1" cellpadding="0" cellspacing="0" style="border-collapse: collapse" width="50%" id="table1">
    <tr>
        <td><? echo $daten[id]; ?></td>
    </tr>
    <tr>
        <td><? echo $daten[name]; ?></td>
    </tr>
    <tr>
        <td><? echo $daten[ort]; ?></td>
    </tr>
</table>

<?
if ($zaehler=="1" or $zaehler=="2") 
		{
		echo "</td>";
		$zaehler++;	
		}
	
	else {
		echo "</td></tr><tr>";
		$zaehler=1;
		}
}

// Ja und am Schluß schließt du die Tabelle wieder
?>
</table>
</body>
</html>

An diesem Beispiel siehst du wie sowas funktioniert, habe das bei
mir selber mit 2 Spalten so gemacht.

mfg Hoizwurm
 
Hi!

Ich hab mich hier schon kräftig durchgelesen, habe aber leider keine Antwort auf mein Problem gefunden. Wir machen in der Schule ein Gästebuch und eine Linkliste mit PHP und mySQL. Ich versuche schon die ganze Zeit die Einträge auszugeben, bekomme es aber überhaupt nicht hin :(

Hier mal mein bisheriger Quelltext der Linkliste

PHP:
<?php

/* Verbinden zur Datenbank */
// Datenbankhost
$db_host = "xxx";

// Datenbankusername
$db_user = "xxx";

// Datenbankpasswort
$db_pw = "xxx";

// Datenbankname
$db = "xxx";

@mysql_connect($db_host, $db_user, $db_pw);

@mysql_select_db($db);


/* Abfragen der benötigten Daten */
$result=mysql_query("SELECT * FROM links") or die (mysql_error());

while ($daten = mysql_fetch_array($result)) {
			  		
		   echo"<table border=\"0\" width=\"80%\" align=\"center\"\n"
		    ."\t<tr>\n"
			."\t\t<td width=\"10%\">Eintrag Nr.<strong>$daten[id]</strong></td>\n"
			."\t\t<td>von <a href=\"mailto:$daten[email]\">$daten[username]</a></td></tr>\n"
			."\t\t<td width=\"10%\">Adresse:</td>\n"
			."\t\t<td><a href=\"$daten[url]\">$daten[url]</a></td>\n"
			."\t</tr><tr>\n"
			."\t\t<td width=\"10%\">Beschreibung:</td>\n"
			."\t\t<td>&nbsp;</td></tr><td>&nbsp;</td>\n"
			."\t\t<td>$daten[beschreibung]</td>\n"
			."\t</tr>\n"}
			."</table>"
	
?>

Es wird nichts angezeigt! Zum Testen: http://abi04.hetti.com/fertig2.php
Ohne die while-Angabe wird etwas angezeigt, aber nur der erste Eintrag
(http://abi04.hetti.com/fertig.php)
Hoffe, mir kann da jemand bei helfen. thx

ciao, Hetti
 
Zuletzt bearbeitet:
*nach oben schieb*

kann mir denn niemand helfen
ich hab die anderen Beiträge schon gelesen, aber die helfen mir alle nicht weiter :(
 
Moin !

Schreib mal sauberen Code so mit Leerzeichen und Einrückungen und so Gedöns... Dann hättest du deinen Fehler bestimmt auch selbst gefunden:

PHP:
while ($daten = mysql_fetch_array($result)) {
    echo "<table border=\"0\" width=\"80%\" align=\"center\"\n"
    ."\t<tr>\n"
    ."\t\t<td width=\"10%\">Eintrag Nr.<strong>$daten['id']</strong></td>\n"
    ."\t\t<td>von <a href=\"mailto:$daten['email']\">$daten['username']</a></td></tr>\n"
    ."\t\t<td width=\"10%\">Adresse:</td>\n"
    ."\t\t<td><a href=\"$daten['url']\">$daten['url']</a></td>\n"
    ."\t</tr><tr>\n"
    ."\t\t<td width=\"10%\">Beschreibung:</td>\n"
    ."\t\t<td>&nbsp;</td></tr><td>&nbsp;</td>\n"
    ."\t\t<td>$daten['beschreibung']</td>\n"
    ."\t</tr>\n"
    ."</table>";
}

vielleicht funktioniert es so :) ich würde es trotzdem anders machen

PHP:
unset($page);

while ($daten = mysql_fetch_array($result)) {
    $page .= '<table>'."\n";
    $page .= '<tr>'."\n";
    $page .= '    <td>Eintrag Nr. <strong>'.htmlspecialchars($daten['id']).'</strong></td>'."\n";
    $page .= '    <td>Eintrag von <a href="mailto:'.htmlspecialchars($daten['email']).'">'.htmlspecialchars($daten['username']).'</a></td>'."\n";
    $page .= '</tr>'."\n";
    ...
}
echo($page);

Die vielen $page .= '...'; stehen da nur der Übersichtlichkeit halber, aber sind auch so noch wesentlich performanter als ständige echos weil nur einmal zum Schluss ein echo stattfindet.

Gruß thing

[edit]Was mich nur wundert ist dass du keinen Parse error für die while-Schleife bekommst...[/edit]
 
Zuletzt bearbeitet:
deine Variante funktioniert auch nicht. Ich krieg, sobald ich ne while-Schleife einbaue, gar nix angezeigt. Noch nciht mal ne Fehlermeldung! Bin auf diesem Gebiet absoluter Newbie. Bisher lief alles eigentlich ziemlich gut, nur beim Ausgeben klappt garnix. Daten eintragen und so funktioniert ... :(
 
Moin !

Mach mach

while ($daten[] = mysql_fetch_array($result)) {}
print_r($daten);

und sag mal ob du da was zu Gesicht bekommst.

Gruß thing
 

Neue Beiträge

Zurück