php.de

Zurück   php.de > Webentwicklung > PHP-Fortgeschrittene

PHP-Fortgeschrittene Arbeiten mit PHP ohne Einschränkungen

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 02.06.2004, 19:14  
Gast
 
Beiträge: n/a
Standard SQL Abfrage mit LEFT JOIN -> OK, aber ich komm net weiter

Ich arbeite nebenbei an einem Projekt(beschäftigt sich mit Clanmanagement) mit und wir sind gerade dabei die neue Version zu bastelnd die sich grundlegend von der ersten Version unterscheidet.

In einer Datei soll ich nun diverse SQL Abfragen bündeln in einer, dies ist mir auch mit LEFT Join gelungen.
Die ganze Abfrage gibt mir dann diverse Datenbankinhalte zurück die nun wie folgt ausgegeben werden müssen:

jedes team in eine zeile mit Angabe des Game/Gamemodi, Anzahl der Member in diesem Team und die Namen der Teammitglieder.

Das Problem ist, wenn ich nach der SQL Abfrage eine "while" schleife nutze, zeigt er mir die teams doppelt an und die restlichen Daten überhaupt nicht.

Angezeigt werden soll ja jedes Team nur einmal, Member können durchaus in mehreren Teams sein.

Frage..wie definier ich den schleifendurchlauf (aber nicht mit while) um an meine gewünschte ausgabe zu kommen?

PS:
Codebeispiele kann ich leider nur bei Interesse als PM schicken, da diese Version des Projektes noch Developer Status hat.

PSS:
Ich würd das ja mit meinem Teamleader besprechen, aber der verweilt momentan irgendwo mit seinem Job da wo ich Ihn net erreichen kann
  Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 03.06.2004, 08:14  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 387
MrNiceGuy befindet sich auf einem aufstrebenden Ast
Standard

Die Ausgabe dürfte dann wahrscheinlich so aussehen:

Spiel1/Mod1 - Spieleranzahl1 - TeamName1 - SpielerName1
Spiel1/Mod1 - Spieleranzahl1 - TeamName1 - SpielerName2
Spiel1/Mod1 - Spieleranzahl1 - TeamName1 - SpielerName3
Spiel1/Mod1 - Spieleranzahl1 - TeamName1 - SpielerName4
Spiel2/Mod1 - Spieleranzahl2 - TeamName1 - SpielerName1
Spiel2/Mod1 - Spieleranzahl2 - TeamName1 - SpielerName2
Spiel2/Mod2 - Spieleranzahl2 - TeamName2 - SpielerName1
Spiel2/Mod2 - Spieleranzahl2 - TeamName2 - SpielerName2

So in etwa. Nun hast du das Problem, dass die Spiele/Mods doppelt ausgegeben werden, was vollkommen normal ist.

Du musst also Mitloggen lassen, welches Spiel bereits ausgegeben wurde:

Code:
unset ($game);
while ($myrow = myqsl_fetch_array ($result))
{
  if ($game != $myrow['spiel_mod'])
  {
    echo $myrow['spiel_mod']; // Ausgabe des Spiels
    $game = $myrow['spiel_mod'];
  }
  echo $myrow['player']; // Ausgabe des Spielers
}
Das ist jetzt ein einfaches Beispiel, aber so funktioniert es. Du musst es nur entsprechend erweitern.

Bei der SQL-Abfrage ist jedoch noch wichtig, das du noch ein ORDER BY für den Spielnamen einbaust.
MrNiceGuy ist offline   Mit Zitat antworten
Alt 03.06.2004, 15:28  
Gast
 
Beiträge: n/a
Standard

das order by erfolgt im vorliegenden beispiel anhand des teamnamens..und dementsprechend muss ich halt nur noch deinen vorschlag anpassen und ausprobieren

ich meld mich dann wieder hier (hoffentlich) mit Erfolgen etc.

Thx für Deine Hilfe
  Mit Zitat antworten
Alt 04.06.2004, 00:37  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 387
MrNiceGuy befindet sich auf einem aufstrebenden Ast
Standard

Nach Teamnamen zu sortieren ist natürlich auch möglich, nur nach Spielernamen kannst du nicht sortieren

BZW: Kannst du schon, aber dann müsstest du die Daten erst in ein Array packen und dann das Array abarbeiten und ausgeben, damit du keine doppelten Spiele hast
MrNiceGuy ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
WHERE-Clause im Left Join cycap Datenbanken 2 06.11.2007 11:06
JOIN / LEFT JOIN und Co prinzli Datenbanken 12 05.11.2007 22:15
[solved] LEFT JOIN - #1066 - Not unique table/alias moose Datenbanken 6 12.12.2006 06:41
[gelöst] LEFT JOIN und trotzdem nicht alle Sätze da?!? stefanjann Datenbanken 3 24.10.2006 11:32
Problem mit Inner join Jabi Datenbanken 15 09.05.2006 14:10
LEFT OUTER JOIN für mehr als 2 Tabellen ? Alpha Centauri Datenbanken 4 05.04.2006 16:18
INNER JOIN + Suchkriterien + Abfrage duerov PHP Tipps 2006 4 04.04.2006 12:47
Select Problem Datenbanken 17 16.01.2006 21:54
[Erledigt] LEFT JOIN Query Bildung Datenbanken 6 04.11.2005 15:24
[Erledigt] LEFT JOIN funtkioniert nicht richtig Datenbanken 3 19.10.2005 17:38
zwei left joins in einer abfrage Datenbanken 2 19.05.2005 16:26
[Erledigt] left outer join mit bedingung Datenbanken 2 04.03.2005 00:52
[Erledigt] bin nicht bsonders gut in php und sql queries left join prob Datenbanken 7 28.09.2004 16:50
den letzte(grösten) eintrag aus LEFT JOIN Datenbanken 2 24.07.2004 18:33
[Erledigt] Mehrere COUNT(*) in einer Abfrage mit LEFT JOIN Datenbanken 8 18.06.2004 13:43

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php sql join, sql left join, sql abfrage left join, sql left, http://www.php.de/php-fortgeschrittene/2370-sql-abfrage-mit-left-join-ok-aber-ich-komm-net-weiter.html, php left join, sql zweimal left join, join abfrage sql, php sql abfrage left join, left join zeigt einträge doppelt, sql left join abfrage, sql left join where, sql doppel join left join, sql left join if, sql abfragen left join, sql alles doppelt, left join beispiele, left join beispiel, sql abfrage left, sql mehrere left join

Alle Zeitangaben in WEZ +2. Es ist jetzt 20:36 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.