Problem mit UPDATE von Zeilen

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Problem mit UPDATE von Zeilen

    Hallo ich möchte mittels einer PHP Datei bestimmte Datensätze einer
    MySQL Tabelle Updaten.

    der Betreffende Quelltext Sieht so aus:
    PHP-Code:
    $sql "UPDATE `results_4m` SET `gegner` = '$gegner' , `datum` =
     '
    $datum' , `heim` = '$heim' , `gast` = '$gast' , `bester_h` = 
    '
    $bester_h' , `bester_g` = '$bester_g' , `mit_h_v` = '$mit_h_v' , 
    `mit_h_a` = '
    $mit_h_a' , `mit_h_g` = '$mit_h_g' , `mit_h_f` = 
    '
    $mit_h_f' , `mit_g_v` = '$mit_g_v' , `mit_g_a` = '$mit_g_a' , 
    `mit_g_g` = '
    $mit_g_g' , `mit_g_f` = '$mit_g_f' , `gesamt_h` = 
    '
    $gesamt_h' , `differenz` = '$differenz' , `gesamt_g` = '$geasmt_g' ,
     `comment` = '
    $comment' , `einzeln_h1` = '$einzeln_h1' , 
    `einzele_h1` = '
    $einzele_h1' , `einzele_g1` = '$einzele_g1' , 
    `einzeln_g1` = '
    $einzeln_g1' , `einzeln_h2` = '$einzeln_h2' , 
    `einzele_h2` = '
    $einzele_h1' , `einzele_g2` = '$einzele_g2' , 
    `einzeln_g2` = '
    $einzeln_g2' , `einzeln_h3` = '$einzeln_h3' , 
    `einzele_h3` = '
    $einzele_h3' , `einzele_g3` = '$einzele_g3' , 
    `einzeln_g3` = '
    $einzeln_g3' , `einzeln_h4` = '$einzeln_h4' , 
    `einzele_h4` = '
    $einzele_h4' , `einzele_g4` = '$einzele_g4' , 
    `einzeln_g4` = '
    $einzeln_g4' , `einzeln_h5` = '$einzeln_h5' , 
    `einzele_h5` = '
    $einzele_h5' , `einzele_g5` = '$einzele_g5' , 
    `einzeln_g5` = '
    $einzeln_g5' , `einzeln_h6` = '$einzeln_h6' , 
    `einzele_h6` = '
    $einzele_h6' , `einzele_g6` = '$einzele_g6'  ,  
    `einzeln_g6` = '
    $einzeln_g6' WHERE `id` ='$nr'";

        (
    add als symbolmysql_query($sql$connect);
        echo 
    mysql_errno() . ": " mysql_error() . "\n"
    Mein Problem liegt bei der Variable $nr.

    Diese variable übernimmt er nicht und macht ohne fehlermeldung
    weiter. wenn ich mir die variable so ausgeben lasse:
    PHP-Code:
    echo "$nr"
    geht es

    $nr wird vorher aus einer anderen Datei übergeben

    wenn ich
    PHP-Code:
    WHERE `id` =25"; 
    statt
    PHP-Code:
    WHERE `id` ='$nr'"; 
    nehme wird der richtige datensatz geändert.

    was habe ich hier Übersehen oder geht das so überhaupt nicht???

    Danke
    Zuletzt geändert von dertipi; 26.02.2006, 19:44.

  • #2
    Update

    komm aus deiner Update-Anweisung mit id und nr
    nicht ganz schlau !

    bei mir würde das so etwa aussehen.

    wenn die Nr aus einer abfrage stammt:
    PHP-Code:
    WHERE id='".$ergebniss[nr]."' 
    wenn die Nr fest steht:
    PHP-Code:
    WHERE id='".$nr."' 
    vielleicht hilft dir das weiter?!

    Gruss
    Skeleton
    Zuletzt geändert von ==SKELETON==; 26.02.2006, 07:09.
    [color=red]WARNING[/color]
    You have an Error in WIN XP
    Please Update for more Errors

    Kommentar


    • #3
      :-)

      Die Variable enthält die ID des datensatzes der bearbeitet werden soll
      und wird asu einem anderem Dokument so Übergeben:
      PHP-Code:
      <a href=\"http://HOMEPAGE/admin/
      edit.php?nr=
      $id&tabellee=$tabelle\">bearbeiten</a> 
      Deine Variante geht auch nicht er macht weiter ohne Fehlermeldung
      PHP-Code:
      echo mysql_errno() . ": " mysql_error() . "\n"
      Liefert 0.

      Wie schon erwähnt wenn im Quelltext die ID als 25 zb. steht updatet
      er den datensatz mit der id 25 in der sql tabelle. aber die variable wird nicht verarbeitet woran kann das denn noch liegen.

      HIer geht des doch auch
      PHP-Code:
            $inhalt mysql_query("select * from $tabelle WHERE `id` = 
      $nr"); 
      ????????????????????????????????????????????????????????????

      Kommentar


      • #4
        1. wenn der spaltentyp von `id` eine ganze zahl ist, musst du die hochkommata herausnehmen.

        2. und register globals sollte dir auch ein begriff sein.

        3. hat man dir schon mal ein kompliment für das datenbankdesign gemacht? nein? zurecht.

        4. deine taste mit dem fragezeichen klemmt.

        Kommentar


        • #5
          1. ist ne Ganzahl.

          2. Register Global ist mir ein begriff. dar benutzer soll aber di ID
          übergeben um den datensatz zu ändern

          3. Hat man nicht sehe blos keinen sin etwas in 2 oder mehr tabellen zu
          packen was in eine gehört

          4. Klemmt nicht

          :-)

          Danke
          Zuletzt geändert von dertipi; 26.02.2006, 19:59.

          Kommentar


          • #6
            immer noch das gleiche

            Ich habe immer noch das Problem das die variable ignoriert wird und
            nix in der zeile geändert wird hat hier noch nix geholfen könnte es
            daran liegen das es in einer If bedingung laufen tut?

            Kommentar


            • #7
              Hast du Punkt 1 von penizillin umgesetzt?
              Wenn Ja, wie sieht dein aktueller Code aus?
              mfg - sagg

              Kommentar


              • #8
                so:

                PHP-Code:
                $sql "UPDATE `results_4m` SET  `gegner` = '$gegner' , `datum` 
                = '
                $datum' , `heim` = '$heim' , `gast` = '$gast' , `bester_h` = 
                '
                $bester_h' , `bester_g` = '$bester_g' , `mit_h_v` = '$mit_h_v' , 
                `mit_h_a` = '
                $mit_h_a' , `mit_h_g` = '$mit_h_g' , `mit_h_f` = 
                '
                $mit_h_f' , `mit_g_v` = '$mit_g_v' , `mit_g_a` = '$mit_g_a' , 
                `mit_g_g` = '
                $mit_g_g' , `mit_g_f` = '$mit_g_f' , `gesamt_h` = 
                '
                $gesamt_h' , `differenz` = '$differenz' , `gesamt_g` = '$geasmt_g' ,
                 `comment` = '
                $comment' , `einzeln_h1` = '$einzeln_h1' , 
                `einzele_h1` = '
                $einzele_h1' , `einzele_g1` = '$einzele_g1' , 
                `einzeln_g1` = '
                $einzeln_g1' , `einzeln_h2` = '$einzeln_h2' , 
                `einzele_h2` = '
                $einzele_h1' , `einzele_g2` = '$einzele_g2' , 
                `einzeln_g2` = '
                $einzeln_g2' , `einzeln_h3` = '$einzeln_h3' , 
                `einzele_h3` = '
                $einzele_h3' , `einzele_g3` = '$einzele_g3' , 
                `einzeln_g3` = '
                $einzeln_g3' , `einzeln_h4` = '$einzeln_h4' , 
                `einzele_h4` = '
                $einzele_h4' , `einzele_g4` = '$einzele_g4' , 
                `einzeln_g4` = '
                $einzeln_g4' , `einzeln_h5` = '$einzeln_h5' , 
                `einzele_h5` = '
                $einzele_h5' , `einzele_g5` = '$einzele_g5' , 
                `einzeln_g5` = '
                $einzeln_g5' , `einzeln_h6` = '$einzeln_h6' , 
                `einzele_h6` = '
                $einzele_h6' , `einzele_g6` = '$einzele_g6'  ,  
                `einzeln_g6` = '
                $einzeln_g6'  WHERE `id` = $nr"

                da ich mal davon ausgin das `id` so bleiben musste sonnst würde ein fehler kommen (habe ich mal Probirt)
                mit dieser zeile Kommt kein fehler ändert allerdings auch nix in der tabelle

                Gruß dertipi
                Zuletzt geändert von dertipi; 26.02.2006, 21:33.

                Kommentar


                • #9
                  nochmal auch von mir ..... register_globals heisst, dass du $_GET bzw $_POST verwenden sollst!

                  und wo wir grad dabei sind ... wo ist deine verwendung von mysql_real_escape_string() ?
                  INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                  Kommentar


                  • #10
                    Update

                    Vorschlag entscheide dich für ID oder NR, weil das wichtig beim Update ist !
                    nicht einmal id=$nr und einmal nr=$id !

                    dieser Link kann wohl nicht dein ernst sein:
                    PHP-Code:
                    <a href="http://HOMEPAGE/admin/edit.php?nr=$id&tabellee=$tabelle\">bearbeiten</a> 
                    Gruss
                    Skeleton
                    [color=red]WARNING[/color]
                    You have an Error in WIN XP
                    Please Update for more Errors

                    Kommentar


                    • #11
                      Re: Update

                      Original geschrieben von ==SKELETON==
                      Vorschlag entscheide dich für ID oder NR, weil das wichtig beim Update ist !
                      nicht einmal id=$nr und einmal nr=$id !

                      dieser Link kann wohl nicht dein ernst sein:
                      PHP-Code:
                      <a href="http://HOMEPAGE/admin/edit.php?nr=$id&tabellee=$tabelle\">bearbeiten</a> 
                      mfg - sagg

                      Kommentar


                      • #12
                        wie

                        für was benötige ich denn jetzt den
                        PHP-Code:
                        mysql_real_escape_string() 

                        nochmal bin noch nicht so lange mit php beschäftigt. die daten die er
                        updaten soll kommen aus einem HTML Formular das eintragen geht ja
                        wenn ich $nr durch 25 ersetzte da wird datensatz 25 in der tabelle
                        geupdatet. und die variable auslesen am ende des formularts geht
                        auch klappt ja schon am anfang wenn ich die daten in das formular
                        einlese. hier aber nochmal der ensprechende quelltext:
                        PHP-Code:
                        <?php
                        $fehler 
                        0;
                        $fehlermeldungStart '<table width="600" border="0" 
                        bgcolor="#000000" cellpadding="5" cellspacing="1" 
                        align="center">'
                        ."\n";
                        $fehlermeldung "<tr>\n<td bgcolor=\"#227CAC\" colspan=\"2\" 
                        align=\"center\"><span class=\"header\">Oooops! Es traten Fehler 
                        auf!</span></td>\n</tr>\n"
                        ;
                        $fehlermeldungEnde "<tr>\n<td bgcolor=\"#227CAC\" 
                        colspan=\"2\" align=\"center\">Klicke bitte auf <a 
                        href=\"javascript:history.back()\">Zur&uuml;ck</a> und &auml;ndere
                         Deine Angaben!</td>\n</tr>\n"
                        ;

                        $fehlermeldungEnde .= "</table>\n";
                        if(
                        $gegner == "") {
                            
                        $fehler 1;
                            
                        $fehlermeldung .= "<tr>\n<td width=\"190\" 
                        bgcolor=\"#227CAC\">Gegner:</td>\n"
                        ;
                            
                        $fehlermeldung .= "<td width=\"410\" 
                        bgcolor=\"#dedede\"><span class=\"fehler\">Der Name des 
                        Gegners fehlt!</span></td>\n</tr>\n"
                        ;

                        }

                        ?>



                        <?php
                        if(!$submit) {
                        ?>
                        <?php
                        echo "$idw&nbsp;$tabelle<br>";
                              
                        $inhalt mysql_query("select * from $tabelle WHERE `id` = '$nr'");
                              
                        $row mysql_fetch_row($inhalt);
                        echo 
                        "<form action=\"$PHP_SELF\" method=\"post\">";         
                        echo 
                        "<table border=\"1\" width=\"100%\" id=\"line1\">";

                        Das Formular


                        echo "</table><br>";
                        echo 
                        "<input type=\"reset\" name=\"reset\" value=\"Angaben 
                        l&ouml;schen\">&nbsp;<input type=\"submit\" name=\"submit\" 
                        value=\"Eintragen\"><hr>"
                        ;
                        echo 
                        "$row[0]";
                        echo 
                        "<br>";
                        echo 
                        "$nr";
                        echo 
                        "</form>";

                        ?>
                        <?php
                        }elseif($submit && $fehler == 1) {
                            echo 
                        $fehlermeldungStart;
                            echo 
                        $fehlermeldung;
                            echo 
                        $fehlermeldungEnde;
                        }else{
                            
                            
                        $nr $row[0];
                            
                        $eintrag strip_tags($eintrag);
                            
                        $eintrag htmlentities($eintrag);
                            
                        $sql "UPDATE `results_4m` SET `gegner` = '$gegner' , 
                        `datum` = '
                        $datum' , `heim` = '$heim' , `gast` = '$gast' , 
                        `bester_h` = '
                        $bester_h' , `bester_g` = '$bester_g' , `mit_h_v` = 
                        '
                        $mit_h_v' , `mit_h_a` = '$mit_h_a' , `mit_h_g` = '$mit_h_g' , 
                        `mit_h_f` = '
                        $mit_h_f' , `mit_g_v` = '$mit_g_v' , `mit_g_a` = 
                        '
                        $mit_g_a' , `mit_g_g` = '$mit_g_g' , `mit_g_f` = '$mit_g_f' , 
                        `gesamt_h` = '
                        $gesamt_h' , `differenz` = '$differenz' , `gesamt_g` 
                        = '
                        $geasmt_g' , `comment` = '$comment' , `einzeln_h1` = 
                        '
                        $einzeln_h1' , `einzele_h1` = '$einzele_h1' , `einzele_g1` = 
                        '
                        $einzele_g1' , `einzeln_g1` = '$einzeln_g1' , `einzeln_h2` = 
                        '
                        $einzeln_h2' , `einzele_h2` = '$einzele_h1' , `einzele_g2` = 
                        '
                        $einzele_g2' , `einzeln_g2` = '$einzeln_g2' , `einzeln_h3` = 
                        '
                        $einzeln_h3' , `einzele_h3` = '$einzele_h3' , `einzele_g3` = 
                        '
                        $einzele_g3' , `einzeln_g3` = '$einzeln_g3' , `einzeln_h4` = 
                        '
                        $einzeln_h4' , `einzele_h4` = '$einzele_h4' , `einzele_g4` = 
                        '
                        $einzele_g4' , `einzeln_g4` = '$einzeln_g4' , `einzeln_h5` = 
                        '
                        $einzeln_h5' , `einzele_h5` = '$einzele_h5' , `einzele_g5` = 
                        '
                        $einzele_g5' , `einzeln_g5` = '$einzeln_g5' , `einzeln_h6` = 
                        '
                        $einzeln_h6' , `einzele_h6` = '$einzele_h6' , `einzele_g6` = 
                        '
                        $einzele_g6'  ,  `einzeln_g6` = '$einzeln_g6' WHERE `id` like '$nr'";

                            
                        mysql_query($sql);
                            echo 
                        mysql_errno() . ": " mysql_error() . "\n";
                            echo 
                        "$nr";
                        ?>

                        Das auslesen in das formular geht ja und er nimmt auch den Datensatz mit der entsprechenden id ($nr)

                        was fehlt jetzt noch oder ist verkehrt

                        Kommentar


                        • #13
                          @skelleton

                          warum kann dieser link nicht mein ernst sein?

                          die id als variable zu übergeben hatte ich ja probiert aber das ging nicht deshalb dachte ich ich übergebe eine andere variable um nicht mit dem ausgelesenem formular ins gehege zu kommen
                          Zuletzt geändert von dertipi; 26.02.2006, 22:03.

                          Kommentar


                          • #14
                            Re: @skelleton

                            Original geschrieben von dertipi
                            warum kann dieser link nicht mein ernst sein?

                            die id als variable zu übergeben hatte ich ja probiert
                            aber das ging nicht deshalb dachte ich ich übergebe
                            eine andere variable um nicht mit dem ausgelesenem
                            formular ins gehege zu kommen
                            dieser Link hatt 2 Fehler!

                            1. Fehler
                            tabellee=$tabelle

                            2. Fehler
                            $tabelle\">

                            Gruss
                            Skeleton
                            [color=red]WARNING[/color]
                            You have an Error in WIN XP
                            Please Update for more Errors

                            Kommentar


                            • #15
                              Update

                              @ dertipi

                              deine else-Anweisung ist auch fehlerhaft,
                              da steht $nr=$row[0] !

                              Gruss
                              Skeleton
                              [color=red]WARNING[/color]
                              You have an Error in WIN XP
                              Please Update for more Errors

                              Kommentar

                              Lädt...
                              X