mysql / join Problem
Maa
- datenbank
0 Ilja
Guten Tag,
folgendes Problem:
Es gibt eine Tabelle Events in der Termine festgehalten werden, meist Seminare:
id | date_post | date_s | date_e | time_s | time_e | lang etc ...
Dann eine Tabelle lnk_event_conductor:
id_event | id_conductor
Und eine Tabelle contacts, in der sämtliche Personen erfasst sind:
id | name_f | name_l etc ....
Nun sind in der Linktabelle bisher ein Event mit einer Person verknüpft. Wenn ich nun eine weitere Person diesem Event zuordne, dann wird immer nur die erste genommen.
PHP:
$res =& $db->query("SELECT TIME_FORMAT(e.time_s, '%k:%i') AS time_s,TIME_FORMAT(e.time_e, '%k:%i') AS time_e,
DATE_FORMAT(e.date_s, '%d.%m.%Y') AS date_s,
DATE_FORMAT(e.date_e, '%d.%m.%Y') AS date_e,
e.headline, e.summary, e.at, e.street, e.building,
e.postalcode, e.city, e.info, c.*, pe.picture, pe.description
FROM lnk_event_conductor AS lec, contacts AS c, events e
LEFT JOIN lnk_event_pic AS lep ON (e.id = lep.id_event)
LEFT JOIN pictures_events AS pe ON (lep.id_event = pe.id)
WHERE (e.lang = '".$language."')
AND (e.id = '".$id."')
AND (e.id = lec.id_event)
AND (lec.id_conductor = c.id)");
Geht das überhaupt?
yo,
erst einmal sind deine spaltennamen sehr schlecht. sie sollten in aller regel so gewählt sein, dass ein "fremder" den sinn der spalte auch ohne gross zu grübeln erahnen kann.
zum anderen handelt es sich nicht um eine linktabelle, sondern man nennt das ding beziehungstabelle. das mag kleinlich erscheinen, aber so haben die kinder halt einen namen und es hilft einander auszutauschen, gerade in bezug auf html kann link ein verwirrender begriff sein.
was nun dein problem angeht, so sieht alles auf den ersten blick ganz gut aus, er sollte auch beide erfassen. zwei mögliche ursachen könnten sein, dass für den zweiten diese bedingung (e.lang = '".$language."') nicht erfüllt wird oder aber die ausgabe ist so geschrieben, dass sie immer nur einen datensatz ausgibt. ob das der fall ist, sieht man oftmals, ob die ausgabe innerhalb ein schleife (while) ist.
Ilja