Bei MYSQL Update wird zusätzlich noch ein neuer Eintrag erstellt!

buddymaster

Mitglied
Hallo

Der Titel sagt schon alles. Ich weiß bloß nicht warum.
Kann mit jemand helfen?

Es geht mir hauptsächlich um den UPDATE Teil, habe abe rmal den ganzen Code eingestellt, da ich nicht weiß, wo der Fehler liegt!

Code:
    <h3>Neuigkeit einf&uuml;gen</h3>
    <form action="<?php $_SERVER['PHP_SELF']?>" method="post">
    <table>
        <tr>
            <td style="text-align: left; vertical-align: top;">Neue Neuigkeit</td>
            <td><textarea id="neueintrag" cols="40" name="stichpunkt" rows="8"></textarea></td>
        </tr>
        <tr>
            <td></td>
            <td align="left">
                <input name="Send" type="submit" value="Eintragen" />
                <input name="Reset" type="reset" value="L&ouml;schen" />
            </td>
            <td></td>
        </tr>
    </table>
    </form>
<?php
if (!empty($_POST['stichpunkt'])) {
$stichpunkt = mysql_real_escape_string($_POST['stichpunkt']);
$SQL = "INSERT INTO news (stichpunkt, datum, zeit) VALUES ( '".$stichpunkt."', '".$datum."', '".$zeit."')";

mysql_query($SQL);

if(mysql_affected_rows($connect) == 1){
?>
<p style="color: #00FF00;">Der Eintrag war erfolgreich!</p>
<?php
}
else {
?>
<p style="color: #FF0000;">Beim Eintragen ist ein Fehler aufgetreten!</p>
<?php
}}
else
{
?>
<p>Bitte geben Sie die erforderlichen Daten ein!</p>
<?php
}

$action = isset($_GET['action']) ? ($_GET['action']) : "";

