zurück zur Startseite
  


Zurück XHTMLforum > Webentwicklung (außer XHTML und CSS) > Serveradministration und serverseitige Scripte
Seite neu laden Datenbank auslesen -> Ausgabe zusammenführen [PHP]

Antwort
 
LinkBack Themen-Optionen Ansicht
  #1 (permalink)  
Alt 11.09.2012, 18:13
Neuer Benutzer
neuer user
Thread-Ersteller
 
Registriert seit: 19.03.2005
Beiträge: 19
krakos befindet sich auf einem aufstrebenden Ast
Standard Datenbank auslesen -> Ausgabe zusammenführen [PHP]

Ich habe 3 Tabellen in einer Datenbank:
Tabelle user: User_ID, User_Name
Tabelle ort: Ort_ID, Ort_Name
Tabelle aktion: User_ID, Ort_ID, Aktion

(Ist jetzt nur ein Beispiel)

Abfrage ist
PHP-Code:
$auslesen =  mysql_query("SELECT u._id, u.user_name, o.ort_id, o.ort_name, a.aktion FROM user u, ort o, aktion a WHERE u.user_id = a.user_id AND o.ort_id = a.ort_id ORDER BY o.ort_id, u.user_id");
while(
$row mysql_fetch_assoc($auslesen)){
        echo 
"<tr>\n";
        echo 
"<td>".$row['user_id']."</td>\n";
        echo 
"<td>".$row['user_name']."</td>\n";
        echo 
"<td>".$row['ort_id']."</td>\n";
        echo 
"<td>".$row['ort_name']."</td>\n";
        echo 
"<td>".$row['aktion']."</td>\n";
        echo 
"</tr>\n";


Ausgabe ist so wie ichs möchte, nach Ortsname und jeweiligen User sortiert.
Code:
Ort 1 | User 1 | Aktion 1
Ort 1 | User 1 | Aktion 2
...
Jetzt ist es nun möglich, das ein User natürlich mit verschiedenen werten bei "Aktion" auftaucht.
Wie kann ich in der Ausgabe die Werte von "a.aktion" zusammenfügen, so das Pro User/Stadt nur eine Zeile auftaucht?
Code:
Ort 1 | User 1 | Aktion 1, Aktion 2
Ort 1 | User 2 | Aktion 1, Aktion 3
Ort 2 | User 1 | Aktion 2, Aktion 3

Geändert von krakos (11.09.2012 um 18:29 Uhr)
Mit Zitat antworten
Sponsored Links
  #2 (permalink)  
Alt 11.09.2012, 18:32
Erfahrener Benutzer
XHTMLforum-Mitglied
 
Registriert seit: 18.06.2007
Ort: Verden
Beiträge: 405
chorn wird schon bald berühmt werden
Standard

erstmal grob debuggen, also echos zwischenhauen und alles per flush() pro Schleifendurchang ausgeben lassen.
Mit Zitat antworten
Sponsored Links
  #3 (permalink)  
Alt 11.09.2012, 20:35
Benutzer
neuer user
 
Registriert seit: 14.09.2009
Beiträge: 88
Hook befindet sich auf einem aufstrebenden Ast
Standard

Hi,
Zitat:
Zitat von krakos Beitrag anzeigen
Wie kann ich in der Ausgabe die Werte von "a.aktion" zusammenfügen, so das Pro User/Stadt nur eine Zeile auftaucht?
Schau dir mal den MySql-Befehl "group by" an.

Peter
Mit Zitat antworten
  #4 (permalink)  
Alt 12.09.2012, 11:20
Benutzerbild von mantiz
Erfahrener Benutzer
XHTMLforum-Kenner
 
Registriert seit: 25.02.2007
Beiträge: 2.843
mantiz kann auf vieles stolz seinmantiz kann auf vieles stolz seinmantiz kann auf vieles stolz seinmantiz kann auf vieles stolz seinmantiz kann auf vieles stolz seinmantiz kann auf vieles stolz seinmantiz kann auf vieles stolz seinmantiz kann auf vieles stolz sein
Standard

Neben GROUP BY hilft dir GROUP_CONCAT weiter.
Mit Zitat antworten
  #5 (permalink)  
Alt 12.09.2012, 11:25
Benutzerbild von protonenbeschleuniger
Verbesserer
XHTMLforum-Kenner
 
Registriert seit: 06.09.2007
Beiträge: 4.977
protonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblick
Standard

Zitat:
Zitat von krakos Beitrag anzeigen
Jetzt ist es nun möglich, das ein User natürlich mit verschiedenen werten bei "Aktion" auftaucht.
Wie kann ich in der Ausgabe die Werte von "a.aktion" zusammenfügen, so das Pro User/Stadt nur eine Zeile auftaucht?
Code:
Ort 1 | User 1 | Aktion 1, Aktion 2
Ort 1 | User 2 | Aktion 1, Aktion 3
Ort 2 | User 1 | Aktion 2, Aktion 3
Das Problem ist, dass du nicht mehrere Werte in einem Feld zusammenführen kannst. Deshalb wird dir group by nichts bringen.

Du solltest dich aber mit joins beschäftigen Einfhrung in Joins da du vermutlich diese Abfrage noch optimieren könntest.
Mit Zitat antworten
  #6 (permalink)  
Alt 12.09.2012, 11:27
Benutzerbild von protonenbeschleuniger
Verbesserer
XHTMLforum-Kenner
 
Registriert seit: 06.09.2007
Beiträge: 4.977
protonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblick
Standard

Zitat:
Zitat von mantiz Beitrag anzeigen
Neben GROUP BY hilft dir GROUP_CONCAT weiter.
Oh! Das kannte ich gar nicht.
Mit Zitat antworten
Antwort

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre 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 aus


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Text Slider -> Text von Textdatei per PHP auslesen? Andimau Serveradministration und serverseitige Scripte 3 20.06.2012 15:49
HTML mit PHP Code aus Datenbank auslesen + ausführen Garlandt Serveradministration und serverseitige Scripte 14 01.05.2011 13:45
CSS Höhe 100% - Datenbank auslesen breppe CSS 5 15.01.2009 15:09
EXIF mit PHP auslesen -> seltsames Ergebnis Hairy Serveradministration und serverseitige Scripte 3 17.02.2008 18:44
Container nimmt nicht die Höhe seines Inhalts an Lestat CSS 10 04.08.2005 14:47


Alle Zeitangaben in WEZ +2. Es ist jetzt 10:18 Uhr.