unXtremo
Ensign
- Registriert
- Feb. 2009
- Beiträge
- 228
Hallo zusammen,
ich habe eine MySQL Datenbank, wenn ein User über ein Formular ein Datum auswählt soll die Tabelle der Datenbank überprüft werden ob der User bereits bei diesem Datum eingetragen ist, wenn nicht, dann so ein UPDATE Befehl ausgeführt werden und der Username des Users aus einer SESSION Variablen in die Datenbank eingetragen werden, wenn er bereits in der DB steht soll eine Fehlermeldung ausgegeben werden.
Im folgenden mein bisheriger Ansatz:
Bei mir funktioniert die Überprüfung, ob der Benutzername bereits in dem Feld der Datenbank enthalten ist, nicht so recht.
Der UPDATE Befehl funktioniert tadellos, es wird nur immer eingeteilt egal ob der user bereits drin steht oder nicht.
ich habe eine MySQL Datenbank, wenn ein User über ein Formular ein Datum auswählt soll die Tabelle der Datenbank überprüft werden ob der User bereits bei diesem Datum eingetragen ist, wenn nicht, dann so ein UPDATE Befehl ausgeführt werden und der Username des Users aus einer SESSION Variablen in die Datenbank eingetragen werden, wenn er bereits in der DB steht soll eine Fehlermeldung ausgegeben werden.
Im folgenden mein bisheriger Ansatz:
Datenbank Struktur:
Hier die Abfrage:
Hier soll das gewählte Datum aus dem Formular überprüft werden, welches aus vier verschiedenen SELECT Listen stammt (entweder mittwochs, oder samstags, oder sonntags, oder sonder), im Feld user der Datenbank werden Benutzernamen Komma getrennt abgespeichert.
Form: Benutzer_1,Benutzer_2,Beutzer3
UPDATE Befehl:
Code:
CREATE TABLE dienst (
g_id INT NOT NULL UNIQUE AUTO_INCREMENT,
datum DATE NOT NULL,
user VARCHAR(100) DEFAULT NULL,
PRIMARY KEY (g_id),
);
Hier die Abfrage:
PHP:
$result = mysql_query("SELECT g_id FROM dienst WHERE user LIKE '% $benutzername %' AND
datum='$mittwochs' OR
datum='$samstags' OR
datum='$sonntags' OR
datum='$sonder'");
$menge = mysql_num_rows($result);
Form: Benutzer_1,Benutzer_2,Beutzer3
UPDATE Befehl:
PHP:
if($menge == 0)
{
$sql_get_user = "SELECT user FROM dienst WHERE
datum='$mittwochs' OR
datum='$samstags' OR
datum='$sonntags' OR
datum='$sonder'
ORDER BY datum";
$result_get_user = mysql_query($sql_get_user) OR die(mysql_error());
while($row_get_user = mysql_fetch_assoc($result_get_user))
{
if ($row_get_user['user'] == NULL)
{
$update_user = $benutzername;
}
else
{
$update_user = $row_get_user['user'] . "," . $benutzername;
}
$sql = "UPDATE dienst SET user='$update_user' WHERE
datum='$mittwochs' OR
datum='$samstags' OR
datum='$sonntags' OR
datum='$sonder' ";
mysql_query($sql);
$num = mysql_affected_rows();
if($num > 0)
{
echo "OK!";
}
}
}
else
{
echo "FEHLER!";
}
Der UPDATE Befehl funktioniert tadellos, es wird nur immer eingeteilt egal ob der user bereits drin steht oder nicht.