PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : php/mysql: UPDATE??



zaunmayrchris
03-12-2005, 16:54
seas;
mit dem folgendem script möchte ich gerne einträge in einer mysql datenbank (dbname=ital) in der tabelle "vok" ändern.
mit $_POST[$int.'|ger']) ($_POST[$int.'|ital']) werden die inhalte aus den textfeldern der vorherigen seite übernommen;
mit "echo 'test '.$int.' '.$ger.' '.$ital.'<br>';" werden diese testeweise auch richtig ausgegeben
nur leider nicht in die tabelle eingetragen.
vllt kann mir ja jmd helfen...


<?
include("connect.php");
?>

<html>
<head>
<title>mhhh</title>
</head>

<body>
<?PHP
$abfrage = "SELECT * FROM vok";
$ergebnis = mysql_query($abfrage, $conn);

while($row = mysql_fetch_object($ergebnis))
{
$int = $row->int;
if (($_POST[$int.'|ger']) AND ($_POST[$int.'|ital']))
{

$ger = $_POST[$int.'|ger'];
$ital = $_POST[$int.'|ital'];
echo 'test '.$int.' '.$ger.' '.$ital.'<br>';
$change = "UPDATE vok Set ger='$ger', ital='$ital' WHERE int='$int'";
mysql_query($change);
}

}

cu
CHristoph

quinte17
04-12-2005, 10:03
wie wärs, wenn du direkt nach deiner query ein
echo mysql_error();
machst? :D

das hilft oftmals einen fehler zu finden.
und was auch noch hilft, ist ein
echo $change kurz bevor du die query absetzt..

greetz

zaunmayrchris
04-12-2005, 12:03
seas;

also echo $change; gibt schon das richtige aus:

UPDATE vok Set ger='gehen', ital='andare' WHERE int='1'
wenn ich das ganze ohne hochkomma mache (wie es auch auf http://dev.mysql.com/ zu finden ist) hilft es auch nichts;

echo mysql_error(); sagt:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'int = '1'' at line 1

naja, ich habe mysql 5.0 laut manual müsste aber der syntax so stimmen; (bis auf die hochkomma; aber ohne die funktioniert es auch nicht - und mein buch sagt eg das man die machen soll/muss)

cu
CHristoph

amc
04-12-2005, 13:07
ich glaube das problem kommt von deiner spalte "int" ... int ist ein verwendeter begriff von mysql, und wahrscheinlich verursacht das den fehler.

Pingu
04-12-2005, 14:33
Richtig, siehe hier: http://dev.mysql.com/doc/refman/4.0/de/reserved-words.html

Pingu

zaunmayrchris
04-12-2005, 15:09
seas;
besten dankt!
habe die spalte int jetzt in id (wie sie ja auch schon immer heißen sollte :rolleyes: ) umbenannt.
wie zu erwarten war funktioniert nun alles;
danke noch für den link. so eine liste ist ja wirklich sehr nützlich.

cu
CHristoph

undefined
04-12-2005, 23:16
Mal als Tip: Schalte in der PHP.ini mysql.trace_mode auf on dann werden dir solche Fehler besser angezeigt.

zaunmayrchris
05-12-2005, 19:08
besten dank!:)