UPDATE Befehl funktioniert nicht auf Server

Einklappen
Dieses Thema ist geschlossen.
X
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • UPDATE Befehl funktioniert nicht auf Server

    Hallo liebe Freunde.
    Habe eine Problem. Mein Script funktioniert wunderbal zu hause auf meinem Localhost. Habe es jetzt auf meinen Server vom Anbieter Evanzo geschoben. Anzeigen und Löschen funktionieren wunderbal, aber der UPDATE Befehl nicht. Es erscheint keine Fehlermeldung. Es passiert einfach nix. Daten werden nicht aktualisiert.

    auf meinem Localhost läuft PHP Version 5.1.1 - MySQL 5.0.18-nt
    bei meinem Anbieter läuft PHP Version 4.4.0 - MySQL 4.1.13
    Global Registers sind auf ON, bei mir zuhause auf OFF

    Hatte jemand schonmal ein änliches Problem?

    Hier mal mein Script:


    <body>
    <div align="center">
    <h1>Live-Review bearbeiten</h1>

    <?
    include("../cgi-bin/zugriff.inc.php");

    if($HTTP_GET_VARS['clear']) mysql_query("DELETE FROM livereview WHERE id = $HTTP_GET_VARS[clear]",$dp);

    if ($HTTP_GET_VARS[edit])
    {
    if ($_POST['submit'])
    {
    $sql = "UPDATE livereview SET
    username='$_POST[username]',
    titel='$_POST[titel]',
    beschreibung='$_POST[beschreibung]',
    konzert_tag='$_POST[konzert_tag]',
    konzert_monat='$_POST[konzert_monat]',
    konzert_jahr='$_POST[konzert_jahr]'
    WHERE id = $HTTP_GET_VARS[edit]";
    $result = mysql_query($sql,$dp);
    }
    else
    {
    $sql = "SELECT * FROM livereview WHERE id = $HTTP_GET_VARS[edit]";
    $result = mysql_query($sql,$dp);
    $data = mysql_fetch_array($result);

    ?>

    <form method="post" action="<? echo $PHP_SELF ?>">
    <input type="hidden" name="edit" value="<? echo $data["id"] ?> ">

    <table border="0" align="center">
    <tr><td>Username</td><td>
    <input type="text" name="username" value="<? echo $data["username"] ?>" size="50">
    </td></tr><tr><td>Titel</td><td>
    <input type="text" name="titel" value="<? echo $data["titel"] ?>" size="99">
    </td></tr><tr><td>Beschreibung</td><td>
    <textarea name="beschreibung" cols="75" rows="19" ><? echo $data["beschreibung"] ?></textarea>
    </td></tr>
    <tr><td>Konzert Tag</td><td>
    <input type="text" name="konzert_tag" value="<? echo $data["konzert_tag"] ?>" size="4">
    </td></tr>
    <tr><td>Konzert Monat</td><td>
    <input type="text" name="konzert_monat" value="<? echo $data["konzert_monat"] ?>" size="4">
    </td></tr>
    <tr><td>Konzert Jahr</td><td>
    <input type="text" name="konzert_jahr" value="<? echo $data["konzert_jahr"] ?>" size="6">
    </td></tr>
    <tr><td>&nbsp;</td><td>
    <input type="submit" name="submit" value="&Auml;ndern">
    </td></tr></table>
    </form>
    <?
    }
    }

    $result = mysql_query("SELECT * FROM livereview",$dp);
    ?>

    <table border="1" cellspacing="0" cellpadding="3" align="center">
    <tr>
    <td><b>ID</b></td>
    <td><b>Username</b></td>
    <td><b>Datum</b></td>
    <td><b>Titel</b></td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    </tr>
    <? while ($daten = mysql_fetch_array($result))
    {
    ?>
    <tr>
    <td><? echo $daten[id]; ?></td>
    <td><? echo $daten[username]; ?></td>
    <td><? echo $daten[datum]; ?></td>
    <td><? echo $daten[titel]; ?></td>
    <td><a href="<? echo ''.$PHP_SELF.'?clear='.$daten[id].'' ?>">l&ouml;schen</a></td>
    <td><a href="<? echo ''.$PHP_SELF.'?edit='.$daten[id].'' ?>">bearbeiten</a></td>
    </tr>

    <?
    }
    ?>
    </table>
    </div>
    </body>

  • #2
    nicht
    PHP-Code:
    $HTTP_GET_VARS[edit
    sondern
    PHP-Code:
     $_GET['edit'
    die hochkommata nicht vergessen

    gruß
    peter
    Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
    Meine Seite

    Kommentar


    • #3
      Klappt trotzdem nicht

      Habe es ausprobiert.
      Der selbe Effekt.
      auf dem localhost funktioniert es, aber bei meinem Anbieter nicht.

      Waran kann es noch liegen.

      Kommentar


      • #4
        hast du dir die abfrage mal mit
        PHP-Code:
        echo $sql
        ausgeben lassen? was kommt dabei heraus?

        gruß
        peter
        Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
        Meine Seite

        Kommentar


        • #5
          an welcher stelle soll ich die denn mal einbauen?

          Kommentar


          • #6
            davor:
            PHP-Code:
             $result mysql_query($sql,$dp); 
            und dann schau dir mal die ausgabe an, ob alles korrekt ist.

            peter
            Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
            Meine Seite

            Kommentar


            • #7
              wieder das gleiche.
              auf dem lokalen System zeigt er mir das richtige an, was er machen soll.
              Aber auf meinem Server zeigt er nix an.

              Kommentar


              • #8
                hast du das denn so angepaßt, wie ich es oben beschrieben habe?
                PHP-Code:
                if ($HTTP_GET_VARS[edit]) 
                gib mal folgendes aus:
                PHP-Code:
                echo $sql.'########'
                wenn du nicht mal die lattenzäune zu sehen bekommts, liegt es definitv an der oben beschriebenen bedingung, die nach wie vor falsch ist.

                gruß
                peter
                Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
                Meine Seite

                Kommentar


                • #9
                  Doch doch. ist geändert.
                  Sieht jetzt wie folgt aus:
                  Funktioniert aber nicht.

                  <body>
                  <div align="center">
                  <h1>Live-Review bearbeiten</h1>

                  <?
                  include("../cgi-bin/zugriff.inc.php");

                  if($HTTP_GET_VARS['clear']) mysql_query("DELETE FROM livereview WHERE id = $HTTP_GET_VARS[clear]",$dp);

                  if ($_GET['edit'])
                  {
                  if ($_POST['submit'])
                  {
                  $sql = "UPDATE livereview SET
                  username='$_POST[username]',
                  titel='$_POST[titel]',
                  beschreibung='$_POST[beschreibung]',
                  konzert_tag='$_POST[konzert_tag]',
                  konzert_monat='$_POST[konzert_monat]',
                  konzert_jahr='$_POST[konzert_jahr]'
                  WHERE id = $HTTP_GET_VARS[edit]";
                  echo $sql.'########';
                  $result = mysql_query($sql,$dp);
                  }
                  else
                  {
                  $sql = "SELECT * FROM livereview WHERE id = $HTTP_GET_VARS[edit]";
                  $result = mysql_query($sql,$dp);
                  $data = mysql_fetch_array($result);

                  ?>

                  <form method="post" action="<? echo $PHP_SELF ?>">
                  <input type="hidden" name="edit" value="<? echo $data["id"] ?> ">

                  <table border="0" align="center">
                  <tr><td>Username</td><td>
                  <input type="text" name="username" value="<? echo $data["username"] ?>" size="50">
                  </td></tr><tr><td>Titel</td><td>
                  <input type="text" name="titel" value="<? echo $data["titel"] ?>" size="99">
                  </td></tr><tr><td>Beschreibung</td><td>
                  <textarea name="beschreibung" cols="75" rows="19" ><? echo $data["beschreibung"] ?></textarea>
                  </td></tr>
                  <tr><td>Konzert Tag</td><td>
                  <input type="text" name="konzert_tag" value="<? echo $data["konzert_tag"] ?>" size="4">
                  </td></tr>
                  <tr><td>Konzert Monat</td><td>
                  <input type="text" name="konzert_monat" value="<? echo $data["konzert_monat"] ?>" size="4">
                  </td></tr>
                  <tr><td>Konzert Jahr</td><td>
                  <input type="text" name="konzert_jahr" value="<? echo $data["konzert_jahr"] ?>" size="6">
                  </td></tr>
                  <tr><td>&nbsp;</td><td>
                  <input type="submit" name="submit" value="&Auml;ndern">
                  </td></tr></table>
                  </form>
                  <?
                  }
                  }

                  $result = mysql_query("SELECT * FROM livereview",$dp);
                  ?>
                  ......

                  Kommentar


                  • #10
                    Funktioniert aber nicht.
                    ist KEINE problembeschreibung! werden die ######## ausgegeben?

                    peter
                    Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
                    Meine Seite

                    Kommentar


                    • #11
                      Sorry.

                      nein. werden sie nicht. als ob er das überspringt. Er zeigt nach dem Klicken auf Ändern die vorhandenen Datensätze an, aber ohne Änderung.

                      Auf dem localhost zeigt er mir den Befehl perfekt an. Wie er was ändert. Auch die ######## derden danach angezeigt.

                      Nur auf meinem Server nicht.

                      Kommentar


                      • #12
                        auch mal ändern:
                        PHP-Code:
                         <form method="post" action="<? echo $PHP_SELF ?>">
                        in
                        PHP-Code:
                         <form method="post" action="<? echo $_SERVER['PHP_SELF']; ?>">
                        peter
                        Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
                        Meine Seite

                        Kommentar


                        • #13
                          Super idee!!!

                          Jetzt funktioniert es auf meinem localhost auch genauso wennig.
                          Zeigt auch nix mehr an von den ########.
                          Und aufn Server funktioniert es auch nicht.

                          Bin am Ende.

                          Kommentar


                          • #14
                            informiere dich über den begriff "register_globals", und dann führe folgendes aus:

                            - benutze im _gesamten_ skript superglobale arrays und nicht nur da, wo du gerade lust hast.

                            - schalte das error_reporting() hoch.

                            - benutze mysql_error()

                            bis dahin kannst du dir dein selbstmitleid sparen.

                            Kommentar


                            • #15
                              jetzt sehe ich den ganzen müll erst. du musst dein $_GET['edit'] natürlich auch bei form action mit durchschleifen!

                              peter
                              Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
                              Meine Seite

                              Kommentar

                              Lädt...
                              X