Sap: Datenbank erweitern

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

  1. 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

    --
    „This is the author's opinion, not necessarily that of Starbucks.“
    1. 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

      1. 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

  2. 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";

    1. 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

      --
      Self-Code: ie:{ fl:| br:> va:} ls:# fo:| rl:° n4:# ss:| de:> js:{ ch:? mo:) zu:}
      Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
      It is nice to be important - but it is more important to be nice.
      1. 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";