Daten ändern in MYSQL mit PHP

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

  • #16
    PHP-Code:
    <html>
    <head>
    </head>
    <body>
    <?php
    $auswahl
    =$_POST['auswahl'];
    $aend=$_POST['aend'];
    include(
    'inc/mysql.inc');
    $sqlab "SELECT anz, kategorie, strecke, name, vorname, strasse, plz, wohnort, land, datum, email, telefon,
    teamname FROM herrenrace WHERE anz = 
    $auswahl";
    $res mysql_query($sqlab);
    $num mysql_num_rows($res);
    $altekategorie=mysql_result($res0"kategorie");
    echo 
    "<form action='datenaendernschreibenherrenrace.php' method='post'>";
    echo 
    "<table width ='70%' align='center' BORDER=0 CELLSPACING=0 CELLPADDING=5 BGCOLOR=#F17D32>";
    echo 
    "<tr bgcolor='#CCCCCC' align ='center'>";
    echo 
    "<td colspan='10'>
    Daten ändern und Button betätigen</td>"
    ;
    echo 
    "</tr>";
    echo 
    "<tr>";
    echo 
    "<td><input name='neuekategorie' value='$altekategorie'>Kategorie</td>";
    echo 
    "</tr>";
    echo 
    "</table>";
    echo 
    "<table width ='70%' align='center' BORDER=0 CELLSPACING=0 CELLPADDING=5 BGCOLOR='#CCCCCC'>";
    echo 
    "<tr>";
    echo 
    "<td width=1%><input type='submit' name='send' value='senden'></td>";
    echo 
    "<td width=20%><input type='reset' value='zurücksetzen'></td>";
    echo 
    "</tr>";
    echo 
    "</table>";
    echo 
    "<input type='hidden' name='oriid' value='$auswahl'>";
    echo 
    "</form>";
    mysql_close($dz);
    echo 
    "<br>";
    echo 
    "<font color=red style='verdana'>Es wurde keinen Datensatz ausgewählt!<br></font>";
    echo
    "<a href=\"javascript:history.back();\">
      <b><font color=blue style='verdana' size='3'><br>zurück</b></font></a>"
    ;
    ?>
    </body>
    </html>
    Wenn ich keine Daten ausgewählt habe kommt:
    Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in C:\apachefriends\xampp\htdocs\heinigersport\berner_rundfahrt\datenaendernherrenrace.php on line 12

    Mit Daten erscheint keine Fehlermeldung aber die Meldung:
    Es wurde keinen Datensatz ausgewählt!
    Zuletzt geändert von andreas0063; 22.07.2005, 23:44.

    Kommentar


    • #17
      benutzt du bitte die php-tags, damit man den code hier besser lesen kann? sonst sieht sich das eh niemand an.

      zu deinem problem: verwende mysql_error
      Die Zeit hat ihre Kinder längst gefressen

      Kommentar


      • #18
        Glaube ich habe es hingekriegt.

        Zum Anfang mit:
        PHP-Code:
        if($auswahl <> ''){
        $auswahl=$_POST['auswahl'];
        $aend=$_POST['aend'];
        include..... 
        Am Ende mit:
        PHP-Code:
        ....
        mysql_close($dz);
        /* Ende von if */
        else{
        echo 
        "<br>";
        echo 
        "<font color=red style='verdana'>Es wurde keinen Datensatz ausgewählt!<br></font>";
        echo
        "<a href=\"javascript:history.back();\">
          <b><font color=blue style='verdana' size='3'><br>zurück</b></font></a>"
        ;
        }
        ?>
        </body>
        </html> 
        Zuletzt geändert von andreas0063; 22.07.2005, 23:48.

        Kommentar


        • #19
          Glückwunsch, genau so muss es sein!

          Kommentar


          • #20
            Ich möchte nun die Daten ändern und dabei die Kategorie wechseln. In MYSQL habe sind zwei Tabellen. Eine Tabelle Race und eine Tabelle Volk. Ich Lese die Daten aus der Tabelle Race mit dem Script "auswahl" und möchte diese nun in die Tabelle Volk zurückschreiben. Habe im Script "aendern" das Feld hidden weggenommen:

            PHP-Code:
            echo "<input type='hidden' name='oriid' value='$auswahl'>"
            Den Script "schreiben" habe ich so geändert:

            PHP-Code:
            <html>
            <head>
            </head>
            <body>
            <?php
            include('inc/mysql.inc');
            $neuekategorie=$_POST['neuekategorie'];
            $neuestrecke=$_POST['neuestrecke'];
            $neuername=$_POST['neuername'];
            $neuervorname=$_POST['neuervorname'];
            $neuestrasse=$_POST['neuestrasse'];
            $neueplz=$_POST['neueplz'];
            $neuerwohnort=$_POST['neuerwohnort'];
            $neuersland=$_POST['neuesland'];
            $neuesdatum=$_POST['neuesdatum'];
            $neueemail=$_POST['neueemail'];
            $neuetelefon=$_POST['neuetelefon'];
            $neuerteamname=$_POST['neuerteamname'];
            $oriid=$_POST['oriid'];
            if ((
            "Herren == $neuekategorie") AND ("Race" == $neuestrecke))
            {
              
            $sqlab"UPDATE herrenrace SET anz='',kategorie='$neuekategorie', strecke='$neuestrecke', name='$neuername',
              vorname ='
            $neuervorname', strasse ='$neuestrasse', plz ='$neueplz', wohnort ='$neuerwohnort',
              land ='
            $neuesland', datum ='$neuesdatum', telefon ='$neuetelefon', teamname ='$neuerteamname'";
              
            mysql_query($sqlab);
              
            $num=mysql_affected_rows();
              if(
            $num>0)
              {
                echo 
            "<p><b><font color='#006600' face='Verdana' size='2'>Der Datensatz wurde geändert!</font></b></p>";
                echo 
            "<a href='adminbereich.htm'>zurück zum Adminbereich</a></font></b></p>";
                echo 
            "<a href='datenauswahlherrenrace.php'>zurück um weitere Daten zu ändern</a></font></b></p><br><br>";
              }
            }

            include(
            'inc/mysql.inc');
            $neuekategorie=$_POST['neuekategorie'];
            $neuestrecke=$_POST['neuestrecke'];
            $neuername=$_POST['neuername'];
            $neuervorname=$_POST['neuervorname'];
            $neuestrasse=$_POST['neuestrasse'];
            $neueplz=$_POST['neueplz'];
            $neuerwohnort=$_POST['neuerwohnort'];
            $neuersland=$_POST['neuesland'];
            $neuesdatum=$_POST['neuesdatum'];
            $neueemail=$_POST['neueemail'];
            $neuetelefon=$_POST['neuetelefon'];
            $neuerteamname=$_POST['neuerteamname'];
            $oriid=$_POST['oriid'];
            if ((
            "Herren == $neuekategorie") AND ("Volk" == $neuestrecke))
            {
              
            $sqlab"UPDATE herrenvolk SET kategorie='$neuekategorie', strecke='$neuestrecke', name='$neuername',
              vorname ='
            $neuervorname', strasse ='$neuestrasse', plz ='$neueplz', wohnort ='$neuerwohnort',
              land ='
            $neuesland', datum ='$neuesdatum', telefon ='$neuetelefon', teamname ='$neuerteamname'";
              
            mysql_query($sqlab);
              
            $num=mysql_affected_rows();
              if(
            $num>0)
              {
                echo 
            "<p><b><font color='#006600' face='Verdana' size='2'>Der Datensatz wurde geändert!</font></b></p>";
                echo 
            "<a href='adminbereich.htm'>zurück zum Adminbereich</a></font></b></p>";
                echo 
            "<a href='datenauswahlherrenrace.php'>zurück um weitere Daten zu ändern</a></font></b></p><br><br>";
              }
            }

            else
              {
                echo 
            "<p><b><font color='#FF0000' face='Verdana' size='2'>Der Datensatz wurde nicht geändert!</font></b></p>";
                echo 
            "<a href='adminbereich.htm'>zurück zum Adminbereich</a></font></b></p>";
                echo 
            "<a href='datenauswahlherrenrace.php'>zurück um weitere Daten zu ändern</a></font></b></p><br><br>";
              }
            ?>
            </body>
            </html>
            Jetzt schreibt er mir zwar in die Tabelle Volk, nur werden mir jetzt gleich alle Einträge mit der Änderung überschrieben. Es sollte aber nur einen neuen Eintrag am Schluss anfügen. Der Primärschlüssel hat auto_increment in MYSQL.

            Kommentar


            • #21
              Hallo andreas0063,

              hier kann was nicht stimmen (siehst Du schon an der farblichen Hervorhebung):
              PHP-Code:
              if (("Herren == $neuekategorie") AND ("Race" == $neuestrecke)) 
              und
              PHP-Code:
              if (("Herren == $neuekategorie") AND ("Volk" == $neuestrecke)) 

              Dann hast Du
              UPDATE herrenrace SET anz='',kategorie='$neuekategorie', strecke='$neuestrecke', name='$neuername',
              vorname ='$neuervorname', strasse ='$neuestrasse', plz ='$neueplz', wohnort ='$neuerwohnort',
              land ='$neuesland', datum ='$neuesdatum', telefon ='$neuetelefon', teamname ='$neuerteamname'

              da fehlt die Bedingung WHERE:
              UPDATE set blablabla WHERE...
              sonst werden, wie Du festgestellt hast, alle Felder aktualisiert.

              Einträge werden nicht mit UPDATE eingefügt (damit werden nur bestehende aktualisiert), sondern mit INSERT INTO

              INSERT INTO table_name (column1, column2,...)
              VALUES (value1, value2,....)

              also

              INSERT INTO herrenrace (anz, kategorie,...)
              VALUES ('', '$neuekategorie',....)

              das
              PHP-Code:
              include('inc/mysql.inc');
              $neuekategorie=$_POST['neuekategorie'];
              $neuestrecke=$_POST['neuestrecke'];
              $neuername=$_POST['neuername'];
              $neuervorname=$_POST['neuervorname'];
              $neuestrasse=$_POST['neuestrasse'];
              $neueplz=$_POST['neueplz'];
              $neuerwohnort=$_POST['neuerwohnort'];
              $neuersland=$_POST['neuesland'];
              $neuesdatum=$_POST['neuesdatum'];
              $neueemail=$_POST['neueemail'];
              $neuetelefon=$_POST['neuetelefon'];
              $neuerteamname=$_POST['neuerteamname'];
              $oriid=$_POST['oriid']; 
              ist zwei Mal drin, unter Umständen nicht besonders wild, aber auch nicht nötig.

              Genaue Lösung führt hier ein wenig zu weit, ich schlage vor, Du arbeitest Dich anhand einfacher Beispiele ein wenig in SQL-Befehle ein, dann siehst Du recht schnell, wie Du Dein Script anpassen kannst.

              Die Grundlagen sind nur vier Seiten:

              http://www.w3schools.com/sql/default.asp

              SQL SELECT
              How to use the SELECT statement to select data from a table in SQL.

              SQL WHERE
              How to use the WHERE clause to specify a criterion for the selection.

              SQL INSERT INTO
              How to use the INSERT INTO statement to insert new rows into a table.

              SQL UPDATE
              How to use the UPDATE statement to update or change rows in a table.

              Kommentar

              Lädt...
              X