datensatz 2-spaltig anzeigen?
Roger
- php
moin!
ich lese aus einer datenbank mehrere datensätze aus und lasse sie untereinander schreiben:
while ($tmp = @mysql_fetch_assoc($result))
{
echo $tmp['name'].'<br />';
}
aus platzmangel muss ich jetzt allerdings 2 tabellenspalten angeben, und diese füllen. wie mache ich das jetzt, dass die datensätze 2 spaltig dargestellt werden?
beispiel:
datensatz1 datensatz6
datensatz2 datensatz7
datensatz3 datensatz8
datensatz4
datensatz5
gruß.
roger.
hi,
wie mache ich das jetzt, dass die datensätze 2 spaltig dargestellt werden?
in dem du hübsche table-, tr- und td-tags darum herum bastelst ...?
beispiel:
datensatz1 datensatz6
datensatz2 datensatz7
datensatz3 datensatz8
datensatz4
datensatz5
nicht vielleicht eher:
datensatz1 datensatz5
datensatz2 datensatz6
datensatz3 datensatz7
datensatz4 datensatz8
?
da müsstest du zuerst mal ermitteln, wie viele datensätze es gibt - und diese dann korrekt in einer schleife abarbeiten:
erster DS erste zeile erste spalte,
(hälfte anzahl plus eins)-ter DS erste zeile zweite spalte,
dritter DS zweite zeile erste spalte,
(hälfte anzahl plus drei)-ter DS zweite zeile zweite spalte,
...
(alternative wären evtl. zwei einzelne tabellen, per CSS nebeneinander gebracht.)
einfacher wird's, wenn du stattdessen folgendermaßen ausgibst:
datensatz1 datensatz2
datensatz3 datensatz4
...
gruß,
wahsaga
moin!
nicht vielleicht eher:
datensatz1 datensatz5
datensatz2 datensatz6
datensatz3 datensatz7
datensatz4 datensatz8
jop, ich wollte nur die anordnung verdeutlichen und war zu faul weiter zu tippen :D
da müsstest du zuerst mal ermitteln, wie viele datensätze es gibt - und diese dann korrekt in einer schleife abarbeiten:
mysql_num_rows ist mein freund :)
einfacher wird's, wenn du stattdessen folgendermaßen ausgibst:
datensatz1 datensatz2
datensatz3 datensatz4
darauf wollte ich ja hinaus. nur wie ausgeben? wahrscheinlich muss ich das erst in ein array lesen und das dann per for-schleife auslesen. oder?
gruß.
roger.
moin!
darauf wollte ich ja hinaus. nur wie ausgeben? wahrscheinlich muss ich das erst in ein array lesen und das dann per for-schleife auslesen. oder?
gurk, ich wollte auf mein angegebenes beispiel hinaus. das hier ist aber auch brauchbar...
gruß.
roger.
Hallo
einfacher wird's, wenn du stattdessen folgendermaßen ausgibst:
datensatz1 datensatz2
datensatz3 datensatz4darauf wollte ich ja hinaus. nur wie ausgeben? wahrscheinlich muss ich das erst in ein array lesen und das dann per for-schleife auslesen. oder?
Die Datensätze liegen doch schon als Array vor. Da musst du nichts mehr umwandeln. Und die for ($a=0;...;$a++)
-Konstruktion kannst du dir auch sparen. Der Zähler kann nämlich auch folgendermaßen implementiert werden.
$a = 0;
while ($row = mysql_fetch_array($ergebnis_der_db_abfrage))
{
// deine Ausgabe der Datensaetze
// unter Verwendung des Zaehlers
$a++;
}
Tschö, Auge
moin!
$a = 0;
while ($row = mysql_fetch_array($ergebnis_der_db_abfrage))
}
mysql\_fetch\_array gibt aber imho nur immer alles zeilenweise aus.
gruß.
roger.
--
ich widersprech mir immer selber.
aber das passiert mir gott sei dank nie.
Hallo
mysql_fetch_array gibt aber imho nur immer alles zeilenweise aus.
Ja, das tut es. Das bedeutet aber auch, dass jede Zeile ein Element eines Arrays ist. Zudem gibt mysql_fetch_array()
seinerseits ein Array mit den abgefragten Spalten der DB-Tabelle zurück.
Tschö, Auge
moin!
Ja, das tut es. Das bedeutet aber auch, dass jede Zeile ein Element eines Arrays ist. Zudem gibt
mysql_fetch_array()
seinerseits ein Array mit den abgefragten Spalten der DB-Tabelle zurück.
ja, aber das ist genau das was ich sagte und hat absolut nix mit der problemlösung zu tun. weil da müssen ja die werte aus 2 zeilen/datensätzen ausgegeben werden.
gruß.
roger.
Hallo
Ja, das tut es. Das bedeutet aber auch, dass jede Zeile ein Element eines Arrays ist. Zudem gibt
mysql_fetch_array()
seinerseits ein Array mit den abgefragten Spalten der DB-Tabelle zurück.ja, aber das ist genau das was ich sagte und hat absolut nix mit der problemlösung zu tun. weil da müssen ja die werte aus 2 zeilen/datensätzen ausgegeben werden.
Ja und? Mit der Übertragung der Datensätze in ein natives PHP-Array stündest du vor genau dem gleichen Problem. Wenn du die Anzeige so machst:
DS 1 DS 2
DS 3 DS 4
DS 5 DS 6
Dann kannst du die Tabellenelemente, speziell das Eröffnen einer neuen Zeile bzw. das Schließen derselben, am Zähler festmachen.
$a = 0;
while ($row = mysql_fetch_array($ergebnis_der_db_abfrage))
{
// deine Ausgabe der Datensaetze
// unter Verwendung des Zaehlers
$a++;
}
Wenn der Zähler eine gerade Zahl ist, öffne vor der Anzeige des Datensatzes eine neue Tabellenzeile (<tr>
). Ist der Zähler ungerade, schließe nach der Ausgabe des Datensatzes die Tabellenzeile (</tr>
).
Spezialfall: Ist der Zähler beim _letzten_ anzuzeigenden Datensatz gerade, muss die Zeile trotzdem geschlossen werden. Also: vorher die Anzahl der Datensätze mit mysql_num_rows()
ermitteln und mit dem Zähler vergleichen.
Tschö, Auge
moin!
ok, das mit dem gerade/ungerade hattest du nicht erwähnt und ich wusste nicht, auf was du hinaus wolltest. jetzt hab ichs aber kapiert. danke.
gruß.
roger.