MySql Update keine Werte gespeichert

xppx

Mitglied
Hallo,
ich habe mir vor einiger Zeit ein Neuigkeitenscript geschrieben soweit so gut. Nach einer neu Installation des Servers geht in diesem Script die mysql Update-Funktion nicht mehr also ich kann keine Einträge ändern. Hinzufügen und Löschen geht noch einwandfrei. Die Variablen werden auch ordentlich übergeben. Die Werte sind kurz in der DB vorhanden aber nach ca. 1sec nicht mehr da.

Der Code sieht so aus
PHP:
 if ($_GET['edit']=="on") {
$id				=	$_GET['id'];
$Datum			=	mktime($_POST['H'],$_POST['i'],0,$_POST['m'],$_POST['d'],$_POST['Y']);
$Titel			=	$_POST['Titel'];
$Text			=	$_POST['Text'];
$User			=	$_POST['User'];
$Print			=	$_POST['Print'];

$UPDATE="
UPDATE
    News
SET
    Datum = '$Datum',
    Titel = '$Titel',
	Text  = '$Text',
	User = '$User',
	Print = '$Print' 
WHERE
    ID = $id";
echo $UPDATE;
mysql_query($UPDATE);

wenn ich mir $UPDATE ausgeben lasse kommt folgendes:
PHP:
UPDATE News SET Datum = '1176832140', Titel = '7647', Text = 'kjlkj', User = '1', Print = '1' WHERE ID = 1

ich weiß einfach nicht wo da ein Fehler sein soll :( hoffe ihr könnt mir dort weiter helfen?! Danke!

xppx
 
PHP:
mysql_query($UPDATE) or die(mysql_error());

Versuch es mal so.

Außerdem solltest du dich über SQL Injektionen erkundigen und als Gegenmaßnahme z. B. [phpf]mysql_real_escape_string[/phpf] verwenden.
 
habe es noch mal probiert mit dem code
PHP:
$id				=	$_GET['id'];
$Datum			=	mktime($_POST['H'],$_POST['i'],0,$_POST['m'],$_POST['d'],$_POST['Y']);
$Titel			=	$_POST['Titel'];
$Text			=	$_POST['Text'];
$User			=	$_POST['User'];
$Print			=	$_POST['Print'];

$UPDATE="
UPDATE
    News
SET
    Datum = '$Datum',
    Titel = '$Titel',
	Text  = '$Text',
	User = '$User',
	Print = '$Print' 
WHERE
    ID = $id";
echo $UPDATE;
mysql_query($UPDATE) or die(mysql_error());

Aber arbeitet alles normal und ohne Fehler nur das die daten halt nach 1sec oder so wieder aus der db verschwinden und nen leeren eintrag hinterlassen
 
Hat die Löschfunktion aber nicht zufällig auch den selben If Block?

PHP:
if ($_GET['edit']=="on") {

:)

Könnte ja mal passieren durch c+p :P

Mach doch mal ne Ausgabe wenn das Eintragen erfolgreich war und ne Ausgabe wenn das Löschen erfolgreich war.
Dann führst du das Programm aus wenn wenn dann Eintragen und Löschen erfolgreich war dann hast du irgendwo nen Fehler in der Anfrage.
 
Zuletzt bearbeitet:
die ganze Funktion ist in
PHP:
if ($_GET['edit']=="on") {...}

aber ändert ja leider noch nix an meinem Problem da dies ja ausgeführt wird und auch anscheinend funktioniert doch dann aber leider überschrieben oder nicht ordnungsgemäß beendet wird.

Wenn ich das Update Starte und die Seite fertig geladen ist sehe ich den Titel der Neuigkeit richtig stehen aber wenn ich nun auf egal welche Seite weiter gehe verschwindet dieser wieder.
 
PHP:
<?php
 if ($_GET['edit']=="on") {
$id				=	$_GET['id'];
$Datum			=	mktime($_POST['H'],$_POST['i'],0,$_POST['m'],$_POST['d'],$_POST['Y']);
$Titel			=	$_POST['Titel'];
$Text			=	$_POST['Text'];
$User			=	$_POST['User'];
$Print			=	$_POST['Print'];

$UPDATE="
UPDATE
    News
SET
    Datum = '$Datum',
    Titel = '$Titel',
	Text  = '$Text',
	User = '$User',
	Print = '$Print' 
WHERE
    ID = $id";
echo $UPDATE;
mysql_query($UPDATE) or die(mysql_error());

?>
<table width="100%" border="0">
  <tr>
    <td colspan="4"><strong><font color="#006600">Daten wurden Aktualisiert!</font></strong></td>
  </tr>
  <tr>
    <td width="26%">&nbsp;</td>
    <td colspan="3">&nbsp;</td>
  </tr>
  <tr>
    <td><strong>ID:</strong></td>
    <td colspan="3"><?php echo $_GET['id']; ?></td>
  </tr>
  <tr>
    <td><strong>Datum:</strong></td>
    <td colspan="3"><?php echo date("d.m.Y H:i", $Datum); ?></td>
  </tr>
  <tr>
    <td><strong>Titel:</strong></td>
    <td colspan="3"><?php echo $_POST['Titel']; ?></td>
  </tr>
  <tr>
    <td valign="top"><strong>Text:</strong></td>
    <td colspan="3"><?php echo $_POST['Text']; ?></td>
  </tr>
  <tr>
    <td><strong>User:</strong></td>
    <td colspan="3"><?php
	$sql2 = "SELECT ID,Nick FROM Administratoren WHERE ID=".$_POST['User'].";";
    $result2 = mysql_query($sql2) OR die(mysql_error());        
    $row2 = mysql_fetch_assoc($result2);
	echo $row2['Nick'];
	?></td>
  </tr>
  <tr>
    <td><strong>Print:</strong></td>
    <td colspan="3"><?php if ($_POST['Print']==1) { echo "Ja"; }else{ echo "Nein"; }; ?></td>
  </tr>
  <tr>
    <td rowspan="2">&nbsp;</td>
    <td colspan="3">&nbsp;</td>
  </tr>
  <tr>
    <td width="45%"></td>
    <td width="17%"></td>
    <td width="12%"><div align="left">
      <form action="?page=Neuigkeiten&action=manage" method="post" name="Zurueck" id="back">
        <div align="right">
          <input type="submit" name="Submit" value="Zur&uuml;ck zur &Uuml;bersicht" style="<?php echo $style; ?>"/>
        </div>
      </form>
    </div></td>
  </tr>
</table>
<? } else {
    $sql = "SELECT * FROM News WHERE ID=".$_GET['id'].";";
    $result = mysql_query($sql) OR die(mysql_error());
    while($row = mysql_fetch_assoc($result)) {
?>
<form id="form1" name="form1" method="post" action="?page=Neuigkeiten&action=edit&edit=on&id=<?php echo $row['ID']; ?>">
  <table width="100%" border="0">
    <tr>
      <td width="27%"><strong>ID:</strong></td>
      <td colspan="2"><?php echo $row['ID']; ?></td>
    </tr>
    <tr>
      <td><strong>Datum:</strong></td>
      <td colspan="2"><input name="d" type="text" id="d" style="<?php echo $style; ?>" value="<?php echo date("d", $row['Datum']); ?>" size="1" maxlength="2"/>
        .
          <input name="m" type="text" id="m" style="<?php echo $style; ?>" value="<?php echo date("m", $row['Datum']); ?>" size="1" maxlength="2"/>
      .
      <input name="Y" type="text" id="Y" style="<?php echo $style; ?>" value="<?php echo date("Y", $row['Datum']); ?>" size="4" maxlength="4"/>
      &nbsp;<input name="H" type="text" id="H" style="<?php echo $style; ?>" value="<?php echo date("H", $row['Datum']); ?>" size="1" maxlength="2"/>
      :
      <input name="i" type="text" id="i" style="<?php echo $style; ?>" value="<?php echo date("i", $row['Datum']); ?>" size="1" maxlength="2"/></td>
    </tr>
    <tr>
      <td><strong>Titel:</strong></td>
      <td colspan="2"><input name="Titel" type="text" style="<?php echo $style; ?>" value="<?php echo $row['Titel']; ?>" size="88"/></td>
    </tr>
    <tr>
      <td valign="top"><strong>Text:</strong></td>
      <td colspan="2"><textarea name="Text" cols="85" rows="10" style="<?php echo $style; ?>"><?php echo $row['Text']; ?></textarea></td>
    </tr>
    <tr>
      <td><strong>User:</strong></td>
      <td colspan="2"><select name="User" size="1" style="<?php echo $style; ?>">
	  <?php $sql2 = "SELECT * FROM Administratoren;";
    		$result2 = mysql_query($sql2) OR die(mysql_error());
    		while($row2 = mysql_fetch_assoc($result2)) {?>

			<option value="<?php echo $row2['ID']; ?>"<?php if ($row['User']==$row2['ID']) { echo "selected";} ?>><?php echo $row2['Nick']; ?></option><?php } ?>
        </select>
    </tr>
    <tr>
      <td><strong>Drucken:</strong></td>
      <td colspan="2"><select name="Print" size="1" style="<?php echo $style; ?>">
          <option value="1" <?php if ($row['Print']==1) { echo "selected";} ?>>Ja</option>
          <option value="0" <?php if ($row['Print']==0) { echo "selected";} ?>>Nein</option>
        </select>      </td>
    </tr>
    <tr>
      <td rowspan="2">&nbsp;</td>
      <td colspan="2">&nbsp;</td>
    </tr>
    <tr>
      <td width="45%"></td>
      <td><div align="right">
        <input name="submit2" type="submit"  value="Bearbeiten" style="<?php echo $style; ?>"/>
          <input type="reset" name="Submit2" value="Abbrechen" style="<?php echo $style; ?>"/>
        </div></td>
    </tr>
  </table>
</form>
<?php }} ?>
 
wenn du die Formulare mit
Code:
method="post"
abschickst kannst du sie nur mit
Code:
$_POST['<variable>' ]
auslesen
edit:ich seh gerade, das hast du ja gemacht
 
Zuletzt bearbeitet:
Zurück