• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Problem mit MySql Update

McCry

Mitglied
Hallo,
ich mache grade einen Blog und bin gerade bei der Administration.
Dort soll man später die schon vorhandenen Einträge bearbeiten können.
Was ich schon habe:
Eine Ausgabe der Liste der Einträge
Einen Bearbeiten Button, wobei man beim drücken auf eine neue Seite weitergeleitet wird, und der Blogtext in eine Textarea eingetragen wird.

Mein Problem:
Wenn ich in der Textarea etwas änder und dann auf den Aktualisieren Button drücke, passiert einfach garnichts.
Mein Code:
Code:
<?php
   $verbindung = mysql_connect("localhost", "*****", "*****")
	 or die ("Fehler im System");
	 
	mysql_select_db("*****")
	 or die ("Keine Verbindung m�glich");
        
       if(!isset($_POST["ok"]))
       {
        $bid = $_POST["bid"];
	$ergebnisDEL = mysql_query("SELECT titel, author, text FROM blog WHERE id={$bid}");
        $row = mysql_fetch_object($ergebnisDEL);
       }
?>
<u>Blog Bearbeiten</u></br>
   </br>
   <form action="admin.php?page=blog&blog=bea&bea=ok" method="post" enctype="multipart/form-data">
       Titel:<input type="text" name="ntitel" value="<?php echo $row->titel; ?>"></br>
       Autor:<input type="text" name="nauthor" value="<?php echo $row->author; ?>"></br>
       Text:</br>
       <textarea id="area" name="ntext"><?php echo $row->text; ?></textarea></br>
       <input type="submit" value="Aktualisieren" name="ok"></br>
   </form>
   </br>
   
<?php
    if(isset($_GET["bea"]))
    {
        $ntitel = $_POST["ntitel"];
        $nauthor = $_POST["nauthor"];
        $ntext = $_POST["ntext"];
        $aendern = "UPDATE links Set titel={$ntitel}, author={$nauthor}, text={$ntext} WHERE id ={$bid}";
        mysql_query($aendern);
    }


    mysql_close($verbindung);
?>

Wäre super wenn mir da jemand helfen könnte.
LG McCry
 
