Hallo Leute,
ich habe ein ziemlich kniffliges Problem. Leider konnte mir dazu in einem anderen Forum niemand helfen.
Also ...
Ich uebergebe aus einem Formular folgende Werte: Vorname, Name (aus der Session) und aus einem drop down ein Thema.
Dabei sollen Vorname und Name in einen SQL-Tabelle eingetragen werden und zwar da, wo das Thema uebereinstimmt.
In dieser Tabelle gibt es die Spalten nrthema, thema, referent1vorname, referent1name, referent2vorname und referent2name. Damit soll die Anzahl der Referenten auf 2 limitiert werden.
Ich habe das deshalb so gewaehlt, weil sich nrthema und thema aendern koennen.
Nun suche ich eine Moeglichkeit bei der zuerst ermittelt wird, ob ein Eintrag unter referent1vorname vorliegt. Falls nicht dann sollen Vorname und Name aus der Session als referent1vorname und referent1name bei dem gewaehlten Thema eingetragen werden.
Existiert bereist ein Eintrag dann sollen Vorname und Name aus der Session bei dem gewaehlten Thema als referent2vorname und referent2name eingetragen werden.
Leider sind alle Versuche mit IF ELSE oder SWITCH fehlgeschlagen. Ich kann zwar eine Bedingung wie SELECT referent1vorname ... und true oder false (oder ='', !-'' bzw. ="", !="") festlegen. Dabei wird leider nur entweder referent1 oder referent2 aktualisiert.
Mit reinem INSERT funktioniert es leider nicht, weil ich ja keinen neuen Tabelleneintrag machen moechte sondern den bei dem gewaehlten Thema nur ergaenzen.
Der Sinn besteht darin, dass ich gleichzeitig eine Anzeige haben moechte, bei der nrthema, thema, (referent1vorname, referent1name), (referent2vorname, referent2name) vorhanden sind und dabei im Auswahlmenue der Themen das jeweilige mit bereits zwei eingetragenen Referenten nicht mehr erscheint. (das habe ich bereits alles)
Lasse ich die Themen in einer neuen Tabelle speichern, bekomme ich bei der Ausgabe ja immer die doppelte Nennunng von nrthema und thema da OUTER JOIN leider nicht funktioniert.
Ich habe jetzt Tage damit zugebracht das Problem zu loesen aber ich finde keinen funktionierenden Ansatz.
Darum meine Bitte um jegliche hilfsbereite Ansaetze zur Loesung dieses Problems!
Vielen Dank schon mal im voraus ...
EDIT: noch der Code:
$Array[thema] ist das aus dem Auswahlmenue gewaehlte Thema,
$Array[referentvorname] ist der Vorname aus der Session,
$Array[referentnachname] ist der Nachname aus der Session
Fehlermeldungen bekomme ich keine.
Nur wird eben immer nur bei Referent2 aktualisiert.
ich habe ein ziemlich kniffliges Problem. Leider konnte mir dazu in einem anderen Forum niemand helfen.
Also ...
Ich uebergebe aus einem Formular folgende Werte: Vorname, Name (aus der Session) und aus einem drop down ein Thema.
Dabei sollen Vorname und Name in einen SQL-Tabelle eingetragen werden und zwar da, wo das Thema uebereinstimmt.
In dieser Tabelle gibt es die Spalten nrthema, thema, referent1vorname, referent1name, referent2vorname und referent2name. Damit soll die Anzahl der Referenten auf 2 limitiert werden.
Ich habe das deshalb so gewaehlt, weil sich nrthema und thema aendern koennen.
Nun suche ich eine Moeglichkeit bei der zuerst ermittelt wird, ob ein Eintrag unter referent1vorname vorliegt. Falls nicht dann sollen Vorname und Name aus der Session als referent1vorname und referent1name bei dem gewaehlten Thema eingetragen werden.
Existiert bereist ein Eintrag dann sollen Vorname und Name aus der Session bei dem gewaehlten Thema als referent2vorname und referent2name eingetragen werden.
Leider sind alle Versuche mit IF ELSE oder SWITCH fehlgeschlagen. Ich kann zwar eine Bedingung wie SELECT referent1vorname ... und true oder false (oder ='', !-'' bzw. ="", !="") festlegen. Dabei wird leider nur entweder referent1 oder referent2 aktualisiert.
Mit reinem INSERT funktioniert es leider nicht, weil ich ja keinen neuen Tabelleneintrag machen moechte sondern den bei dem gewaehlten Thema nur ergaenzen.
Der Sinn besteht darin, dass ich gleichzeitig eine Anzeige haben moechte, bei der nrthema, thema, (referent1vorname, referent1name), (referent2vorname, referent2name) vorhanden sind und dabei im Auswahlmenue der Themen das jeweilige mit bereits zwei eingetragenen Referenten nicht mehr erscheint. (das habe ich bereits alles)
Lasse ich die Themen in einer neuen Tabelle speichern, bekomme ich bei der Ausgabe ja immer die doppelte Nennunng von nrthema und thema da OUTER JOIN leider nicht funktioniert.
Ich habe jetzt Tage damit zugebracht das Problem zu loesen aber ich finde keinen funktionierenden Ansatz.
Darum meine Bitte um jegliche hilfsbereite Ansaetze zur Loesung dieses Problems!
Vielen Dank schon mal im voraus ...
EDIT: noch der Code:
PHP-Code:
<?php
$sql = "SELECT referent1vorname FROM seminarthemen WHERE thema='$Array[thema]'";
$result = mysql_query($sql) OR die(mysql_error());
$row = mysql_fetch_object($result);
if ($row = '') {
// Eintrag Referent1 pruefen, wenn nicht vorhanden eintragen
$sql = "UPDATE seminarthemen SET referent1vorname='$Array[referentvorname]', referent1nachname='$Array[referentnachname]' WHERE thema='$Array[thema]'";
mysql_query($sql) OR die(mysql_error());
} else {
// wenn Referent1 vorhanden dann Eintrag in Referent2
$sql = "UPDATE seminarthemen SET referent2vorname='$Array[referentvorname]', referent2nachname='$Array[referentnachname]' WHERE thema='$Array[thema]'";
mysql_query($sql) OR die(mysql_error());
}
// Ergebnis ausgeben
$sql = "SELECT * FROM seminarthemen WHERE thema='$Array[thema]'";
$result = mysql_query($sql) OR die(mysql_error());
while($row = mysql_fetch_object($result))
{
echo "$row->nrthema, $row->thema | ($row->referent1vorname $row->referent1nachname), ($row->referent2vorname $row->referent2nachname)<br>";
}
?>
$Array[referentvorname] ist der Vorname aus der Session,
$Array[referentnachname] ist der Nachname aus der Session
Fehlermeldungen bekomme ich keine.
Nur wird eben immer nur bei Referent2 aktualisiert.
Kommentar