kostenloser Webspace werbefrei: lima-city


Problem mit MySQL-Update-Funktion!

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    schrotti12

    Moderator Kostenloser Webspace von schrotti12

    schrotti12 hat kostenlosen Webspace.

    Hallo...

    Ich bins schon wieder... Ich bitte die Knights und Mods, dies nicht als Spam zu werten, da ich wirklich Hilfe brauche! Ich bin an meiner Page dran und irgendwie gehts einfach nicht!!

    Jetzt ist es die Update-Funktion von MySQL, die einfach nicht funktionieren will!

    Zuerst mal wieder der Quelltext (gek?rzt):


    <table>
    <form action="news.php" method="post">
    <tr><td><input name="id"></td></tr>
    <tr><td><input name="titel"></td></tr>
    <tr><td><input name="autor"></td></tr>
    <tr><td><input name="kategorie"></td></tr>
    <tr><td><textarea name="text"></textarea></td></tr>
    <tr><td><input name="eintragen" type="submit" value="Eintragen"></tr>
    </form>
    </table>
    <?
    $id = $HTTP_POST_VARS["id"];
    $titel = $HTTP_POST_VARS["titel"];
    $autor = $HTTP_POST_VARS["autor"];
    $kategorie = $HTTP_POST_VARS["kategorie"];
    $text = $HTTP_POST_VARS["text"];
    $timestamp = time();
    $datum = date("d.m.Y",$timestamp);
    $zeit = date("H:i",$timestamp);
    $eintragen = $HTTP_POST_VARS["eintragen"];

    $aendern = "UPDATE artikel SET titel = '$titel', $autor = '$autor', kategorie = '$kategorie', text = '$text', datum = '$datum', zeit = '$zeit' WHERE id = '$id'";

    $update = mysql_query($aendern);

    if($eintragen) {

    $update; mysql_close($verbindung);

    }


    ?>

    Ich finde keinen Fehler, aber vieleicht k?nnt Ihr mir helfen...
    Ich bin schon den ganzen Nachmittag dran, komme aber nicht dahinter!!

    Der Fehler ist folgender:

    Anstatt den (per id) angegebenen Beitrag zu ?ndern, schreibt es einfach einen neuen und vergibt auch eine neue id!
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. r*******0

    Hi,

    Problem ist folgendes $id ist nicht gleich id in der Datenbank, deshalb kann mysql nicht updaten und legt neu an.
  4. t?rlich das geht mit der ID so... sonst k?nnte man ja nie news edit.. das macht man ja auch anhand der ID

    aber ich verstehe nicht warum du das net so machst


    <table>
    <form action="news.php?action=eintragen" method="post">
    <tr><td><input name="id"></td></tr>
    <tr><td><input name="titel"></td></tr>
    <tr><td><input name="autor"></td></tr>
    <tr><td><input name="kategorie"></td></tr>
    <tr><td><textarea name="text"></textarea></td></tr>
    <tr><td><input name="eintragen" type="submit" value="Eintragen"></tr>
    </form>
    </table>
    <?
    if($action=="eintragen") {
    $id = $HTTP_POST_VARS["id"];
    $titel = $HTTP_POST_VARS["titel"];
    $autor = $HTTP_POST_VARS["autor"];
    $kategorie = $HTTP_POST_VARS["kategorie"];
    $text = $HTTP_POST_VARS["text"];
    $timestamp = time();
    $datum = date("d.m.Y",$timestamp);
    $zeit = date("H:i",$timestamp);

    //datum und zeit kannste ?brigens au in der db-spalte ausw?hlen und dann mit NOW() bestimmen

    $update = mysql_query("UPDATE artikel SET titel = '$titel', $autor = '$autor', kategorie = '$kategorie', text = '$text', datum = '$datum', zeit = '$zeit' WHERE id = '$id'") or die(mysql_error());
    //gib mal mysql_error() mit an, vllt kommt nen fehler, habe das schon in nen anderen script von dir gesehn das du dis wegl?sst, daf?r wurde die funktion net erfunden.

    mysql_close($verbindung);

    }

    ?>
  5. Autor dieses Themas

    schrotti12

    Moderator Kostenloser Webspace von schrotti12

    schrotti12 hat kostenlosen Webspace.

    Ich habs mal so gemacht, wie du gesagt hast...
    Fehler kommt keiner, aber die News machts immer noch neu anstatt die alten upzudaten...

    Wenn "id"="id" ist, wie kann ich dann die id in der DB ?berhaupt updaten?
  6. m****w

    nein, das mit dem "WHERE id = '$id'" war schon richtig...

    kann es sein, dass du nicht connectet hast? das war n?mlich bei mir der fehler :lol:
  7. ne dann w?rde nen fehler kommen wenn er net connectet. i habe mal den code komplett so geschrieben wie i es machen w?rde!



    <?
    if($action=="eintragen") {

    $timestamp = time();
    $datum = date("d.m.Y",$timestamp);
    $zeit = date("H:i",$timestamp);

    mysql_query("UPDATE `artikel` SET `titel` = '$titel', `autor` = '$autor', `kategorie` = '$kategorie', `text` = '$text', `datum` = '$datum', `zeit` = '$zeit' WHERE id = '$id'") or die(mysql_error());
    //geupdatet.
    }
    else{
    ?>
    <table>
    <form action="news.php?action=eintragen" method="post">
    <tr><td><input name="id"></td></tr>
    <tr><td><input name="titel"></td></tr>
    <tr><td><input name="autor"></td></tr>
    <tr><td><input name="kategorie"></td></tr>
    <tr><td><textarea name="text"></textarea></td></tr>
    <tr><td><input name="eintragen" type="submit" value="Eintragen"></tr>
    </form>
    </table>

    <?
    }
    ?>


    so klappt es bei mir. jetzt zwei fragen.
    -bist du dir sicher das die spalte "id" und nicht "ID" hei?t ?
    -bei dir steht $autor = '$autor' <- $autor als spaltenname ??? naja probiere mal meinen code aus, m?sste egl klappen. manchmal schreibe i au einfach nochma den code neu und dann is auferinmal der fehler weg obwohl i mir todsicher bin das es richtig is :)
  8. Autor dieses Themas

    schrotti12

    Moderator Kostenloser Webspace von schrotti12

    schrotti12 hat kostenlosen Webspace.

    Keine Chance... geht nicht:

    Es schreibt immer einen neuen Eintrag anstatt den alten zu ?berschreiben...

    Ich versuchs jetzt denn mit der Brachial-Methode:
    Delete und Insert Into...

    Egal was ich mache, er macht kein update...

    Auch die Connection ist da, aber er nimmts nicht...
    Vieleicht muss ich das Feld "id" (iss wirklich klein geschrieben!) auch nur mit anderen Einstellungen eintragen?
    die jetzigen sind:
    id int(5) UNSIGNED not_null auto_increment

    EDIT:

    Jetzt gehts zum updaten...

    Code:

    <? include("checkuser.php");?>
    <? include("config.inc.php");?>
    <html>
    <head>
    <title>Unbenanntes Dokument</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    </head>
    <body>
    <table>

    <?

    $abfrage = "SELECT * FROM artikel WHERE kategorie LIKE 'news' ORDER BY datum DESC";
    $ergebnis = mysql_query($abfrage);
    while($row = mysql_fetch_object($ergebnis))
    {
    ?>
    <tr><td><table><tr><td><? echo $row->id; ?></td><td><? echo $row->titel; ?></td><td><? echo $row->datum; ?></td></tr></table></td>
    <tr><td><? echo $row->text; ?></td></tr>
    <? }

    ?>
    <?
    $id = $HTTP_POST_VARS["id"];
    $titel = $HTTP_POST_VARS["titel"];
    $autor = $HTTP_POST_VARS["autor"];
    $kategorie = $HTTP_POST_VARS["kategorie"];
    $text = $HTTP_POST_VARS["text"];

    $timestamp = time();
    $datum = date("d.m.Y",$timestamp);
    $zeit = date("H:i",$timestamp);
    ?>



    </table>
    <table>
    <form action="newsbearbeiten.php" method="post">
    <tr><td><input name="id"></td></tr>
    <tr><td><input name="titel"></td></tr>
    <tr><td><input name="autor"></td></tr>
    <tr><td><input name="kategorie"></td></tr>
    <tr><td><textarea name="text"></textarea></td></tr>
    <tr><td><input name="eintragen" type="submit" value="Eintragen"></tr>
    </form>
    </table>
    <?
    $eintragen = $HTTP_POST_VARS["eintragen"];

    if($eintragen) {



    mysql_query("UPDATE `artikel` SET `titel` = '$titel', `autor` = '$autor', `kategorie` = '$kategorie', `text` = '$text', `datum` = '$datum', `zeit` = '$zeit' WHERE id = '$id'") or die(mysql_error());
    mysql_close($verbindung); include("newseingetragen.php");
    //geupdatet.
    }
    ?>

    </body>
    </html>


    Halt, moment, noch nicht schlie?en!!

    N?chstes Problem!

    Jetzt macht es zwar das update, wirft mich aber danach zur?ck auf den login-screen...
    dh, da stimmt jetzt etwas mit der session nicht...

    Inhalt der Checkuser.php:

    <?
    session_start ();
    if (!isset ($_SESSION["id"]))
    {
    header ("Location: login.php");
    }
    ?>

    Inhalt der config.inc.php:

    <?
    $verbindung = mysql_connect("mysql.lima-city.de","*********","*******") or die("Keine Verbindung m?glich!");
    mysql_select_db("******") or die("Datenbank nicht vorhanden");
    ?>
  9. mach ma


    <?
    session_start ();
    if(!$_SESSION['id'])
    {
    header ("Location: login.php");
    }
    ?>

    kann es sein das die community auf irgfend ein tut aufbaut mir kommt das alles bekannt vor[habe fr?her wo i es net konnte jedes tut probiert]

    und bist du dir au sich das in jeder datei session_start(); steht ? sonst wird sie net ?bermittelt.
  10. Autor dieses Themas

    schrotti12

    Moderator Kostenloser Webspace von schrotti12

    schrotti12 hat kostenlosen Webspace.

    ja, ich hab auf das tutorials von http://www.tutorials.de "Loginsystem mit Sessions" aufgebaut.

    Anscheinend muss ich mich entscheiden:
    Will ich die News updaten k?nnen und mich dann jedes mal neu einloggen oder will ich, dass die Session funktioniert und die News daf?r immer ?ber phpMyAdmin ?ndern...

    Es iss nicht die checkuser.php! Sonst w?rde ich ja nichtmal in die Datei reinkommen...
  11. hmm.. dat geeht au das es funzt :P

    habe zwar spontan keinen bock das jetzt zu machen, aber... k.a. egl m?sste das funzn mit den session. i kenne nur ein prob. wenn man sich einloggt und dann ne meta weiterleitung macht, dass dann die session gel?scht wird sonst aber net. testest du denn deine datein lokal oder online ?
  12. Autor dieses Themas

    schrotti12

    Moderator Kostenloser Webspace von schrotti12

    schrotti12 hat kostenlosen Webspace.

    Ich teste die Sachen aufm Server...
    Aber nicht hier bei Lima...
    Auf meinem eigenen...

    Aber trotzdem danke... Hast mir eh viel geholfen...

    Vieleicht schreib ich das Script einfach noch mal neu... Mal schaun, ob das hilft...
  13. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!