Warnung: file_put_contents(/home/www/web1/html/php_dev/test.txt) [function.file-put-contents]: failed to open stream: Permission denied in /home/www/web1/html/php_dev/sys/lib.activity.php (Zeile 58)
Datenbank-Update geht nicht [Archiv] - PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr

- Ad -
php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
Datenbank-Update geht nicht


 
White-Horse
26-08-2003, 08:27 
 
Hallo, ja der Anfänger schon wieder :-)

So, Daten neu eintragen hat jetzt funktioniert. Jetzt habe ich ein Problem mit den Updaten. Ich habe schon einiges getestet, aber hat leider nicht funktioniert.

Ich poste mal meine Seite:


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

$id = $HTTP_POST_VARS["id"];
$vorname = $HTTP_POST_VARS["vorname"];
$nachname = $HTTP_POST_VARS["nachname"];
$info = $HTTP_POST_VARS["info"];
$timestamp = $HTTP_POST_VARS["timestamp"];
?>
</head>
<?php

// Definition der DatenbankAnfrage
$DATENSATZ_AKTUALISIEREN="UPDATE testdb SET id=$id,vorname=$vorname,nachname=$nachname,info=$info,timestamp=$timestamp WHERE id=$id";

// Ausführen der obigen Definition, - Der Datensatz mit der id='$id' wird aktualisiert
$AUSFUEHREN_AKTUALISIEREN=MYSQL_QUERY($DATENSATZ_AKTUALISIEREN);


/* $aendern = "UPDATE INTO $DB_TABLE (id, vorname, nachname, info, timestamp)
VALUES ('$id', '$vorname', '$nachname', '$info', NOW())";

$update = mysql_query($aendern);
*/
var_dump($HTTP_POST_VARS);

?>
<body>
<br>
<hr>
Folgende Daten wurden eingetragen!
<table width="95%">
<tr>
<td>ID:</td>
<td>Vorname:</td>
<td>Nachname:</td>
<td>Info:</td>
<td>Timestamp</td>
</tr>
<tr>
<td><?php echo($id) ?></td>
<td><?php echo($vorname) ?></td>
<td><?php echo($nachname) ?></td>
<td><?php echo($info) ?></td>
<td><?php echo($timestamp) ?></td>
</tr>
</table>
<br>
<hr>
Zurück zur Startseite!
<br>
<a href="./index.php">STARTSEITE</a>
</body>
</html>


Die Daten werden richtig in meiner Tabelle angezeigt. Nur in der Datenbank hat sich nichts geändert.

Irgendwo ist wohl der Wurm drin. Wäre super wenn mir jemand diesen Wurm zeigen kann ;) oder einen Tip geben.

Danke schon mal

Gruß

 
RobertTheHero
26-08-2003, 09:04 
 
$DATENSATZ_AKTUALISIEREN="UPDATE testdb SET id=$id,vorname=$vorname,nachname=$nachname,info=$info,timestamp=$timestamp WHERE id=$id";



jeden Wert in einfache Anführungszeichen
bsp:


$DATENSATZ_AKTUALISIEREN="UPDATE testdb SET id='$id',vorname='$vorname'....


ausserdem hilf oft ein

echo mysql_error();

nach mysql_query, um zu sehen das die query falsch ist.

gruss

rth

 
White-Horse
26-08-2003, 09:26 
 
Hallo,

DANKE SCHÖN für die Antwort.

Leider funzt es noch nicht.

Der Fehler kann doch nur in dieser Seite liegen, oder? Die Daten bekomme ich ja richtig angezeigt. Habe auch das echo mysql_error(); eingetragen. Bekomme aber keiner Fehler angezeigt.

Den MySQL-Code habe ich mal in PhpMyAdmin getestet, der geht.

Was könnte noch falsch sein?

*grübel*

Jetzt sieht mein Code so aus:


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

$id = $HTTP_POST_VARS["id"];
$vorname = $HTTP_POST_VARS["vorname"];
$nachname = $HTTP_POST_VARS["nachname"];
$info = $HTTP_POST_VARS["info"];
$timestamp = $HTTP_POST_VARS["timestamp"];
?>
</head>
<?php

// Definition der DatenbankAnfrage
$DATENSATZ_AKTUALISIEREN="UPDATE testdb SET id='$id',vorname='$vorname',nachname='$nachname',info='$info',timestamp='$timestamp' WHERE id='$id'";

// Ausführen der obigen Definition, - Der Datensatz mit der id='$id' wird aktualisiert
$AUSFUEHREN_AKTUALISIEREN=MYSQL_QUERY($DATENSATZ_AKTUALISIEREN);

