UPDATE Befehl funktioniert nicht auf Server

Collapse
This topic is closed.
X
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • 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

    Comment


    • #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.

      Comment


      • #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

        Comment


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

          Comment


          • #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

            Comment


            • #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.

              Comment


              • #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

                Comment


                • #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);
                  ?>
                  ......

                  Comment


                  • #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

                    Comment


                    • #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.

                      Comment


                      • #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

                        Comment


                        • #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.

                          Comment


                          • #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.

                            Comment


                            • #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

                              Comment

                              Working...
                              X