Problem mit MySQL "UPDATE ..."

Jukkales

Erfahrenes Mitglied
Hallo ich habe ein Problem mit einem Script, ich habe mittelst script werte aus einer tabelle ausgelesen und in ein Formular eingefügt, nun will ich diese Werte ändern, Die werte in den Variablen stimmen und PHP gibt auch aus der der Befehl ausgeführt wurde jedoch wenn ich dann über phpmyadmin schau stehen dort noch die alten Werte:

code für auslesen und einfügen in das Formular:
PHP:
<?PHP
require('config.lib.php');
$query = "SELECT * FROM `config_dateien` ORDER BY `id` ASC LIMIT 0,100";
$result = mysql_query($query);
if (empty($result)) {print mysql_error(); }
$dateien = array();
while($row = mysql_fetch_array($result)) {
$getpage = $row['get'];
$i = $row['id'];
$dateien[$getpage] = $row['page']; // Dateienconfig
?>
<form action="update_files.php" method="post">
<input type="hidden" name="id" value="<?PHP echo $i; ?>">
  <p>Seite &uuml;ber URL 
    <input type="text" value="<?PHP echo $row['get']; ?>" name="edit_get">
    Eingef&uuml;gte Datei
    <input type="text" value="<?PHP echo $row['page']; ?>" name="edit_page">
  <input type="submit" value="Ändern"><hr>  
  </p>
</form>
<?PHP
}
?>

update_files.php
PHP:
<?PHP
require('config.lib.php');

$edit_get = $_POST['edit_get'];
$edit_page = $_POST['edit_page'];
$id = $_POST['id'];

/// Zum Test ob die neuen Werte auch stimmen
echo $edit_get.'<br>';
echo $edit_page.'<br>';
echo $id.'<br><br><br>';
///

$update_get = 'UPDATE `config_dateien` SET `get`="$edit_get" WHERE `id`="$id"';
$update_page = 'UPDATE `config_dateien` SET `page`="$edit_page" WHERE `id`="$id"';
$result_get = mysql_query($update_get);
if (empty($result_get)) {print mysql_error(); } else { echo "Seitenkennung geaendert!<br>"; }
$result_page = mysql_query($update_page);
if (empty($result_page)) {print mysql_error(); } else {echo "Seitendatei geaendert!"; }
?>

Es wird ausgegeben das die Werte geändert wurden aber wie oben schon gesagt geschah die nicht. Bitte um Hilfe

PS:
Wenn das ein wenig umständlich ist, ich bin kein PHP Meister und machs so wie es bei mir am besten klappt ^^
 
Ich habs mir jetzt nicht so genau angeschaut, da nicht viel Zeit, aber mach doch mal deine Queries so:
mysql_query($query) or die(mysql_error());
Dann wird da sScript abgebrochen und dir Fehlermeldung ausgegeben, wenn es fehlschlägt.

Ich weiß nämlich nicht, ob die Methode mit empty() bei UPDATE auch so funktioniert.
 
Hallo,
so
PHP:
<?PHP 
require('config.lib.php'); 
$edit_get = $_POST['edit_get']; 
$edit_page = $_POST['edit_page']; 
$id = $_POST['id']; 
/// Zum Test ob die neuen Werte auch stimmen 
echo $edit_get.'<br>'; 
echo $edit_page.'<br>'; 
echo $id.'<br><br><br>'; 
/// 
$update_get = 'UPDATE `config_dateien` SET `get`="'.$edit_get.'" WHERE `id`="'.$id.'"';
$update_page = 'UPDATE `config_dateien` SET `page`="'.$edit_page.'" WHERE `id`="'.$id.'"';
$result_get = mysql_query($update_get); 
if (empty($result_get)) {print mysql_error(); } else { echo "Seitenkennung geaendert!<br>"; } 
$result_page = mysql_query($update_page); 
if (empty($result_page)) {print mysql_error(); } else {echo "Seitendatei geaendert!"; } 
?>
sollte es funktionieren.

mfg
forsterm
 
ich habe die Query jetzt folgendermaßen stehen:

PHP:
$update_get = "UPDATE `config_dateien` SET `get`=\"$edit_get\" WHERE `id`=\"id\"";
$update_page = "UPDATE `config_dateien` SET `page`=\"$edit_page\" WHERE `id`=\"$id\"";

Die Werten wurden auch in der Datenbank aktualisiert. Danke für die Hilfe
 
Du kannst auch beide Aktualisierungen gleichzeitig erledigen. Des Weiteren schlage ich noch einen Sicherheitsaspekt vor:
PHP:
<?php

	require 'config.lib.php';


	$query = '
		UPDATE
		        `config_dateien`
		  SET
		        `get`  = "'.mysql_real_escape_string($_POST['edit_get']).'",
		        `page` = "'.mysql_real_escape_string($_POST['edit_page']).'"
		  WHERE
		        `id` = "'.mysql_real_escape_string($_POST['id']).'"
		';
	$result = mysql_query($update_get)
		// zur einfachen Fehleranalyse
		or die(mysql_error());
	if( mysql_affected_rows() > 0 ) {
		echo 'Daten wurden aktualisiert.';
	}

?>
 
Zurück