echo "<hr>";
echo mysql_error();

/* $aendern = "UPDATE INTO $DB_TABLE (id, vorname, nachname, info, timestamp)
VALUES ('$id', '$vorname', '$nachname', '$info', NOW())";

$update = mysql_query($aendern);
*/
var_dump($HTTP_POST_VARS);

?>
<body>
<br>
<hr>
Folgende Daten wurden eingetragen!
<table width="95%">
<tr>
<td>ID:</td>
<td>Vorname:</td>
<td>Nachname:</td>
<td>Info:</td>
<td>Timestamp</td>
</tr>
<tr>
<td><?php echo($id) ?></td>
<td><?php echo($vorname) ?></td>
<td><?php echo($nachname) ?></td>
<td><?php echo($info) ?></td>
<td><?php echo($timestamp) ?></td>
</tr>
</table>
<br>
<hr>
Zurück zur Startseite!
<br>
<a href="./index.php">STARTSEITE</a>
</body>
</html>

 
RobertTheHero
26-08-2003, 09:36 
 
und was für ein Fehler wird angezeigt von mysql_error() ?

der fehler könnte auch in



include("./inc/dbconnect.php");


also in der datei dbconnect.php liegen.

gruss

rth

 
White-Horse
26-08-2003, 09:51 
 
Hi,

ich bekomme eben keinen Fehler angezeigt. Ich glaube ich habe jetzt aber den Fehler? Irgendwie wird meine Variable $id nicht übermittelt. Ich poste hier mal meine Site date_bearbeiten.php. In diesem Formular lese ich die Daten ein, verändere sie und will die Daten an daten_speicher2.php senden.


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

$AUSWAHL=MYSQL_QUERY(" SELECT * FROM testdb WHERE id='$id' ");
$ANZEIGEN=MYSQL_FETCH_ROW($AUSWAHL);

?>
</head>
<body>

<?php echo $id ?>
<?php echo $ANZEIGEN[2] ?>

#<?php var_dump($HTTP_POST_VARS); ?>


<form name="daten_speichern2" method="post" action="./daten_speichern2.php">
ID: <input type="text" name="id" value="<?php echo $ANZEIGEN[0] ?>" disabled><br>
Vorname: <input type="text" name="vorname" value="<?php echo $ANZEIGEN[1] ?>"><br>
Nachname: <input type="text" name="nachname" value="<?php echo $ANZEIGEN[2] ?>"><br>
Info: <input type="text" name="info" value="<?php echo $ANZEIGEN[3] ?>"><br>
Timestamp: <input type="text" name="timestamp" value="<?php echo $ANZEIGEN[4] ?>" disabled>
<input type="submit" name="Submit" value="Abschicken">

</form>
</body>
</html>


*habe schon Kopfschmerzen von suchen*

Danke schön

Die ./inc/dbconnect.php ist ok.

 
RobertTheHero
26-08-2003, 09:54 
 
das liegt an dem disabled im input tag von der id. Das bewirkt das die id nicht mitgesendet wird. Mach statdessen

<input type="hidden" name="id" value="<?php echo $ANZEIGEN[0] ?>">


gruss

rth

 
geister
26-08-2003, 09:57 
 
Also bei einem update und insert werde die daten einmalig eingetragen!
Was aber nicht heißt, das die Daten übernommen werden!

Zu Zweck der Datensicherung muß nach dem Query, also nach dem Update, bzw Insert ein COMMIT folgen!

Schau mal im Manual bei www.mysql.de nach!

:-)

geister!

 
geister
26-08-2003, 10:01 
 
http://www.mysql.de/doc/de/COMMIT.html

 
White-Horse
26-08-2003, 10:23 
 
@RobertTheHero

DANKE

Das DISABLED war schuld. Kleines Wort mit großer Wirkung. Das nächste mal weiß ich bescheid.

Gruß

 
wahsaga
26-08-2003, 11:30 
 
Original geschrieben von geister
Zu Zweck der Datensicherung muß nach dem Query, also nach dem Update, bzw Insert ein COMMIT folgen!
das ist bei einigen grösseren DB-systemen der fall - aber nicht bei mysql!

 
geister
26-08-2003, 14:01 
 
@ wahsaga

Hast recht, ich arbeite mit Oracle und da brauch ich das!

deswegen ist mit eben das feheln des Commit aufgefallen ;-)

hehe

- -

Alle Zeitangaben in WEZ +2. Es ist jetzt 22:49 Uhr.