if (!empty($_GET['ID_news'])) {
$ID_news = mysql_real_escape_string($_GET['ID_news']);
}
    if ($action == "delete_news") {
	    $loeschen = mysql_query ("DELETE FROM news WHERE ID='".$ID_news."'");
	    echo "<p style=\"color: #00FF00\">Eintrag erfolgreich gel&ouml;scht ...</p>";
	}

    if ($action == "bearbeiten_news") {
        if(isset($_POST['aendern_news'])){

            #maskieren spezieller Zeichen mit einem Backslash
            $stichpunkt = mysql_real_escape_string($_POST['stichpunkt']);

	        # Und hier wird dann der stichpunkt zu den NEWS Eintrag in der DB gespeichert.
	        $sql= "UPDATE news SET stichpunkt = '$stichpunkt' WHERE ID = '$ID_news'";
	        mysql_query($sql) or die ("Das Schreiben ist gescheitert!");

 			echo "<meta http-equiv=\"refresh\" content=\"0; URL=bearbeiten_log.php\">";    // Weiterleitung
        }
#Hier wird das aus der Datembank geholt, was bearbeitet werden soll
$abfrage = mysql_query("SELECT stichpunkt FROM news WHERE ID='$ID_news'");
$row = mysql_fetch_object($abfrage);


?>
<hr />
<form id="form" name="form" method="post" action="">
<fieldset>
<label style="text-align: left;">Eintrag Nr. <?php echo $ID_news ?> bearbeiten</label>
    <textarea cols="55" rows="10" name="stichpunkt"><?php echo stripslashes(nl2br($row->stichpunkt)) ?></textarea><br />
    <input type="submit" value="&Auml;ndern" title="aendern_news" name="aendern_news" />
</fieldset>
</form>

<?php

}else{ // Wenn nicht bearbeiten


#--- Datenbank auslesen und anzuzeigende Seiten festlegen ---#

$abfrage = mysql_query("SELECT ID FROM news"); // DB Abfrage -> Anzahl aller Eintraege feststellen

$total = mysql_num_rows($abfrage); // Anzahl aller Eintraege feststellen
$seiten = ceil($total/1);     // Berechnet die Seitenanzahl insgesamt

if(empty($_GET['seite'])){ // korrigieren der aktuellen Seite

    $go = 1;             // Sofern $go nicht uebergeben wurde

}elseif($_GET['seite'] <= 0 || $_GET['seite'] > $seiten){

    $go = 1;         // Variable definieren

}else{ // Wenn Obiges nicht zutraf

    $go = mysql_real_escape_string($_GET['seite']);     // Variable definieren
}

$links = array(); // Linkkette bilden

// Seite die vor der aktuellen Seite kommt definieren
if(($go - $p) < 1){ $davor = $go - 1;  }else { $davor = $p; }

// Seite die nach der aktuellen Seite kommt definieren
if(($go + $p) > $seiten){ $danach = $seiten - $go; }else{ $danach = $p; }

$off = ($go - $davor); // Variable definieren

if ($go- $davor > 1){ // Link definieren => Zur Erste Seite springen
    $first = 1;
       $links[] = "<a href=\"$pfad?seite=$first\" title=\"Zur ersten Seite springen\">&laquo; Erste ...</a>\n";
}

if($go != 1){ // Link definieren => eine Seite zurueck blaettern
    $prev = $go-1;
    $links[] = "<a href=\"$pfad?seite=$prev\" title=\"Eine Seite zurueck blaettern\">&laquo;</a>\n";
}


for($i = $off; $i <= ($go + $danach); $i++){ // einzelne Seitenlinks erzeugen

  if ($i != $go){  // Link definieren

        $links[] = "<a href=\"$pfad?seite=$i\">$i</a>\n";

  }elseif($i == $seiten) { // aktuelle Seite, ein Link ist nicht erforderlich

        $links[] = "<span class=\"current\">$i</span>\n";

  }elseif($i == $go){ // aktuelle Seite, ein Link ist nicht erforderlich

        $links[] = "<span class=\"current\">$i</span>\n";

  } // close if $i
}

if($go != $seiten){ // Link definieren => eine Seite weiter blaettern
    $next = $go+1;
    $links[] = "<a href=\"$pfad?seite=$next\" title=\"Eine Seite weiter bl&auml;ttern\">&raquo;</a>\n";
}

if($seiten - $go - $p > 0 ){ // Link definieren => Zur letzen Seite springen
    $last = $seiten;
    $links[] = "<a href=\"$pfad?seite=$last\" title=\"Zur letzten Seite springen\">... Letzte &raquo;</a>\n";
}

$start = ($go-1) * 1;             // Berechne den Startwert fuer die DB


$link_string = implode(" ", $links); // Zusammenfuegen der einzelnen Links zu einem String

echo "<hr />";
echo "<h3>Neuigkeiten bearbeiten</h3>";
// Anzahl aller Eintraege ausgeben
echo "<p>Es sind <strong>$total</strong> News vorhanden</p>";

// Daten aus DB holen
$result_news = mysql_query("SELECT ID, datum, zeit, stichpunkt FROM news ORDER BY ID DESC LIMIT $start,1");
while($row = mysql_fetch_object($result_news)){

# Hier wird schadhafter Code und böse Zeichen ausgemustert

$text = htmlspecialchars($row->stichpunkt, ENT_QUOTES); // HTML Zeichen umwandeln
$text = wordwrap($text, 40, ' ', 1); 		 	// zu lange Woerter teilen
$text = stripslashes(nl2br($text));			 				// Zeilenumbrueche umwandeln

#---------- Eintraege ausgeben -------------------------#

echo "<div class=\"post\">\n";
echo "<div class=\"titel\">\n";

echo " Eintrag vom ".$row->datum." um ".$row->zeit." Uhr\n";
echo "</div>\n";

echo "<p class=\"eintrag\">".$text."</p>\n";

echo "<br /> <a href=\"".$pfad."?action=delete_news&amp;ID_news=".$row->ID."\" onClick=\"return confirm('Soll der Eintrag wirklich gel&ouml;scht werden?');\">Eintrag l&ouml;schen</a> |
	 <a href=\"".$pfad."?action=bearbeiten_news&amp;ID_news=".$row->ID."\">Bearbeiten</a>";





echo "</div>\n <br />\n";
}

#--------------- ENDE AUSGABE ---------------#

// -------------------------------------- Seitennavigation ausgeben ----------------------------
 echo "<div id=\"navigation\">\n";

 echo "<span class=\"pages\">Seite $go von $seiten</span>\n";

 echo $link_string; // Ausgabe der Seitennavigation

 echo "</div> \n";
// -------------------------------------- Seitennavigation ende --------------------------------
}

?>
 
Hmm, da ist aber in Zeile 18-26 noch ein INSERT-Statement drin. Also meiner Meinung nach liegt das nicht am UPDATE, kann auch gar nicht. UPDATE fügt keine Datensätze ein, das macht nur INSERT.
 
Was soll das bewirken? Jede Zahl durch eins ist gleich der Ausgangszahl. Stört jetzt nicht weiter, aber ist in meinen Augen nutzlos.
PHP:
$seiten = ceil($total/1);
 
Zuletzt bearbeitet:
Aber wo wir gerade dabei sind, ich kann mich an einen "Bug" erinnern, bei dem ein float durch eine Ganzzahl einen "falschen" Wert rausgebracht hat, von daher ist der ceil() dort sogar korrekt. Ändert aber nichts an der Tatsache, das die Rechnung eigentlich sinnlos ist.
 
Zurück