| | | | |
| | |
| PHP Code Flüsterer Registriert seit: 21.08.2005 Beiträge: 4682 PHP-Kenntnisse: Fortgeschritten | |
| | |
| Erfahrener Benutzer Registriert seit: 21.05.2008
Beiträge: 9.937
![]() | Wähl doch einfach alle Bands aus, die du anzeigen möchtest und innerhalb der Schleife dann nochmal eine Auswahl auf die 8 ersten Einträge der Band. Warum der Eintrag doppelt vorkommen könnte ist, weil du eben oben 8 Bandshows holst, und darin stehen ja Bands mit ihren Shows und die Bands können ja doppelt vorkommen... Benutz außerdem bitte Anführungszeichen für Array-Indexe, also statt $ausgabe_bandshows[show_bands] $ausgabe_bandshows["show_bands"] Das andere ist falsch, wird aber toleriert. Außerdem solltest du nicht mit * alles selektieren, wenn du sowieso nur 2 Einträge benötigst. Und mysql_result() solltest du nicht benutzen, dafür gibt es die mysql_fetch_*() Funktionen. |
| |
| | |
| Erfahrener Benutzer Registriert seit: 19.08.2003
Beiträge: 141
PHP-Kenntnisse: Fortgeschritten ![]() | ok habs jetzt so geändert, was allerdings wieder das gleiche problem aufwirft... Code: <?php
$shows = "SELECT * FROM w_ftr_bandshows INNER JOIN w_ftr_bands ON w_ftr_bandshows.band_id=w_ftr_bands.band_id";
$abfrage = mysql_query($shows);
while ($ausgabe = mysql_fetch_array($abfrage)) {
$band_id = $ausgabe['band_id']; //echo "$band_id";
$bandname = $ausgabe['band_name']; //echo "$bandname";
$sql_bandshows = "SELECT * FROM w_ftr_bandshows WHERE band_id='$band_id' AND show_date>='$Heute'";
$abfrage_bandshows = mysql_query($sql_bandshows);
$ausgabe_bandshows = mysql_fetch_array($abfrage_bandshows);
echo "".datumdt($ausgabe_bandshows['show_date'])." - $ausgabe_bandshows['show_place']
$bandname w/ ".textstring($ausgabe_bandshows['show_bands'],25)."
";
}
?>
|
| |
| | |
| Gast
Beiträge: n/a
| Welche Logik steckt dahinter, dass Du eine Abfrage auf die Tabelle w_ftr_bandshows ausführst und dann in einer while-Schleife ein Feld aus dem Ergebnis verwendest, um weitere Abfragen auszufügen (bei sql in 999 von 1000 Fällen ein großes no-no) ... wieder auf der Tabelle w_ftr_bandshows? |
| | |
| Erfahrener Benutzer Registriert seit: 19.08.2003
Beiträge: 141
PHP-Kenntnisse: Fortgeschritten ![]() | ja war blödsinn, bin drauf gekommen, ich hab die abfragen vertauscht, sprich muss erst die konzerte abfragen und dann anhand der band_id nur noch rausbekommen, welche band dort spielt, so gehts: Code: $shows = "SELECT * FROM w_ftr_bandshows WHERE show_date>='$Heute' ORDER BY show_date ASC";
$abfrage = mysql_query($shows);
while ($ausgabe = mysql_fetch_array($abfrage)) {
$band_id = $ausgabe['band_id']; //echo "$band_id";
$ort = $ausgabe['show_place'];
$text = $ausgabe['show_text'];
$bands = $ausgabe['show_bands'];
$datum = $ausgabe['show_date'];
$sql_bandshows = "SELECT * FROM w_ftr_bands WHERE band_id='$band_id'";
$abfrage_bandshows = mysql_query($sql_bandshows);
$ausgabe_bandshows = mysql_fetch_array($abfrage_bandshows);
if ($ausgabe_bandshows['band_id']==$band_id) {
echo "".datumdt($datum)." - ".$ort."
".$ausgabe_bandshows['band_name']." w/ ".textstring($bands, 25)."
";
}
}
|
| |
| | ||
| Gast
Beiträge: n/a
| Das sind immer noch x Abfragen in einer while-Schleife, die Felder aus der äußeren Abfrage in der WHERE-Bedingung benutzen. Immer noch ein großes no-no. Zitat:
| |
| | |
| Erfahrener Benutzer Registriert seit: 19.08.2003
Beiträge: 141
PHP-Kenntnisse: Fortgeschritten ![]() | die tabelle "w_ftr_bands" besteht nur aus den feldern " id " und " bandname ", und da ich beide felder abfrage ist es doch ok das sternchen zu nutzen. sollte ich die tabelle erweitern, werde ich das " * " ersetzen mit den beiden feldern die ich brauche, richtig. und in der oberen abfrage brauche ich alle felder, für die anschließende ausgabe.... |
| |
| | ||
| Gast
Beiträge: n/a
| Mir geht es nicht um das Sternchen, sondern um die in meinen Augen unnötige zweite Abfrage. Nochmal: Code: while($row = mysql_fetch... {
$innerQuery = 'SELECT ... WHERE xyz='.$row['field'];
}
Ausserdem ist dafür zusätzlicher Code notwendig, so dass es irgendwann auch sehr unübersichtlich wird. (Das andere Extrem, unbedingt alles in eine Mamutabfrage questschen zu müssen, allerdings auch). Gehen wir nochmal zu Deiner allerersten Abfrage zurück Zitat:
Klar tut es das. Warum also pro Datensatz nochmal abfragen? | |
| | |
| Erfahrener Benutzer Registriert seit: 19.08.2003
Beiträge: 141
PHP-Kenntnisse: Fortgeschritten ![]() | dann wohl eher so: Code: <?php
$shows = "SELECT * FROM w_ftr_bandshows INNER JOIN w_ftr_bands ON w_ftr_bandshows.band_id=w_ftr_bands.band_id WHERE w_ftr_bandshows.show_date>='$Heute' ORDER BY w_ftr_bandshows.show_date ASC LIMIT 8";
$abfrage = mysql_query($shows);
$num = mysql_num_rows($abfrage);
for ($i=0; $i<$num; $i++)
{
$show_band_id = mysql_result($abfrage, $i, "w_ftr_bandshows.band_id");
$ort = mysql_result($abfrage, $i, "w_ftr_bandshows.show_place");
$text = mysql_result($abfrage, $i, "w_ftr_bandshows.show_text");
$bands = mysql_result($abfrage, $i, "w_ftr_bandshows.show_bands");
$datum = mysql_result($abfrage, $i, "w_ftr_bandshows.show_date");
$band_id = mysql_result($abfrage, $i, "w_ftr_bands.band_id");
$bandname = mysql_result($abfrage, $i, "w_ftr_bands.band_name");
if ($show_band_id==$band_id) {
echo "".datumdt($datum)." - ".$ort."
".$bandname." w/ ".textstring($bands, 25)."
";
}
}
?>
|
| |
| | |
| Gast
Beiträge: n/a
| Prima, ich bin begeistert ...bis auf zwei Kleinigkeiten: mysql_result? Warum ist denn das schöne, schnelle mysql_fetch_row plötzlich in Ungnade gefallen? Und plötzlich auch kein while mehr sondern num_rows/for? Das ist schon ein deutlich anderer Programmierstil. Lösung aus einem anderen board? |
| Themen-Optionen | |
| Thema bewerten | |
|
|
Ähnliche Themen | ||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| [Erledigt] problem keine ausgabe | coraplanet | PHP Tipps 2008 | 12 | 02.05.2008 18:51 |
| Class Ausgabe Problem | wk-moray | PHP-Fortgeschrittene | 6 | 12.02.2008 10:06 |
| problem mit ausgabe von daten | phyton | Datenbanken | 3 | 02.07.2007 17:44 |
| Problem mit der Ausgabe | Kein Genie | PHP Tipps 2006 | 5 | 26.11.2006 21:24 |
| Problem mit einer Ausgabe mit for... | PHP Tipps 2005-2 | 4 | 30.09.2005 19:26 | |
| 3 Tabellen verbunden -- Ausgabe in einer Spalte | Datenbanken | 4 | 06.09.2005 10:43 | |
| Problem mit der Ausgabe | PHP Tipps 2005-2 | 2 | 29.07.2005 18:09 | |
| problem bei ausgabe einer abfrage aus 2 Tabellen | Lia | PHP Tipps 2005-2 | 2 | 28.07.2005 17:30 |
| Problem mit PFad Firefox - Verzeichnis löschen | PHP Tipps 2005-2 | 0 | 19.07.2005 16:05 | |
| Problem mit Ausgabe in Optionfelder (<select>) | Monty77 | PHP Tipps 2005 | 4 | 27.01.2005 22:33 |
| [Erledigt] Problem mit Text Ausgabe in neuem Fenster | PHP Tipps 2005 | 6 | 18.01.2005 14:24 | |
| variablen ausgabe problem..... | PHP Tipps 2005 | 3 | 06.01.2005 02:27 | |
| Problem mit Ausgabe | picco | PHP Tipps 2004-2 | 2 | 24.12.2004 15:38 |
| problem mit ausgabe bei einer "tmp"-table... | nautiluS | PHP Tipps 2004-2 | 0 | 20.12.2004 15:12 |
| Problem mit Array und Ausgabe | picco | PHP Tipps 2004-2 | 3 | 16.12.2004 23:03 |
| Besucher kamen über folgende Suchanfragen bei Google auf diese Seite |
| http://www.php.de/php-tipps-2006/39327-problem-mit-doppelter-ausgabe.html, \parkway drive\ hammerstadt, parkway drive hammerstadt |

Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.