Werbung:
  • Was ist „einfach garnichts“?
  • Hast du testweise diverse MySQL-Fehler-Funktionen getestet? (In deinem UPDATE-Query sind ein paar Syntaxtfehler, etwa: vergessene einfache Anführungszeichen und Hochkomma bei Fehldnamen und Werten)
  • Sicher, dass du im UPDATE-Query die Tabelle „links“ ansprechen möchtest?
  • Das Script selbst wird aber schon ausgeführt, nicht? (Wird in deinem Post nicht ersichtlich; ein testweises echo zu Beginn der Datei liefert eine Ausgabe?)
  • Markante Schlüsselwörter wie „text“ oder „id“ sollten immer in Hochkommata geschrieben werden (` (nicht ')).
  • Ach, Fehlermeldungen gibt's auch keine, ne? (Wird auch nicht ersichtlich)
 
Werbung:
Mein Code sieht jetzt so aus:
Code:
<?php
   $verbindung = mysql_connect("localhost", "+++++", "+++++")
     or die ("Fehler im System");
     
    mysql_select_db("+++++")
     or die ("Keine Verbindung m�glich");
        
       if(isset($_POST["bearbeiten"]))
       {
        $bid = $_POST["bid"];
    $ergebnisDEL = mysql_query("SELECT titel, author, text FROM blog WHERE id = $bid");
        $row = mysql_fetch_object($ergebnisDEL); <<<<<<< Hier soll der Fehler sein
       
        ?>
            <u>Blog Bearbeiten</u></br>
            </br>
            <form action="admin.php?page=blog&blog=bea&bea=ok" method="post" enctype="multipart/form-data">
                Titel:<input type="text" name="ntitel" value="<?php echo $row->titel; ?>"></br>
                Autor:<input type="text" name="nauthor" value="<?php echo $row->author; ?>"></br>
                Text:</br>
                <textarea id="area" name="ntext"><?php echo $row->text; ?></textarea></br>
                <input type="submit" value="Aktualisieren" name="ok"></br>
            </form>
            </br>
        <?php
       }


    if(isset($_GET["ok"]))
    {
        $ntitel = $_POST["ntitel"];
        $nauthor = $_POST["nauthor"];
        $ntext = $_POST["ntext"];
        $aendern = "UPDATE blog Set titel='$ntitel', author='$nauthor', text='$ntext' WHERE id ={$bid}";
        mysql_query($aendern);
    }




    mysql_close($verbindung);
?>

Und die Fehlermeldung so:
Warning: mysql_fetch_object(): supplied argument is not a valid MySQL result resource in/users/ritualist/www/admin/include/blog/blog_bea.php on line 12

Ich weiß echt nicht was da falsch sein soll.
 
$_POST["bid"] ist die Id des Blogeintrags und kommt von der Seite, wo die ganzen Einträge aufgelistet werden.

Code:
<u>Alle Artikel</u></br></br>   
  <?php
   $verbindung = mysql_connect("localhost", "+++++", "+++++")
	 or die ("Fehler im System");
	 
	mysql_select_db("+++++")
	 or die ("Keine Verbindung m�glich");
	 
	$abfrageDEL = "SELECT id, titel, date FROM blog ORDER BY id DESC";
	$ergebnisDEL = mysql_query($abfrageDEL);
	while($row = mysql_fetch_object($ergebnisDEL))
		{
		   echo $row->titel;?></br><?php 
                   echo $row->date;
                   ?>
                    <form action="action/news_delete.php" method="post">
                      <input type="hidden" name="id" value="<? echo $row->id; ?>">
                      <input type="submit" value="L&ouml;schen" name="delete">
                    </form>
                   <form action="admin.php?page=blog&blog=bea" method="post">
                       <input type="submit" name="bearbeiten" value="Bearbeiten">
                   </form>
                   <?
		   echo "</br>";
		}
	 
	mysql_close($verbindung);
        ?>

Aber daran kanns nicht liegen, weil der Text des Artikels ja in der Textarea angezeigt wird.
 
Werbung:
Und wie siehts mit MySQL-Fehlern aus? ->PHP: mysql_error - Manual

Und wo soll denn $_POST['bid'] herkommen, wenn du auf Abschicken klickst? Der POST-Parameter wird ja nicht nochmal übermittelt. Hau mal ein
PHP:
var_dump($_POST);
an den Anfang des Scripts rein und siehe dir genau an, was wann wie übermittelt wird.
 
Ok. Danke für die Antworten.
Ich konnte mich die letzten Tage nicht melden(musste für Klausuren üben).
Ich mache das mal mit dem var_dump.

Lg McCry

EDIT:
Ok hab ich gemacht. Nur kann ich mit der Meldung nichts anfangen.
array(1) { ["bearbeiten"]=> string(10) "Bearbeiten" }
 
Zuletzt bearbeitet:
Sieh dir nochmal an, wie man Formulare gestaltet, wozu ein enctype="multipart/form-data

Beim Lesen ist mir nur aufgefallen, Du mischt da buntest $_GET und $_POST entscheide dich! Ich habe den Code zwar nicht ausprobiert, aber
WHERE id ={$bid}" übergibt kein $_POST.


$_GET['ok'] ist in Wirklichkeit $_POST['ok'] und und und.....
Mach das Formulat neu und dann klappt es auch mit den Variablen.

PHP:
<?php


        ?>
            <u>Blog Bearbeiten</u></br>
            </br>
            <form action="index.php?page=blog&blog=bea&bea=ok" method="post">
                Titel:<input type="text" name="ntitel" value="Titel"></br>
                Autor:mysql_close($verbindung);<input type="text" name="nauthor" value="Autor"></br>
                Text:</br>
                <textarea id="area" name="ntext">Inhalt blabla Text</textarea></br>
                <input type="submit" value="Aktualisieren" name="ok"></br>
            </form>
            </br>
        <?php

?>
<pre>
<?PHP
echo '$_GET'."<br>";
print_r($_GET);
echo '<br>$_POST<br>';
print_r($_POST);
?>
</pre>



PS
Ach ja, wieder einmal der Hinweis auf SQL-Injection.
 
Zuletzt bearbeitet von einem Moderator:
Werbung:
Zurück
Oben