Datensatz in Datenbank ändern

Subwoover

Erfahrenes Mitglied
Wie ändere ich den Datensaz in meiner Tabelle?
Mein Script dazu sieht so aus nur funkt es leider nicht =(

PHP:
    echo "<form action=$PHP_SELF method=Post name=aendern>
          <input type=text name=aendername>
          <input type=text name=aenderpw>
          <input type=submit value=Ändern>
          </form>";


    if ($aendern) {
    $connect2 = mysql_connect("localhost","es","es11");
    mysql_select_db("es",$connect2);
    $aendern = "UPDATE test SET username = $aendername,
                                password = $aenderpw WHERE username = 'freebird'";

     }

Kann mir da wer helfen?
Natürlich setz ich das WHERE username =.... auf den user den man ändern möchte mit einer variablen, aber überhaupt mal dass das prinzip funktioniert...
 
setz mal ALLE Werte in Anführungszeichen:

PHP:
$aendern = "UPDATE test SET username = '$aendername', password = '$aenderpw' WHERE username = 'freebird'";

und natürlich muss dann noch die SQL-Abfrage an die Datenbank gesendet werden:

PHP:
mysql_query($aendern);


Dunsti
 
Ah danke dir, funktioniert....

also dass ich da eine Variable statt dem Username eingebe der geändert werden soll ist doch nicht so leicht, kann mir da mal wer sagen wie ich das machen könnte?

Zuvor werden alle Usernamen mit ihrem Passwort ausgegeben in einer while schleife...
Wie kann ich jeztz neben jeden Namen einen Link machen der zu diesem Formualr führt und als Info hinten zB '?user=freebird' dran hat... also variabel eben...
 
jo, Du machst einen Link, der so aussieht:
PHP:
echo "<a href=\"aendern.php?user=$username\">aendern</a>";

dann hast Du in dem Script die Variable $user mit dem entsprechenden Namen drin.

dann einfach:
PHP:
$aendern = "UPDATE test SET username = '$aendername', password = '$aenderpw' WHERE username = '$user'";

is ganz einfach :)


Dunsti
 
Jo thx das wusste ich eh nur wie bekomme ich die Variable $user in den Link???

Wenn ich mit einer while schleife alle user wiedergebe?
 
wenn Du den Link innerhalb der While-Schleife ausgibst, dann wird doch da bei jedem Link automatisch ein anderer Username reingeschrieben, weil $username bei jedem Durchlauf anders ist ;)


Dunsti
 
ja aber die while-schleife sieht so aus:

PHP:
   while ($myrow = mysql_fetch_object($result)) {
   echo "<table width=100% border=1>
   <tr>
   <td width=50%><a href=\"aendern.php?user=$myrow->username\">$myrow->username</a></td>
   <td width=50%>$myrow->password</td>
   </tr>
   </table>";
   }

Oke das mit dem Link hab ich nur... er ändert mir die daten nicht...
die aendern.php sieht so aus:

PHP:
<?
    echo "<form action=$PHP_SELF method=Post name=aendern>
          <input type=text name=aendername>
          <input type=text name=aenderpw>
          <input type=submit value=Ändern>
          </form>";


    if (!empty($aendername)) {
    $connect2 = mysql_connect("localhost","es","es11");
    mysql_select_db("es",$connect2);
    $aendern = "UPDATE test SET username = '$aendername',
                                password = '$aenderpw' WHERE username = '$user'";
    $aaendern = mysql_query($aendern);

     }
     if ($aendern)
     echo $aaendern;
?>

Und es ändert sich nix :(
Aber er schreibt mir nach Klicken auf den Send-Buton eine 1 aus (???)
 
Zuletzt bearbeitet:
hmm ... bist Du sicher, daß er nix ändert ?

daß er eine 1 schreibt liegt daran, daß in $aaendern eine 1 drin steht, und das sagt aus, daß eine Zeile geändert wurde.

probiers mal so:

PHP:
$connect2 = mysql_connect("localhost","es","es11");
mysql_select_db("es",$connect2);

if (isset($aendern)) {
    $aendern = "UPDATE test SET username = '$aendername', password = '$aenderpw' WHERE username = '$user'";
    mysql_query($aendern);
    $abfrage = "SELECT * FROM test WHERE username = '$user'";
    $result = mysql_query($abfrage);
    $myrow = mysql_fetch_object($result)
    echo $myrow->username . " -- " . $myrow->passwort;
}

elseif (isset($user)) {
    echo "<form action=$PHP_SELF method=Post name=aendern>
            <input type=text name=aendername>
            <input type=text name=aenderpw>
            <input type=submit value=Ändern>
          </form>";
}

else {
    $abfrage = "SELECT * FROM test";
    $result = mysql_query($abfrage);
    while ($myrow = mysql_fetch_object($result)) {
        echo "<table width=100% border=1>
                <tr>
                  <td width=50%><a href=\"aendern.php?user=$myrow->username\">$myrow->username</a></td>
                  <td width=50%>$myrow->password</td>
                </tr>
              </table>";
   }
}

dann werden nach dem UPDATE direkt die Werte nochma ausgelesen, und ausgegeben ;)


hope that helpz

Dunsti
 
dann sind noch KEINE Einträge in der Datenbank vorhanden. Eine Ausgabe erfolgt ja nur in der WHILE-Schleife, und die wird nur durchlaufen, wenn die SQL-Abfrage ein Ergebnis bringt ;)

oder Du hast evtl. die falsche Tabelle angegeben ?


Dunsti
 
Zurück