Einträge in der Datenbank ändern t net

r3ddragon

Mitglied
Ich habe folgende Anleitung gefunden um Werte einer Datenbank zu ändern:
UPDATE tablle
SET spalte1 = wert1
, spalte2 = wert2
, ...
WHERE id = ...


nun habe ich meine Abfrage dem entsprechend im Script editiert:

PHP:
<?
$id = $_GET['id'];
?>
<body text="#FF0000" bgcolor="#00000" link="#FF0000" alink="#FF0000" vlink="#FF0000" onload="size ()">

<form action="<?php echo "status.php?stat=1&id=" .$id; ?>" name="status" method="POST">
<div align="center">
<table border="0">
<tr>
 <td>Offen : </td>
 <td><input type="Radio" name="stat" value="offen" checked></td>
</tr>
<tr>
 <td>In Bearbeitung : </td>
 <td><input type="Radio" name="stat" value="in Bearbeitung"></td>
</tr>
<tr>
 <td>Fertig : </td>
 <td><input type="Radio" name="stat" value="fertig"></td>
</tr>
<tr>
 <td>Nicht möglich : </td>
 <td><input type="Radio" name="stat" value="nicht möglich"></td>
</tr>
</table>
<input type="Submit" name="status" value="Setzen"></br></form>
</div>


<?php
include ('db_config.php');

$connID = mysql_connect ("$db_host", "$db_user", "$db_pass");
if (!mysql_select_db ($db_name, $connID))
{
  die ("Keine Verbindung zur Datenbank");
}
if (isset ($_REQUEST['stat']))
{
$stat = $_POST['stat'];
}

//  Abfragen der Datenbank
$sql = 'UPDATE '.$tb2_name.' SET status = '.$stat.' WHERE id = '.$id.'';
echo $sql;
	if (mysql_query ($sql). mysql_error())
         {
         echo "<br>Status wurde gesetzt<br>". mysql_error() ;
         } else {
         echo "Fehler beim setzen des Status";
         }
?>

aber es t. Es kommt folgende meldung:

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 'möglich WHERE id = 15' at line 1


kann mir jemand sagen wo der fehler bei der Abfrage ist
 
Wenn „status“ eine Zeichenkette ist, muss diese in der MySQL-Abfrage auch entsprechend ausgezeichnet werden. Zudem wird die Datenbankabfrage auch dann ausgeführt, wenn das Skript nicht mit der POST-Methode angefordert wird.
 
du meinst sicher die variable $id
also diese wird so übergeben:

PHP:
<input type="button" name="id" value="Status ändern" onclick="changeStatWindow(<?php echo $row[0]; ?>)">

was dann an
<script language="JavaScript">
function changeStatWindow(index){
window.open("status.php?id=" + index, "Status", "width=350,height=450", "toolbar=no");
}
</script>
geht!


Aber das isses net , sonder glaube ich an der abfrage :

PHP:
$sql = 'UPDATE '.$tb2_name.' SET status = '.$stat.' WHERE id = '.$id.'';

is was falsch
 
Du möchtest ja einen Wert des Formulars in der Datenbank speichern. Die Datenbankabfrage dafür wird jedoch bei jedem Aufruf des Skriptes ausgeführt, also einmal wenn das Formular ausgegeben wird und nachdem das Formular abgesendet, wenn also die Formulardaten verarbeitet werden. Die Datenbankabfrage zur Aktualisierung sollte jedoch nur bei letzterem Fall ausgeführt werden.
PHP:
if( $_SERVER['REQUEST_METHOD'] == 'POST' ) {
	// POST-Anfrage
	// Verarbeitung der übertragenen Formulardaten
} else {
	// keine POST-Anfrage (vermutlich also GET)
	// Ausgabe des Formulars
}
 
Zurück