mit Datenbankeinträgen (PHP&MySQL)


  • jojoD
  • 1622 Aufrufe 13 Antworten

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • mit Datenbankeinträgen (PHP&MySQL)

    Das Script soll die Daten aus einer Tabelle auslesen, in Input-Felder zur Bearbeitung stecken und dann nach Buttonklick wieder reinschreiben. Allerdings macht er das nicht, sondern löscht die Einträge in name und logo und aktualisiert die restlichen Einträge nicht. Wo liegt mein Fehler? Hier der teil des scripts der für die o.g. Aufgaben zuständig ist:

    ------------------------------------------------------------

    $result=mysql_query("SELECT * FROM tabelle WHERE id='$id'");
    $i=mysql_fetch_object($result);
    $name=$i -> name;
    $logo=$i -> logo;
    $saisons=$i -> saisons;
    $sh=$i -> sh;
    $sg=$i -> sg;
    $uh=$i -> uh;
    $ug=$i -> ug;
    $nh=$i -> nh;
    $ng=$i -> ng;
    $toreh=$i -> toreh;
    $toreg=$i -> toreg;
    $gtoreh=$i -> gtoreg;
    $gtoreg=$i -> gtoreg;
    $punkteh=$i -> punkteh;
    $punkteg=$i -> punkteg;
    $abzug=$i -> abzug;
    ?>
    <form action="bearbeiten.php" method="post">
    <table>
    <tr><td>Name:</td><td><input name="name" value="<?=$name?>"></td></tr>
    <tr><td>Logo:</td><td><input name="logo" value="<?=$logo?>"></td></tr>
    <tr><td>Saisons:</td><td><input name="saisons" value="<?$saisons?>"></td></tr>
    <tr><td>Heimsiege:</td><td><input name="sh" value="<?=$sh?>"></td></tr>
    <tr><td>Auwärtssiege:</td><td><input name="sg" value="<?=$sg?>"></td></tr>
    <tr><td>Heimunentschieden:</td><td><input name="uh" value="<?=$uh?>"></td></tr>
    <tr><td>Auswärtsunentschieden:</td><td><input name="ug" value="<?=$ug?>"></td></tr>
    <tr><td>Heimniederlagen:</td><td><input name="nh" value="<?=$nh?>"></td></tr>
    <tr><td>Auswärtsniederlagen:</td><td><input name="ng" value="<?=$ng?>"></td></tr>
    <tr><td>Heimtore:</td><td><input name="toreh" value="<?=$toreh?>"></td></tr>
    <tr><td>Auswärtstore:</td><td><input name="toreg" value="<?=$toreg?>"></td></tr>
    <tr><td>Heimgegentore:</td><td><input name="gtoreh" value="<?=$gtoreh?>"></td></tr>
    <tr><td>Heimgegentore:</td><td><input name="gtoreg" value="<?=$gtoreg?>"></td></tr>
    <tr><td>Punktabzug (positiv angeben):</td><td><input name="abzug" value="<?=$abzug?>"></td></tr>
    <tr><td><input type="submit" value="OK"></td><td><a href="bearbeiten.php">zur Auswahl</a></td></tr>
    </table>
    </form>
    <?
    $name=$_POST['name'];
    $logo=$_POST['logo'];
    $saisons=$_POST['saisons'];
    $sh=$_POST['sh'];
    $sg=$_POST['sg'];
    $uh=$_POST['uh'];
    $ug=$_POST['ug'];
    $nh=$_POST['nh'];
    $ng=$_POST['ng'];
    $toreh=$_POST['toreh'];
    $toreg=$_POST['toreg'];
    $gtoreh=$_POST['gtoreg'];
    $gtoreg=$_POST['gtoreg'];
    $punkteh=$_POST['punkteh'];
    $punkteg=$_POST['punkteg'];
    $abzug=$_POST['abzug'];
    $query="UPDATE tabelle SET"
    ."name='$name',"
    ."logo='$logo',"
    ."saisons='$saisons',"
    ."sh='$sh',"
    ."sg='$sg',"
    ."uh='$uh',"
    ."ug='$ug',"
    ."nh='$nh',"
    ."ng='$ng',"
    ."toreh='$toreh',"
    ."toreg='$toreg',"
    ."gtoreh='gtoreh',"
    ."gtoreg='$gtoreg',"
    ."abzug='$abzug'"
    ."WHERE id=$id";
    $result=mysql_query($query);

    ------------------------------------------------------------

    Vielen Dank im Voraus für eure Hilfe!
    Ordentliche Menschen sind selten genial, geniale selten ordentlich. (Albert Einstein)
  • also erstens schreibfehler:

    Quellcode

    1. $gtoreh=$i -> gtoreg;

    Quellcode

    1. $gtoreh=$_POST['gtoreg'];

    Quellcode

    1. ."WHERE id=$id";

    ob die direkt was mit deinem momentanen Fehler zu zun haben glaube ich allerdings nicht.

    eine etwas andere lösung:

    PHP-Quellcode

    1. <?
    2. $result=mysql_query("SELECT * FROM tabelle WHERE id='$id'");
    3. $i = mysql_fetch_array($result,MYSQL_ASSOC);
    4. ?>
    5. <form action="bearbeiten.php" method="post" enctype="multipart/form-data">
    6. <table>
    7. <tr><td>Name:</td><td><input name="name" value="<? echo"$i[name]"; ?>"></td></tr>
    8. <tr><td>Logo:</td><td><input name="logo" value="<? echo"$i[logo]"; ?>"></td></tr>
    9. <tr><td>Saisons:</td><td><input name="saisons" value="<? echo"$i[saisons]"; ?>"></td></tr>
    10. <tr><td>Heimsiege:</td><td><input name="sh" value="<? echo"$i[sh]"; ?>"></td></tr>
    11. <tr><td>Auwärtssiege:</td><td><input name="sg" value="<? echo"$i[sg]"; ?>"></td></tr>
    12. <tr><td>Heimunentschieden:</td><td><input name="uh" value="<? echo"$i[uh]"; ?>"></td></tr>
    13. <tr><td>Auswärtsunentschieden:</td><td><input name="ug" value="<? echo"$i[ug]"; ?>"></td></tr>
    14. <tr><td>Heimniederlagen:</td><td><input name="nh" value="<? echo"$i[nh]"; ?>"></td></tr>
    15. <tr><td>Auswärtsniederlagen:</td><td><input name="ng" value="<? echo"$i[ng]"; ?>"></td></tr>
    16. <tr><td>Heimtore:</td><td><input name="toreh" value="<? echo"$i[toreh]"; ?>"></td></tr>
    17. <tr><td>Auswärtstore:</td><td><input name="toreg" value="<? echo"$i[toreg]";?>"></td></tr>
    18. <tr><td>Heimgegentore:</td><td><input name="gtoreh" value="<? echo"$i[gtoreh]"; ?>"></td></tr>
    19. <tr><td>Heimgegentore:</td><td><input name="gtoreg" value="<? echo"$i[gtoreg]"; ?>"></td></tr>
    20. <tr><td>Punktabzug (positiv angeben):</td><td><input name="abzug" value="<? echo"$i[abzug]"; ?>"></td></tr>
    21. <tr><td><input type="submit" value="OK"></td><td><a href="bearbeiten.php">zur Auswahl</a></td></tr>
    22. </table>
    23. </form>
    24. <?
    25. $upd="UPDATE tabelle SET "
    26. ."name='$name',"
    27. ."logo='$logo',"
    28. ."saisons='$saisons',"
    29. ."sh='$sh',"
    30. ."sg='$sg',"
    31. ."uh='$uh',"
    32. ."ug='$ug',"
    33. ."nh='$nh',"
    34. ."ng='$ng',"
    35. ."toreh='$toreh',"
    36. ."toreg='$toreg',"
    37. ."gtoreh='gtoreh',"
    38. ."gtoreg='$gtoreg',"
    39. ."abzug='$abzug'"
    40. ."WHERE id='$id'";
    41. mysql_query($upd) or die(mysql_error());
    42. ?>
    Alles anzeigen


    natürlich nicht getestet...
    mein PC . . meine Blackliste . . Download mit FlashFXP
    [SIZE="2"]im moment NICHT aktiv, PN's werden warscheinlich nicht gelesen^^[/SIZE]
  • XAMPP ... das ist gut möglich.
    vieleicht musst du in der php.ini noch was ändern.
    (register globals?) bin mir da aber nicht sicher. Ich teste nie Lokal.

    versuch mal ne andere schreibweise.. beim Update.
    sieht für mich zwar nach demselben aus, aber man weiss ja nie...

    PHP-Quellcode

    1. <?
    2. $upd="UPDATE tabelle SET name='$name', logo='$logo', saisons='$saisons', sh='$sh', sg='$sg', uh='$uh', ug='$ug', nh='$nh', ng='$ng', toreh='$toreh', gtoreh='gtoreh', gtoreg='$gtoreg', abzug='$abzug' WHERE id='$id'";
    3. mysql_query($upd)or die(mysql_error());
    4. ?>


    ausserden prüfe einmal ob die Variablen auch wirklich verfügbar sind.
    gib vor dem update den namen oder das Logo aus.

    PHP-Quellcode

    1. echo "$name";

    wenn der Name nicht angezeigt wird, sind die Variablen nicht verfügbar.
    dann sind alle werte = '' und wenn du in der Datenbank INTEGER Felder hast, sind diese = '0'
    was ja bei dir der fall ist...
    mein PC . . meine Blackliste . . Download mit FlashFXP
    [SIZE="2"]im moment NICHT aktiv, PN's werden warscheinlich nicht gelesen^^[/SIZE]
  • woodooman schrieb:

    XAMPP ... das ist gut möglich.
    vieleicht musst du in der php.ini noch was ändern.
    (register globals?) bin mir da aber nicht sicher. Ich teste nie Lokal.

    ...


    Eher umgekehrt kanns dir gehen lokal mit Xampp läufts aber auf dem eigentlcih Server nicht, da xammp so eingestellt ist das es sehr offen ist, ist ja als Entwicklungs-und Testumgebung gedacht....

    Ich nutze xampp sogar für meinen offi. Web-Server mithilfe des security befehls läßt sich das Ding gut für die Öffentlichkeit gebrauchen...
    [SIZE=1]
    Was ist der Unterschied zwischen einem U-Boot und MS Windows?
    Keiner, sobald man ein Fenster aufmacht, fangen die Probleme an
    Alle Tips von mir ohne Gewähr und auf eigenes Risiko !!
    UP1 UP2 UP3[/SIZE][SIZE=1]
    [/SIZE]
  • Um die Werte von Variablen in einen String hinzuzufügen muss man das machen:

    PHP-Quellcode

    1. $string = "Wert 1=".$wert1.", Wert 2=".$wert2;



    dann muss der update befehle so lauten:

    PHP-Quellcode

    1. <?
    2. $upd="UPDATE tabelle SET name='".$name."',
    3. logo='".$logo."',
    4. saisons='".$saisons."',
    5. sh='".$sh."',
    6. sg='".$sg."',
    7. uh='".$uh."',
    8. ug='".$ug."',
    9. nh='".$nh."',
    10. ng='".$ng."',
    11. toreh='".$toreh."',
    12. gtoreh='".gtoreh."',
    13. gtoreg='".$gtoreg."',
    14. abzug='".$abzug."'
    15. WHERE id='".$id."'";
    16. mysql_query($upd) or die("<br>Update fehlgeschlagen</br>");
    17. ?>
    Alles anzeigen


    und verwende bessere Variablennamen....bei denen man sofort erkennt was die "beinhalten"

    MfG
    bald_patr
  • Weiterhin ist das Problem wenn du auf den OK Button klickst, wo ist die Anweisung dafür das er dann was machen soll ?

    <input type="submit" name="okbutton" value="OK">
    <input type="hidden" name="id" value="$id">


    ^^ das fett geschriebene ergänzen

    PHP-Quellcode

    1. if (isset($_POST['okbutton']))
    2. {
    3. $upd="UPDATE tabelle SET name='".$_POST['name']."',
    4. logo='".$_POST['logo']."',
    5. saisons='".$_POST['saisons']."',
    6. sh='".$_POST['sh']."',
    7. sg='".$_POST['sg']."',
    8. uh='".$_POST['uh']."',
    9. ug='".$_POST['ug']."',
    10. nh='".$_POST['nh']."',
    11. ng='".$_POST['ng']."',
    12. toreh='".$_POST['toreh']."',
    13. gtoreh='".$_POST['toreh']."',
    14. gtoreg='".$_POST['gtoreg']."',
    15. abzug='".$_POST['abzug']."'
    16. WHERE id='".$_POST['id']."'";
    17. mysql_query($upd) or die("<br>Update fehlgeschlagen</br>");
    18. echo "<META HTTP-EQUIV='refresh' CONTENT='0; URL='".$GLOBALS['PHP_SELF']."'>";
    19. }
    Alles anzeigen


    Damit sollte es dann klappen. Der Refresh (evtl. URL anpassen wg. ID Übergabe per $_GET) bewirkt das du gleich die aktualisierten Inhalte in den Edit Feldern hast.

    Mfg kc
    [size=1]It's not a bug, it's a feature.[/size]
    [size=3]Bin vom 05.06.2006 - 10.06.2006 im Urlaub[/Size]
  • jojoD schrieb:

    Was meinst du mit sql dump?*unwissend sei*



    du sollst ein Backup deiner Tabelle über PhPmyadmin oder was auch immer machen, damit er das proben kann...
    [SIZE=1]
    Was ist der Unterschied zwischen einem U-Boot und MS Windows?
    Keiner, sobald man ein Fenster aufmacht, fangen die Probleme an
    Alle Tips von mir ohne Gewähr und auf eigenes Risiko !!
    UP1 UP2 UP3[/SIZE][SIZE=1]
    [/SIZE]