SQL-Ergebnisse in vorgefertigte Tabelle eintragen lassen
Jan Kirchmeyer
- php
0 Frank0 dey0 Jan Kirchmeyer
0 Thomas Schmieder
hallo,
bei mir dreht sichs um folgendes:
ich habe in PHP mittels SQL eine Abfrage an die Datenbank
gestellt (siehe Skript).
Die Ergebnisse sind auch richtig und es hat alles geklappt.
Nur ist mein Problem, dass es die einzelnen Ergebnisse alle
einfach hintereinander schreibt (also Namen, Fläche, Preis usw).
In der Scheife steht, dass er jedes Teilergebnis (also Namen, Fläche, Preis usw) in eine extra
Spalte schreiben soll - das klappt ja auch.
Aber es muss doch auch irgendwie möglich sein, die Einzelergebnisse
in eine vorgefertigte HTML-Tabelle zu schreiben.
Bsp.: der Name soll in der ersten Spalte einer Tabelle stehen und der Grundstückspreis soll aber erst in der 3. Spalte eingetragen werden, weil dazwischen in der 2. Spalte z.Bsp. eine graphik plaziert ist.
<?php
$ergebnis = mysql_query("SELECT A2_NAME,A4_FLAE,A4_BGF,A5_PREIS,A5_MIETE FROM haupt WHERE A1_GEMNR='$ortsname_zahl' AND A1_NR='$angebot_nr'");
while ($treffer = mysql_fetch_row($ergebnis))
{
foreach ($treffer as $feld_ergebnis)
if ($feld_ergebnis !="")
echo "<td align='center'> $feld_ergebnis </td>";
else
echo "Es wurden leider keine passenden Einträge gefunden";
}
?>
mein zeites problem ist, dass er die Zeile "Es wurden keine...." nicht
anzeigt, wenn keine angebote gefunden worden.
Die Seite bleibt dann einfach leer und es kommt nicht mal der Hinweis!
vielen dank im voraus...gruß jan
mein zeites problem ist, dass er die Zeile "Es wurden keine...." nicht
anzeigt, wenn keine angebote gefunden worden.
Die Seite bleibt dann einfach leer und es kommt nicht mal der Hinweis!
Hi,
foreach ($treffer as $feld_ergebnis)
if ($feld_ergebnis !="")
echo "<td align='center'> $feld_ergebnis </td>";
else
echo "Es wurden leider keine passenden Einträge gefunden";
lt. meinem Verständnis von Schleifen... kommt er da nie hin, wo er das schreiben soll, weil wenn es keine Ergebnisse gibt, wird die Schleife auch 0-mal durchgeführt und damit die IF-Abfrage 0-mal.
Du solltest so ein IF evt. vor oder um die Schleife herum bauen.
HTH, Frank
Hi.
I sehe da vielleicht noch ein Problem.
Ich gehe davon aus Du befindest dich in dieser Stelle schon in der Tabelle.
<table><tr>
foreach ($treffer as $feld_ergebnis)
if ($feld_ergebnis !="")
echo "<td align='center'> $feld_ergebnis </td>";
else
echo "Es wurden leider keine passenden EintrÃge gefunden";
</tr></table>
wenn Du hier text ohne <td... ausgibt landet der (n)irgendwo?!
bydey
danke fÃr deinen tip,
ich habs jetzt wie folgt gemacht u es hat geklappt:
<?php
$ergebnis = mysql_query("SELECT A2_NAME,A4_FLAE,A4_BGF,A5_PREIS,A5_MIETE FROM haupt WHERE A1_GEMNR='$ortsname_zahl' AND A1_NR='$angebot_nr'");
$anzahl=mysql_num_rows($ergebnis);
if ($anzahl == 0)
echo ("Es wurden leider keine EintrÃge gefunden!");
else
while ($treffer = mysql_fetch_row($ergebnis))
{
foreach ($treffer as $feld_ergebnis)
if ($feld_ergebnis !="")
echo "<td align='center'> $feld_ergebnis </td>";
}
?>
ich hab ihn also die anzahl der ergebnisse zÃhlen lassen. und wenn
die anzahl gleich 0 ist, soll er den hinweis bringen....jan
Hi,
du willst die Sprache also um einen halben Grad upgraden. ;-))
Aus 3rd Generation mache 3 1/2 oder so. Na hier haben wir ja schon 3 1/2, dam machen wir eben jetzt mal 3,8Generation draus...
Schreib Dir eine Wiedergabefunktion (print_elements)
Kopier die das Resultset in ein Array
und geh dann durch das Array mit Array_Walk durch.
Die zu benutzende Wiedergabefunktion kannst Du auch vorher abhÃngig von der abgefragten Tabelle festlegen, da sie in array_walk als String angegeben werden muss. D.H, du kannst hier ploymorph arbeiten. Das ist implizite OOP.
GrÃÃe
Tom