| | | | |
| |||||||
| Datenbanken SQL und Co |
|
| | LinkBack | Themen-Optionen | Thema bewerten |
| | |
| Gast
Beiträge: n/a
| hallo, vielleicht kann mir jemand helfen. Ich bekomme immer falsche Werte in der Datenbank abgespeichert, wenn ich Daten vom Type Set aus dem Formular eingebe, auch die Ausgabe/Update erfolgt nicht so, wie ich es vorhabe. in der mysql-db habe ich ein Type Set definiert: Montag, Dienstag, ... im formular kann ich die einzelnen Werte auswählen, aber gespeichert werden immer nur eins oder andere, ist irgendwie ganz komisch! Code: <html>
<head><title>Neuer Benutzer</title></head>
<body>
<h1>Datenbankeingabe</h1>
<?
echo "Sie sind Benutzer: $PHP_AUTH_USER
";
$wasfehlt="";
$allesda=0;
if ( isset($Nachname) or isset($Vorname) or isset($Email) or isset($Adresse) or isset($Stadt) or isset($PLZ) or isset($Tel_nr) or isset($Wochentag)) {
if ( empty($Nachname))
$wasfehlt="Bitte geben Sie den Nachnamen ein!";
if ( empty($Vorname))
$wasfehlt="Bitte geben Sie den Vornamen ein!";
if ( empty($Adresse))
$wasfehlt="Bitte geben Sie die Adresse ein!";
if ( empty($Stadt))
$wasfehlt="Bitte geben Sie die Stadt ein!";
if ( empty($PLZ))
$wasfehlt="Bitte geben Sie die Postleitzahl ein!";
if ( empty($Email))
$wasfehlt="Bitte geben Sie die E-Mail-Adresse ein!";
if ( empty($Tel_Nr))
$wasfehlt="Bitte geben Sie die Tel-Nr: ein!";
if ( empty($Wochentag))
$wasfehlt="Bitte geben Sie den Wochentag: ein!";
if ( empty ($wasfehlt))
$allesda=1;
}
if ($allesda) {
include ('dbpass.php');
// Im Fehlerfalle bewirkt der Klammeraffe, dass die Fehlermeldungen
// unterdrckt werden. ms_sqlconnect verbindet mit der Datenbank
@mysql_connect($dbhost, $dbuser, $dbpass);
// Auswahl der Datenbank
@$x=mysql_select_db($dbdata);
// Aufbau des SQL-Statements aus den Formularfeldern
$sql = "INSERT INTO personen (Username, Nachname, Vorname, Adresse, Stadt, PLZ, Email, Tel_Nr, Wochentag) VALUES ('$PHP_AUTH_USER', '$Nachname', '$Vorname', '$Adresse', '$Stadt', '$PLZ', '$Email', '$Tel_Nr', '$Wochentag)";
$result = mysql_query($sql);
// Anzeigen des Primaerschluessels des neuen Datensatzes
echo "neue ID:", mysql_insert_id(), "
";
echo $sql,"
";
// MYSQL-Fehlermeldungen ausgeben:
if(!$result)
echo "fehler: ",mysql_error(),"
";
else
echo "$Vorname $Nachname wurde erfolgreich in die Datenbank eingetragen!";
}
else
{
if (!empty($wasfehlt))
echo $wasfehlt,"
";
// Anzeige des Webformulars
?>
<FORM method=post action=new_user.php>
Vorname:
<INPUT type=text name=Vorname size=50>
Nachname:
<INPUT type=text name=Nachname size=50>
Adresse:
<INPUT type=text name=Adresse size=50>
Stadt:
<INPUT type=text name=Stadt size=50>
Postleitzahl:
<INPUT type=text name=PLZ size=50>
E-Mail:
<INPUT type=text name=Email size=50>
Tel-Nr: (Vorwahl und Rufnr. ohne Trennzeichen eingeben)
<INPUT type=text name=Tel_Nr size=50>
Wochentag:
<select name=Wochentag size=10 multiple>
<option value='1'> Montag</option>
<option value='2'> Dienstag </option>
<option value='3'> Mittwoch </option>
<option selected value='4'> Donnerstag </option>
<option value='5'> Freitag </option>
</select>
<INPUT type=submit value="Eintragen">
</FORM>
<?
}
?>
Zurück</p>
</body>
</html>
nur eben nicht dieses Set-Type Menu. wäre schön, wenn jemand eine idee hat. gruss und danke mambo |
|
| | |
| PHP Code Flüsterer Registriert seit: 21.08.2005 Beiträge: 4682 PHP-Kenntnisse: Fortgeschritten | |
| | |
| Erfahrener Benutzer Registriert seit: 02.04.2008
Beiträge: 4.032
![]() | Wie du in http://dev.mysql.com/doc/mysql/de/set.html nachlesen kannst, werden die SET-Daten entsprchend ihrer gesetzten Bits gespeichert. D.h. 1 (2 ^ 0) entspricht in deinem Fall dem Montag, 2 (2 ^ 1) dem Dienstag, 4 (2 ^ 2) dem Mittwoch, 8 (2 ^ 3) dem Donnerstag usw. Also musst du die Werte entsprechende vorgeben: PHP-Code:
__________________ Gruss L |
| | |
|
| Themen-Optionen | |
| Thema bewerten | |
|
|

Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.