Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

SQL UPDATE funktioniert nicht

Empfohlene Antworten

Veröffentlicht

Hallo,

Ich kann in meiner Datenbank die Felder einer Tabelle nicht Updaten, wenn ich den Variablen Werte aus dem Formular zuweise. Wenn ich die Variablen im Programmcode Fest deklariere dann funktioniert alles.

Ich habe eine Hauptdatei, in der der Programmablauf beschrieben wird. Abhängig von der auszuführenden Funktion wird eine Datei per "include" geladen und dort die entsprechende Funktion aufgerufen.

Hier hab ich erstmal die betreffenden Programmteile für euch.

Hauptdatei:

		
if($step == "1")
{

/*
Formular zum ändern der Standortdaten.
*/
$fb_ausgabe=editStandortForm($id);

}


if($step == "2")
{
/*
mit den Eingegebenen Daten aus der Funktion "editStandortForm($id)" wird hier der Inhalt des entsprechenden Standortes geändert!
*/

// Empfangen der Daten aus dem Formular
$name=$_POST['name'];
$str=$_POST['str'];
$ort=$_POST['ort'];
$plz=$_POST['plz'];
$tel=$_POST['tel'];
$fax=$_POST['fax'];
$ustid=$_POST['ustid'];
$ansprechpartner=$_POST['ansprechpartner'];
$onoff=$_POST['status'];
$fb_ausgabe=writeStandortData($id,$name,$str,$ort,$plz,$tel,$fax,$ustid,$ansprechpartner,$onoff);

}[/PHP]

Datei die die Funktionen enthält:

[PHP]
// Standort änderungs Formular
function editStandortForm($standortID)
{
$fb_return = "0";
$onoff=$_POST['status'];
$daten="SELECT * FROM mz_mandant WHERE m_id='".$standortID."'";
$ergDaten=mysql_query($daten);
$datenZeile=mysql_fetch_row($ergDaten);

$fb_return="<center><h2><u>Sie bearbeiten den Standort: ".$datenZeile[2]."</u></h2></center><form name=\"addStandort\" action=\"mobileZeiterfassungServer.php?menue=1&step=2&id=".$standortID."\" method=\"POST\">
<table border=\"0\">
<tr><td><b>Name des Standortes: </b></td><td><input type=\"text\" name=\"name\" size=\"25\" value=\"".$datenZeile[1]."\" /></td></tr>";
if($datenZeile[2] == "on")
{
$fb_return.="<tr><td><b>Standort Status: </b></td><td>Offline: <input type=\"radio\" name=\"status\" value=\"off\" /> Online: <input type=\"radio\" name=\"status\" value=\"on\" checked /></td><tr>";
}
if($datenZeile[2] == "off")
{
$fb_return.="<tr><td><b>Standort Status: </b></td><td>Offline: <input type=\"radio\" name=\"status\" value=\"off\" checked /> Online: <input type=\"radio\" name=\"status\" value=\"on\"/></td><tr>";
}
$fb_return.="<tr><td><b>Standort Prefix: </b></td><td><input type=\"text\" name=\"standortPrefix\" size=\"25\" value=\"".$datenZeile[0]."\" disabled/></td></tr>
<tr><td><b>Strasse / Hausnummer: </b></td><td><input type=\"text\" name=\"str\" size=\"25\" value=\"".$datenZeile[3]."\" /></td></tr>
<tr><td><b>Ort: </b></td><td><input type=\"text\" name=\"ort\" size=\"25\" value=\"".$datenZeile[4]."\" /></td></tr>
<tr><td><b>Plz.: </b></td><td><input type=\"text\" name=\"plz\" size=\"25\" maxlength=\"5\" value=\"".$datenZeile[5]."\" /></td></tr>
<tr><td><b>Tel.: </b></td><td><input type=\"text\" name=\"tel\" size=\"25\" value=\"".$datenZeile[6]."\" /></td></tr>
<tr><td><b>Fax.: </b></td><td><input type=\"text\" name=\"fax\" size=\"25\" value=\"".$datenZeile[7]."\" /></td></tr>
<tr><td><b>UstID.: </b></td><td><input type=\"text\" name=\"ustid\" size=\"25\" value=\"".$datenZeile[8]."\" /></td></tr>
<tr><td><b>Ansprechpartner: </b></td><td><input type=\"text\" name=\"ansprechpartner\" size=\"25\" value=\"".$datenZeile[9]."\" /></td></tr>
<tr><td><input type=\"submit\" value=\"Daten ändern\"></td><td><input type=\"reset\" value=\"Abbrechen\"></table>
</form> ";
$fb_return.="<br><br><a href=\"mobileZeiterfassungServer.php?menue=1&step=3&<?=SID?>\" target=\"_top\">Stammdaten hinzufügen</a><br><br>";

return $fb_return;
}

Hier tritt meiner Meinung nach das Problem auf:



// Standort Daten in der Mysql Datenbank ändern
// Änderungen in der Datenbank speichern!
function writeStandortData($id,$name,$status,$strasse,$ort,$plz,$tel,$fax,$ustid,$ansprechpartner)
{
$ausgabe=NULL;

mysql_query("UPDATE `mz_mandant` SET `m_name`='$name' WHERE `m_id`='9999'")or die($ausgabe=mysql_error());
return $ausgabe;
}

[/PHP]

Die Werte die von mir im Formular eingegeben wurden werden nicht in die Datenbank geschrieben. Es wird einfach nix geschrieben. Das sql_query wird aber ohne Fehler ausgeführt. Die Variablen werden behandelt als wäre kein Inhalt vorhanden.

UPDATE `mz_mandant` SET `m_name`='$name' WHERE `m_id`='9999'

und bei

UPDATE mz_mandant SET m_name=$name where m_id=9999
[/PHP]

Mach doch mal ein

echo "UPDATE mz_mandant SET m_name='$name' WHERE m_id=9999";

Dann siehst du, ob die SQL Anweisung richtig ist. Hast du phpmyadmin installiert? Falls ja, teste doch mal damit. Dann siehst du auch, ob überhaupt ein Datensatz verändert wird.

und warum benutzt du ` ` ?

  • Autor

Ja wenn ich das mache kommt 1 raus!

der Updatet ja auch Daten, wie zum Beispiel das Änderungsdatum.

Nur die Variablen, deren Inhalt aus dem Formular stammt, behandelt er als wäre nichts in den Variablen gespeichter.

Wenn ich mir die Variablen aber ausgeben mit "echo" ausgeben lasse dann wird der korrekte Inhalt angezeigt.

Das ist ja gerade das Problem!

  • Autor

Komisch!

Wenn ich die Seite mit dem Internetexplorer aufrufe dann Funktioniert alles!

Wenn ich aber Mozilla benutze dann schreibt der keine Daten in die Datenbank.

Das darf doch Theoretisch nicht gehen da PHP doch Serverseitig ausgeführt wird.

Woran kann das liegen? Kann mir da einer weiterhelfen? So ein Problem hatte ich noch nie!

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.