Datenbank erweitern
Sap
- datenbank
Hi,
ich komme mit etwas nicht weiter undzwar habe ich eine Datenbank erstellt, welche die Atribute |UserID, Vorname, Nachname, Passwort, Username| hat.
In Userid, Vorname und Nachname steht was drinne und in passwort und Username nichts (NULL).
Jetzt will ich die ersten drei buchstaben von den Vornamen und Nachnamen nehmen und per Updatebefehl in den Usernamen einfügen
Beispiel: UserID VName NName Passwort Username
... Hans Mustermann ... MusHan
Dies habe ich so gelösst aber funktioniert jedoch noch nicht.
<code>
$user = mysql_query("SELECT UserID, concat(left(3,Nname),left(3,Vname)) AS Username FROM tbluser WHERE Username = NULL");
echo mysql_error();
$a = mysql_fetch_assoc($user);
$a["Username"];
echo "-----".$a["Username"]."-------";
while($a = mysql\_fetch\_assoc($user))
{
$b = $a["Username"];
mysql\_query("UPDATE tbluser SET Username = $b WHERE UserID = ");
}
</code>
Ich hoffe jemand kann mir da weiter helfen
MfG
Sapzero
Hi,
Dies habe ich so gelösst aber funktioniert jedoch noch nicht.
Ja was denn nu? "Gelösst", oder "funzt nich"?
while($a = mysql_fetch_assoc($user))
{
$b = $a["Username"];
mysql_query("UPDATE tbluser SET Username = $b WHERE UserID = ");
Wieso unternimmst du hier keinerlei Debugging (Kontrollausgabe generierter Query), und keinerlei Fehlerbehandlung?
MfG ChrisB
Ich hab das mal jetzt so versucht aber musste mit bedauern fesstellen, dass es immer noch nicht geht. Ich ver mute dass der Fehler am anfang schon liegt, da er nicht mal in die while schleife kommt. Wenn ich eine einfach Ausgabe nämlich in der while schleife mache, wie echo "hallo"; gibt er mir nichts aus, was eigentlich zu Bedeuten hat das die Bedingung in der while schleife nicht erfüllt wird.
$sql = "SELECT UserID, concat(left(3,Nname),left(3,Vname)) AS Username FROM tbluser WHERE Username = NULL;";
$result = mysql_query($sql) OR die ("Fehler bei der SQL Abfrage:<br/ >" . mysql_error());
while($row=mysql_fetch_object($result))
{
$updateSQL = "UPDATE tbluser SET Username='$row->Username' WHERE UserID = $row->UserID";
if(mysql_query($updateSQL))
echo " Success: UserID: $row->UserID | Username: $row->Username <br />";
else
echo " Fehler bei UserID: $row->UserID | Username: $row->Username <br />";
}
MfG
Sap
Hallo,
Ich ver mute dass der Fehler am anfang schon liegt, da er nicht mal in die while schleife kommt.
warum sollte Dein Skript dorthin kommen?
Wenn ich eine einfach Ausgabe nämlich in der while schleife mache, wie echo "hallo"; gibt er mir nichts aus, was eigentlich zu Bedeuten hat das die Bedingung in der while schleife nicht erfüllt wird.
$sql = "SELECT UserID, concat(left(3,Nname),left(3,Vname)) AS Username FROM tbluser WHERE Username = NULL;";
simpler Fehler. Häufiger Fehler. NULL-Werte sind etwas Besonderes. Du möchtest IS NULL verwenden.
Freundliche Grüße
Vinzenz
echo $begrüßung;
Jetzt will ich die ersten drei buchstaben von den Vornamen und Nachnamen nehmen und per Updatebefehl in den Usernamen einfügen
Dazu brauchst du kein SELECT, denn das lässt sich mit nur einem UPDATE erledigen. Probier das mal auf diese Weise!
$user = mysql_query("SELECT UserID, concat(left(3,Nname),left(3,Vname)) AS Username FROM tbluser WHERE Username = NULL");
echo mysql_error();
Fehler können bei der Kommunikation mit dem DBMS immer auftreten. Deswegen solltest du nicht nur zum Entwickeln eine halbherzige Abfrage machen sondern stets die Rückgabewerte der verwendeten Funktionen auswerten, denn darüber gibt es neben dem Ergebnis im Gut-Fall auch einen Hinweis im Fehler-Fall.
echo "$verabschiedung $name";
Hi dedlfix,
Dazu brauchst du kein SELECT, denn das lässt sich mit nur einem UPDATE erledigen. Probier das mal auf diese Weise!
Wäre es nicht _noch_ eleganter, den Usernamen gleich beim Speichern mitzugenerieren? Ich nehme an, der Fragende erhält Vor- und Familienname aus einem Formular. Dann könnte er ja mit Stringfunktionen aus den jeweils ersten 3 Buchstaben von $_POST['vorname']
und $_POST['familienname']
ein $username
entstehen lassen und die Belegung dieser Variable gemeinsam mit den anderen Daten speichern. Nur so ein Gedanke...
Mit lieben Grüßen aus Wien
Michi
echo $begrüßung;
» Dazu brauchst du kein SELECT, denn das lässt sich mit nur einem UPDATE erledigen. Probier das mal auf diese Weise!
Wäre es nicht _noch_ eleganter, den Usernamen gleich beim Speichern mitzugenerieren?
Ja, für den Neu-Fall, aber für das Korrigieren bereits vorhandener Daten - das interpretierte ich in des OPs Posting - braucht er ein UPDATE.
echo "$verabschiedung $name";