jo tach,
ich habe ein Immobilienportal entwickelt wo Immobilienobjekte einen oder meheren Kunden zugeordnet werden.
Dazu gibt es 3 Tabellen:
- fa_pass_data - enthält die Kundenstammdaten inkl. Kundennummer
- Objekte - enhält objektspezifische Daten
Wenn ein Objekt einen oder meheren Kunden zugewiesen wird, wird dies in der Tabelle
- Mieter -
abgepspeichert mit der Objektnummer und der Kundenummer. Also z.B.
Objekt001 | K005
Objekt001 | K004
Objekt002 | K005
Objekt003 | K007
soweit funktioniert alles super. nur wenn ich die Objektdaten und die Zuordnung ändern möchte, gibt es ein problem bei der Anzeige der Objektzuordnungen. Die Zuordnungen zum Objekt werden in einer selectbox angezeigt:
wie gesagt, die gesamten Kundennummern die in der selectbox angezeigt werden, kommen aus der Tabelle "fa_pass0_data". alle die Kunden die in der Tabelle "Mieter" ebenfalls eingetragen sind, d.h. denen bereits ein objekt zugewiesen wurde, sollen in der selectbox MARKIERT sein!!
Nun das Problem. In dem Test von mir sind einem Objekt meheren Kunden zugeordnet worden.
Datenbank Tabelle - Mieter - (mysqladmin):
In der selectbox erscheinen 1. die Kundenummern korrekt markiert, denen das Objekt zugewiesen wurde, ABER 2. bei denen wo die Kundennummern doppelt drin stehen, werden sie in der selectbox auch doppelt angezeigt.
Anzeige der selectbox für Objektnummer K004:
Ich weiss nicht wo der Fehler liegt. Ich vermute nur mal in der SELECT, bzw. JOIN ABFRAGE.
ich habe ein Immobilienportal entwickelt wo Immobilienobjekte einen oder meheren Kunden zugeordnet werden.
Dazu gibt es 3 Tabellen:
- fa_pass_data - enthält die Kundenstammdaten inkl. Kundennummer
- Objekte - enhält objektspezifische Daten
Wenn ein Objekt einen oder meheren Kunden zugewiesen wird, wird dies in der Tabelle
- Mieter -
abgepspeichert mit der Objektnummer und der Kundenummer. Also z.B.
Objekt001 | K005
Objekt001 | K004
Objekt002 | K005
Objekt003 | K007
soweit funktioniert alles super. nur wenn ich die Objektdaten und die Zuordnung ändern möchte, gibt es ein problem bei der Anzeige der Objektzuordnungen. Die Zuordnungen zum Objekt werden in einer selectbox angezeigt:
PHP-Code:
//Datenbankanbindung zu Tabelle "Kundennummer" mit Variabeln
$verbindung = mysql_connect
($conf_pass->db_host,$conf_pass->db_user,$conf_pass->db_pass);
mysql_select_db($conf_pass->db_name,$verbindung);
//Alle Kundennummern anzeigen, bereits zugeordnete sind markiert
print "<select name=Mieter_array[] size=8 multiple>";
//Vergleiche Kundennummern von 2 Tabellen, wenn schon vorhanden, dann selected
$befehl2 = "SELECT c.Kundennummer cnr, IF(ObjektnummerM = '$ObjektnummerO'
AND NOT ISNULL(d.KundennummerM), ' selected=\"selected\"', '')
dnr FROM fa_pass0_data c
LEFT JOIN Mieter d ON c.Kundennummer=d.KundennummerM"
or die (mysql_error());
//Befehl1 ausführen
$objekte2 = mysql_query($befehl2,$verbindung) or die (mysql_error());
//Jede Zeile ausgeben
while ($eingabe2=mysql_fetch_assoc($objekte2))
{
// Wenn diese Objektnummer aus Tabelle "Objekte"
//mit Objektnummer in Tabelle "Mieter" übereinstimmt..
printf("<option%s>%s</option>", $eingabe2['dnr'], $eingabe2['cnr']);
}
print "</select>";
mysql_close();
wie gesagt, die gesamten Kundennummern die in der selectbox angezeigt werden, kommen aus der Tabelle "fa_pass0_data". alle die Kunden die in der Tabelle "Mieter" ebenfalls eingetragen sind, d.h. denen bereits ein objekt zugewiesen wurde, sollen in der selectbox MARKIERT sein!!
Nun das Problem. In dem Test von mir sind einem Objekt meheren Kunden zugeordnet worden.
Datenbank Tabelle - Mieter - (mysqladmin):
In der selectbox erscheinen 1. die Kundenummern korrekt markiert, denen das Objekt zugewiesen wurde, ABER 2. bei denen wo die Kundennummern doppelt drin stehen, werden sie in der selectbox auch doppelt angezeigt.
Anzeige der selectbox für Objektnummer K004:
Ich weiss nicht wo der Fehler liegt. Ich vermute nur mal in der SELECT, bzw. JOIN ABFRAGE.
Kommentar