zurück zur Startseite
  


Zurück XHTMLforum > Webentwicklung (außer XHTML und CSS) > Serveradministration und serverseitige Scripte
Seite neu laden Abfrage / Kreuztabelle

Antwort
 
LinkBack Themen-Optionen Ansicht
  #1 (permalink)  
Alt 28.06.2010, 14:53
Benutzer
neuer user
Thread-Ersteller
 
Registriert seit: 05.03.2009
Beiträge: 69
skip23 befindet sich auf einem aufstrebenden Ast
Standard Abfrage / Kreuztabelle

Hallo Zusammen,

ich habe folgendes Problem.
Ich habe eine Abfrage über mehrere Tabellen erstellt.

Jetzt ist neu hinzugekommen eine Kreuztabelle. Dort
sind zwei IDs von Fremdtabellen hinterlegt.
DJ und Event.
Ein DJ kann auf mehrere Events.
Auf einem Event können mehrer DJs sein.

Hier mal die Abfrage:
Code:
$result = mysql_query("SELECT 
e.event_status,
e.event_id,
e.event_name,
e.tag_id,
et.tag_id,
et.tag_name,
e.ort_id,
eo.ort_id,
eo.ort_name,
e.event_uhrzeit,
e.event_datum,
e.event_dj,
e.event_eintritt,
e.event_special,
e.event_link,
e.event_bild,
e.club_id,
ec.club_id,
ec.club_name,
e.monat_id,
em.monat_id,
em.monat_name,
l.localhero_id,
l.localhero_name,
l.localhero_linkintern
FROM tb_event AS e, tb_localhero AS l, tb_event_tag AS et, tb_event_ort 
AS eo, tb_event_club AS ec, tb_event_monat AS em WHERE e.event_status
 = '1' AND e.monat_id = '6' AND e.tag_id = et.tag_id AND e.ort_id = eo.ort_id
 AND e.club_id = ec.club_id AND e.monat_id = em.monat_id
 LEFT JOIN tb_localXevent le ON le.event_id = e.event_id ORDER BY 
e.event_datum ASC");
Ich würde es gerne hinbekommen das zu jedem Event die passenden DJs aus der DB geholt werden.

Hier mal die Ausgabe:
Code:
while($row = mysql_fetch_array($result))
  {
	
$date_new = $row['event_datum'];
if($date_old != $date_new) {
	  
  echo "<div class='ausblickedatum'>". $row['event_datum'] . "&nbsp;-&nbsp;" . "<span class='eventdate'>" . $row['tag_name'] . "</span></div>";
  echo "<div class='ausblickeinfo2'>";
  echo "<div class='ausblickeimg2'><a href='". $row['event_bild'] ."'<img src='". $row['event_bild'] ."' /></a></div>";
  echo "<div class='ausblickeinfotxt2'>";
  echo "<ul>";
  echo "<li class='eventname'>". $row['event_name'] . "</li>";
  echo "<li>". $row['club_name'] . "&nbsp;-&nbsp;" . $row['ort_name'] ."</li>";
  echo "<li><b>DJs:</b> " . $row['event_dj'] . "</li>";
  echo "<li><b>Uhrzeit:</b> " . $row['event_uhrzeit'] . "</li>";
  if (empty($row['event_eintritt'])) { echo ""; } else { echo "<li><b>Eintritt:</b> " . $row['event_eintritt'] . "</li>"; }
  if (empty($row['event_link'])) { echo ""; } else { echo "<li><b>Link:</b> " . $row['event_link'] . "</li>"; }
  if (empty($row['event_special'])) { echo ""; } else { echo "<li><b>Special:</b> " . $row['event_special'] . "</li>"; }  
  if (empty($row['localhero_name'])) { echo ""; } else { echo "<li><b>Local Heros:</b><a href='http://www.domain.de/" . $row['localhero_linkintern'] . "</a>". $row['localhero_name'] . "</li>"; }
  echo "</ul>";
  echo "</div>";
  echo "<div class='clearfix'></div>";
  echo "</div>";
	}
Wie bekomme ich es nun hin das zu jedem Event die passenden DJs rausgesucht werden?

Grüße,
Hardy
Mit Zitat antworten
Sponsored Links
  #2 (permalink)  
Alt 28.06.2010, 14:56
Benutzerbild von Praktikant
Semantikbremse.
XHTMLforum-Kenner
 
Registriert seit: 22.04.2008
Beiträge: 4.985
Praktikant kann auf vieles stolz seinPraktikant kann auf vieles stolz seinPraktikant kann auf vieles stolz seinPraktikant kann auf vieles stolz seinPraktikant kann auf vieles stolz seinPraktikant kann auf vieles stolz seinPraktikant kann auf vieles stolz seinPraktikant kann auf vieles stolz seinPraktikant kann auf vieles stolz sein
Standard

Mit der Hilfe eines LEFT JOINs geht das. Du musst die Kreuztabelle mit zwei LEFT JOINs mit den anderen beiden Tabellen verbinden, dann bekommst du das erwartete Ergbnis.

Allerdings bin ich mir nicht sicher, ob das dann Dank deines CROSS JOINs in dem Falle zum Problem werden könnte.
__________________
Rettet die Erde.... sie ist der einzige Planet mit Schokolade!
Mit Zitat antworten
Sponsored Links
  #3 (permalink)  
Alt 28.06.2010, 15:00
Benutzer
neuer user
Thread-Ersteller
 
Registriert seit: 05.03.2009
Beiträge: 69
skip23 befindet sich auf einem aufstrebenden Ast
Standard

ein LEFT JOIN ist ja schon eingebaut ...
Mit Zitat antworten
  #4 (permalink)  
Alt 28.06.2010, 15:07
Benutzerbild von David
auch, ja!
XHTMLforum-Kenner
 
Registriert seit: 08.11.2007
Beiträge: 2.626
David ist ein wunderbarer AnblickDavid ist ein wunderbarer AnblickDavid ist ein wunderbarer AnblickDavid ist ein wunderbarer AnblickDavid ist ein wunderbarer AnblickDavid ist ein wunderbarer AnblickDavid ist ein wunderbarer Anblick
Standard

Es wäre sehr hilfreich, wenn Du anstatt dieser großen Abfrage die Tabellenstruktur skizzieren würdest
__________________
github | http://dnaber.de
Mit Zitat antworten
  #5 (permalink)  
Alt 28.06.2010, 15:07
Benutzerbild von derHund
durstiges Tier
XHTMLforum-Mitglied
 
Registriert seit: 16.09.2004
Beiträge: 869
derHund befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
ein LEFT JOIN ist
Zitat:
mit zwei LEFT JOINs
Wie auch immer, warum LEFT JOIN?

€: Tabellenstruktur wurde oben schon skizziert, DJ HABTM Event - ich geh davon aus, dass die richtig aufgebaut sind. Leider lässt uns der Threadersteller darüber im Unklaren, was (nicht) funktioniert.
__________________
Die Zeit hat ihre Kinder längst gefressen: hund (back in black) | ??? | ??? | ...

Geändert von derHund (28.06.2010 um 15:11 Uhr)
Mit Zitat antworten
  #6 (permalink)  
Alt 28.06.2010, 15:10
Benutzer
neuer user
Thread-Ersteller
 
Registriert seit: 05.03.2009
Beiträge: 69
skip23 befindet sich auf einem aufstrebenden Ast
Standard

ok zwei Left Joins, das mus sich erstmal durchdenken ...

geht es denn auch ohne Left Join oder wie ?

ich skizziere mal!
Mit Zitat antworten
  #7 (permalink)  
Alt 28.06.2010, 15:22
Benutzer
neuer user
Thread-Ersteller
 
Registriert seit: 05.03.2009
Beiträge: 69
skip23 befindet sich auf einem aufstrebenden Ast
Standard

es funktioniert nich das ich es hinbekomme das zu dem einzelnen event eintrag die dj namen ausgegeben werden, das ist das problem.

hier mal der link zur struktur: http://img713.imageshack.us/img713/3204/dbstruktur.jpg
Mit Zitat antworten
  #8 (permalink)  
Alt 28.06.2010, 15:34
Benutzerbild von derHund
durstiges Tier
XHTMLforum-Mitglied
 
Registriert seit: 16.09.2004
Beiträge: 869
derHund befindet sich auf einem aufstrebenden Ast
Standard

Code:
... 
FROM Event e
JOIN EventDJ ed
ON ed.event_id = e.id
JOIN DJ d
ON ed.dj_id = d.id
__________________
Die Zeit hat ihre Kinder längst gefressen: hund (back in black) | ??? | ??? | ...
Mit Zitat antworten
  #9 (permalink)  
Alt 28.06.2010, 15:39
Benutzer
neuer user
Thread-Ersteller
 
Registriert seit: 05.03.2009
Beiträge: 69
skip23 befindet sich auf einem aufstrebenden Ast
Standard

das in die komplette abfrage von oben hinzufügen ?

so? :
Code:
e.event_status,
e.event_id,
e.event_name,
e.tag_id,
et.tag_id,
et.tag_name,
e.ort_id,
eo.ort_id,
eo.ort_name,
e.event_uhrzeit,
e.event_datum,
e.event_dj,
e.event_eintritt,
e.event_special,
e.event_link,
e.event_bild,
e.club_id,
ec.club_id,
ec.club_name,
e.monat_id,
em.monat_id,
em.monat_name,
l.localhero_id,
l.localhero_name,
l.localhero_linkintern
FROM tb_event AS e, tb_localhero AS l, tb_event_tag AS et, tb_event_ort 
AS eo, tb_event_club AS ec, tb_event_monat AS em WHERE e.event_status 
= '1' AND e.monat_id = '6' AND e.tag_id = et.tag_id AND e.ort_id = eo.ort_id 
AND e.club_id = ec.club_id AND e.monat_id = em.monat_id
JOIN tb_localXevent le ON le.event_id = e.event_id JOIN tb_localhero l ON .localhero_id = le.localhero_id ORDER BY e.event_datum ASC");
Mit Zitat antworten
Sponsored Links
  #10 (permalink)  
Alt 28.06.2010, 15:55
Benutzerbild von David
auch, ja!
XHTMLforum-Kenner
 
Registriert seit: 08.11.2007
Beiträge: 2.626
David ist ein wunderbarer AnblickDavid ist ein wunderbarer AnblickDavid ist ein wunderbarer AnblickDavid ist ein wunderbarer AnblickDavid ist ein wunderbarer AnblickDavid ist ein wunderbarer AnblickDavid ist ein wunderbarer Anblick
Standard

Wissen wir nicht! Funktioniert es denn?

Zitat:
Zitat von derHund Beitrag anzeigen
€: Tabellenstruktur wurde oben schon skizziert, DJ HABTM Event - ich geh davon aus, dass die richtig aufgebaut sind.
Ich hab aber keine Zeit aus der Abfrage rückschlüsse auf die Tabellen zu ziehen
__________________
github | http://dnaber.de
Mit Zitat antworten
Sponsored Links
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
SQL Abfrage gabischatz Serveradministration und serverseitige Scripte 4 23.04.2011 11:05
MySQL Abfrage mit PHP andre-ne Serveradministration und serverseitige Scripte 8 09.04.2011 23:42
Template in einer Abfrage Benutzername Serveradministration und serverseitige Scripte 4 20.10.2010 15:03
Abfrage von zwei Tabellen (php/ mysql) Baronesse Serveradministration und serverseitige Scripte 1 15.07.2008 11:26
Einfachere Abfrage? Örny Serveradministration und serverseitige Scripte 3 07.03.2006 20:42


Alle Zeitangaben in WEZ +2. Es ist jetzt 03:37 Uhr.