Ergebnis von JOIN
am 22.08.2005 21:22:09 von maumiHallo,
habe zwei Tabellen (personen, themengebiete), die über eine
Intersection-Tabelle (themenmitarbeit) verbunden sind.
Tabelle Person
ID|Nachname|Vorname
Tabelle Themengebiet
ID|Bezeichnung
Tabelle Themen_Mitarbeit
ID|Person|Themengebiet
Ich möchte ein Formular generieren, mit dem man die Verknüpfungen
aktualisieren kann. Dazu lass ich mir die einzelen Personen mit
Checkboxen anzeigen. Diese Checkboxen würde ich gerne mit der ID der
Tabelle Personen belegen (value). Mein Problem ist, das ich die ID aus
der Personen-Tabelle nicht ermitteln kann, wenn in der Intersection
Tabelle bis jetzt keine Verknüpfung existiert. $row['id'] hat keinen
Inhalt. (Alle Tabellen haben als erstes ein Feld namens "ID".)
Müssen die Auto_Inc-Felder in den Tabellen unterschiedliche Namen
haben, oder gibt es eine andere Möglichkeit?
Vielen Dank für Eure Hilfe
Christian
$sql =3D "SELECT * FROM personen tp CROSS JOIN themengebiete th LEFT JOIN
themen_mitarbeit tm ON tm.person=3Dtp.id AND tm.themengebiet =3Dth.id where
th.id =3D '$_REQUEST[id]'";
$result =3D mysql_query($sql, $conn);
if (!($result)) {
echo "fehler";
}
$number =3D mysql_num_rows($result);
?>
$projectMembers =3D array();
$i =3D 1;
while ($row=3Dmysql_fetch_assoc($result)) {
$projectMembers[$row['themengebiet']][$row['id']] =3D
$row['person'];
echo $person;
$test =3D $row['person'];
if ($i % 2 !=3D 0)
{ echo "
}
else
{ echo "
}
if (!(empty($test)))
{
echo ' value=3D',$row['person'],'\'checked>',$row['nachname'];
}
else
{
echo ' value=3D',$row['person'],'>',$row['nachname'];
}
Re: Ergebnis von JOIN
am 23.08.2005 01:12:53 von Stefan RybackiChristian Mimberg wrote:
>
>...
>
Benutze AS um Attribute im Select umzubenennen:
$sql = "SELECT *,tp.id AS personenid FROM personen tp CROSS JOIN themengebiete th LEFT JOIN
themen_mitarbeit tm ON tm.person=tp.id AND tm.themengebiet =th.id where
th.id = '$_REQUEST[id]'";
jetzt kannst du per $row['personenid'] of die id der Person zugreifen.
Stefan