mysql query macht mir probleme ?

Stephan Liebig

Erfahrenes Mitglied
Habe folgenden Code.

PHP:
<?php

//--------------------------------------------------
// imprint -  mathogbr
//--------------------------------------------------

if(!isset($_GET[save])){

$result = mysql_query("SELECT * FROM impressum", $conn) or die(mysql_error());
$data = mysql_fetch_array($result);

echo '<form action="admin.php?view=2&save=true" method="post" name="imprint">';
echo '<table width="650" border="0" cellspacing="0" cellpadding="0">';
  echo '<tr>';
    echo '<td>Firmenname: </td>';
    echo '<td><input name="firmenname" type="text" value="'.$data[firmenname].'"/></td>';
  echo '</tr>';
  echo '<tr>';
    echo '<td>Inhaber 1: </td>';
    echo '<td><input name="inhaber1" type="text" value="'.$data[inhaber1].'"/></td>';
  echo '</tr>';
  echo '<tr>';
    echo '<td>Inhaber 2: </td>';
    echo '<td><input name="inhaber2" type="text" value="'.$data[inhaber2].'"/></td>';
  echo '</tr>';
  echo '<tr>';
    echo '<td>Strasse/Nr: </td>';
    echo '<td><input name="strasse" type="text" value="'.$data[strasse].'"/></td>';
  echo '</tr>';
  echo '<tr>';
    echo '<td>PLZ: </td>';
    echo '<td><input name="plz" type="text" value="'.$data[plz].'"/></td>';
  echo '</tr>';
  echo '<tr>';
    echo '<td>Ort: </td>';
    echo '<td><input name="ort" type="text" value="'.$data[ort].'"/></td>';
  echo '</tr>';
  echo '<tr>';
    echo '<td>Telefon: </td>';
    echo '<td><input name="telefon" type="text" value="'.$data[telefon].'"/></td>';
  echo '</tr>';
  echo '<tr>';
    echo '<td>Email: </td>';
    echo '<td><input name="email" type="text" value="'.$data[email].'"/></td>';
  echo '</tr>';
  echo '<tr>';
    echo '<td>Steuernummer: </td>';
    echo '<td><input name="steuernummer" type="text" value="'.$data[steuernummmer].'"/></td>';
  echo '</tr>';
  echo '<tr>';
    echo '<td>Ust-ID: </td>';
    echo '<td><input name="ust_id" type="text" value="'.$data[ust_id].'"/></td>';
  echo '</tr>';
  echo '<tr>';
    echo '<td><input name="send" type="submit" value="Speichern" /><input name="reset" type="button" value="Abbrechen" /></td>';
    echo '<td>&nbsp;</td>';
  echo '</tr>';
echo '</table>';
echo '</form>';
}
else{

if(mysql_query("UPDATE impressum SET (firmenname = '$_POST[firmenname]', inhaber1 = '$_POST[inhaber1]', inhaber2 = '$_POST[inhaber2]', strasse = '$_POST[strasse]', plz = '$_POST[plz]', ort = '$_POST[ort]', telefon = '$_POST[telefon]', email = '$_POST[email]', steuernummer '$_POST[steuernummer]', ust_id = '$_POST[ust_id]') WHERE id =1") ) {
echo 'Der Eintrag wurde in die Datenbank aufgenommen.';
}
else {
echo error('Der Eintrag konnte nicht in die Datenbank aufgenommen werden!');
}
}
?>

Es gibt in der Datenbank nur einen Eintrag den ich hier bei bedarf ändern möchte. Wenn ich aber auf Speichern klicke, erhalte ich immer nur meine Fehlermeldung "Der Eintrag konnte ...."
 
Wie meinst du das jetzt?

Habe doch unten $_POST verwendet ?


BTW: Als ich unten noch INSERT INTO hatte, hat es funktioniert, aber ich brauch ja nicht 1000 einträge sondern nur 1 in der db
 
Zuletzt bearbeitet:
MySQL Error und die Query ausgeben lassen und dann mal schauen was genau er anmeckert:

PHP:
echo 'Der Eintrag wurde in die Datenbank aufgenommen.';
}
else {
echo "UPDATE impressum SET (firmenname = '$_POST[firmenname]', inhaber1 = '$_POST[inhaber1]', inhaber2 = '$_POST[inhaber2]', strasse = '$_POST[strasse]', plz = '$_POST[plz]', ort = '$_POST[ort]', telefon = '$_POST[telefon]', email = '$_POST[email]', steuernummer '$_POST[steuernummer]', ust_id = '$_POST[ust_id]') WHERE id =1".mysql_error();
 
Schau dir mal die Ausgabe von [phpf]mysql_error[/phpf] an:
PHP:
$query = mysql_query("UPDATE `impressum`
            SET (
            `firmenname` = '" . mysql_real_escape_string($_POST['firmenname']) . "',
            `inhaber1` = '" . mysql_real_escape_string($_POST['inhaber1']) . "',
            `inhaber2` = '" . mysql_real_escape_string($_POST['inhaber2']) . "',
            `strasse` = '" . mysql_real_escape_string($_POST['strasse']) . "', 
            `plz` = '" . mysql_real_escape_string($_POST['plz']) . "',
            `ort` = '" . mysql_real_escape_string($_POST['ort']) . "',
            `telefon` = '" . mysql_real_escape_string($_POST['telefon']) . "',
            `email` = '" . mysql_real_escape_string($_POST['email']) . "',
            `steuernummer` = '" . mysql_real_escape_string($_POST['steuernummer']) . "',
            `ust_id` = '" . mysql_real_escape_string($_POST['ust_id']) . "')
            WHERE `id` = 1") or die(mysql_error());

if($query) {
echo 'Der Eintrag wurde in die Datenbank aufgenommen.';
}
else {
echo error('Der Eintrag konnte nicht in die Datenbank aufgenommen werden!');
}

Nachtrag
Zu langsam, aber du solltest auch [phpf]mysql_real_escape_string[/phpf] verwenden, um SQL-Injections vorzubeugen!
 
Zuletzt bearbeitet:
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 '(firmenname = 'Matho GbR', inhaber1 = 'Thomas Sauer', inhaber2 = 'Manfred', stra' at line 1


Bei deiner Version sagt er mir:

Parse error: parse error, unexpected ';' in /srv/www/vhosts/mathogbr.de/httpdocs/admin/imprint.inc.php on line 75

also hier:

WHERE `id` = 1") or die(mysql_error());
 
Zuletzt bearbeitet:
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 '( `firmenname` = 'Matho GbR', `inhaber1` = 'Thomas Sauer' at line 2
 
Zurück