Update DB. Fehler, aber wo?

DeMoehn

Mitglied
Hehe, bald wird hier eine Sperre für nervige Leute wie mich eingebaut :-P.
Also. ich hab mir ma wieder was zum Newsscript emacht. Ein Edit.
mehrere Probs.
1) Bei titel liest php nur die erste Zeile aus
2)bei text kommt gar nichts
3)es kommt nach dem senden ok, aber es ändert sich nix.
4) hier der code
PHP:
//js is unnötig zu zeigen, is aber dabei
<?php
$id = $_GET['id'];
include("newssystem/config.inc.php");
if($_SESSION['logIn']) {
$dataBase = "DB87590"; 
$connectIt = mysql_connect($dbserver,$nutzer,$passwort);
$abfrage = "SELECT id, titel, name, text, zeit, clicks FROM news WHERE id='$id'";
$res = mysql_db_query($dbname, $abfrage);// alles noch
while ($reihe = mysql_fetch_object($res)){
$titel = $reihe->titel;
$name = $reihe->name;
$text = $reihe->text;
//jetzt will ich das der Text aus der DB in die Felder kommt
echo '<meta http-equiv="content-type" content="text/html;charset=ISO-8859-1">';
echo '<meta name="generator" content="nothing">';
echo '</head>';
echo '<body bgcolor="#ffffff">';
echo '<form action="index.php?link=newsEdit&id='.$id.'" method="post" name="form">';
echo '<table border="0" cellspacing="2" cellpadding="0">';
echo '<tr>';
echo '<td>Name:</td>';
echo '<td><input type="text" value='.$titel.' name="name" size="24" maxlength="20"></td>';//ich seh nur ein Wort
echo '</tr>';
echo '<tr>';
echo '<td>Name:</td>';
echo '<td><input type="text" value='.$name.' name="name" size="24" maxlength="20"></td>';//hier das gleiche
echo '</tr>';
echo '<tr>';
echo '<td valign="top">Text:</td>';
echo '<td><textarea name="text" rows="8" cols="44" wrap="physical" value='.$text.'></textarea></td>';//ich sehe nix
echo '</tr>';
echo '<tr>';
echo '<td valign="top"></td>';
echo '<td align="right"><input type="submit" name="senden" value="Senden"></td>';
echo '</tr>';
echo '</table>';
echo '</form>';
}
include ("newssystem/config.inc.php");
//smiley funktion war unwichtig is raus
}
if($senden) {
$datum = time();
mysql_connect($dbserver,$nutzer,$passwort);
$insertT = "UPDATE news SET titel='$titel', name='$name', text='$text', zeit='$datum' WHERE id='$id'";//hier muss was falsch sein
$result = mysql_db_query($dbname, $insertT);
if($result) {
echo "Ok";//als result kommt aber ok
}else{
echo "Nein";
}
}
}else{
echo "verweigert!";
}
?>
Wäre nett wenn jemand helfen kann.
 
Ich weiß gar nich wo ich anfangen soll dir zu erzählen was falsch, bzw. nicht gut ist.

Zu [phpf]mysql_db_query[/phpf]:
Anmerkung: Diese Funktion ist seit PHP 4.0.6 veraltet. Verwenden Sie diese Funktion nicht. Stattdessen sollten Sie die Funktionen mysql_select_db() und mysql_query() verwenden.

Bzgl deines Problems: Versuch mal $result = mysql_query ($insertT) or die (mysql_error ());

Du solltest dir außerdem mal register_globals zu Gemüte führen und frühzeitig
damit beginnen deinen Code dementsprechen zu gestalten. Außerdem wäre für
die Zukunft sicher nützlich den Code einzurücken, der Übersicht wegen.

Und das MySQL Statement könnte man auch schöner schreiben :)
PHP:
$insertT = "UPDATE `news` SET `titel`='".$_POST['$titel']."', `name`='".$_POST['name']."', `text`='".$_POST['text']."', `zeit`='".$_POST['datum']."' WHERE `id`='".$id."'";
 
Zuletzt bearbeitet:
Ok!
Hat sich geklärt, in dem textbereich wird der inhalt nicht mit "value" angegeben, deswegena auch der fehler mit mysql und im textfeld kommt value nach name und nicht davor, deswegen der fehler mit nur einem wort, es klappt, 1a
 
Wwenn man hier darauf hinweisen darf... mysql_db_query ist veraltet und auch langsamer soweit ich weiß. Nimm lieber mysql_query und mysql_select_db.
 
Zurück