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.

Wo ist der Fehler ...

Empfohlene Antworten

Veröffentlicht

Dieser Code geht ....

<?PHP

//Funktion zum Ändern eines Datensatzes
Function update_data ($idkunde,$dblink)
{

$result = mysql_query("SELECT * FROM ref_gas WHERE id=".$idkunde,$dblink);

//Erst mal gucken, ob was drin ist
If ($result)
{
$row=mysql_fetch_array($result);

//Form für die Dateneingabe erstellen
echo '<form action="?" method="post">

//Eingabefelder der Form
<table width="740" border="0" cellspacing="2" cellpadding="0">
<tr>
<td>Jahr</td>
<td>Auftragsnummer</td>
<td>Kunde</td>
<td>Projekt</td>
<td>Land</td>
<td>Andwendung</td>
</tr>
<tr>
<td><input type="text" name="jahr" size="4" maxlength="8" border="0" value="'.$row["jahr"].'"></td>
<td><input type="text" name="nr" size="14" maxlength="32" border="0" value="'.$row["nr"].'"></td>
<td><input type="text" name="kunde" size="14" maxlength="32" border="0" value="'.$row["kunde"].'"></td>
<td><input type="text" name="projekt" size="14" maxlength="32" border="0" value="'.$row["projekt"].'"></td>
<td><input type="text" name="land" size="14" maxlength="32" border="0" value="'.$row["land"].'"></td>
<td><input type="text" name="anwendung" size="4" maxlength="4" border="0" value="'.$row["anwendung"].'"></td>
<td><input type="hidden" name="id" size="14" maxlength="32" border="0" value="'.$row["id"].'"></td>
</tr>
</table>
<p><input type="submit" name="update" value="OK" border="0"></p>
</form>
';


//If schließen
}

//Funktion Update beenden
}
//ElseIf Abfrage, ob Update gemacht werden soll, dann ausführen und Tabelle anzeigen
ElseIf ($update == "OK"){

$updateSQL = "UPDATE ref_gas SET jahr='".$jahr."', nr='".$nr."', kunde='".$kunde."', projekt='".$projekt."', land='".$land."', anwendung='".$anwendung."' WHERE id='".$id."'";

//echo $updateSQL;
Mysql_query($updateSQL, $db) or die(mysql_error());
Table_show ($db, "SELECT * FROM ref_gas");
//Elseif Update beenden
}

//ist kein action gewählt, wird die Tabelle aufgerufen
Else {
Table_show($db, "SELECT * FROM ref_gas");
//Else beenden
}
?PHP>[/PHP]

dieser nicht

[PHP]<?PHP


//Funktion zum Ändern eines Datensatzes
Function update_data ($idkunde,$dblink)
{

$result = mysql_query("SELECT * FROM kontakte WHERE id=".$idkunde,$dblink);

//Erst mal gucken, ob was drin ist
If ($result)
{
$row=mysql_fetch_array($result);

//Form für die Dateneingabe erstellen
echo '<form action="?" method="post">

//Eingabefelder der Form
<table width="740" border="0" cellspacing="2" cellpadding="0">
<tr>
<td>Vertrieb</td>
<td>:</td>
<td><input type="text" name="vertrieb" size="38" maxlength="38" border="0" value="'.$row["vertrieb"].'"></td>
</tr>
<tr>
<td>Standort</td>
<td>:</td>
<td><input type="text" name="standort" size="38" maxlength="38" border="0" value="'.$row["standort"].'"></td>
</tr>
<tr>
<td>Name</td>
<td>:</td>
<td><input type="text" name="name" size="38" maxlength="38" border="0" value="'.$row["name"].'"></td>
</tr>
<tr>
<td>Funktion</td>
<td>:</td>
<td><input type="text" name="funktion" size="38" maxlength="38" border="0" value="'.$row["funktion"].'"></td>
</tr>
<tr>
<td>Telefon</td>
<td>:</td>
<td><input type="text" name="telefon" size="38" maxlength="38" border="0" value="'.$row["telefon"].'"></td>
</tr>
<tr>
<td>Fax</td>
<td>:</td>
<td><input type="text" name="fax" size="38" maxlength="4" border="0" value="'.$row["fax"].'"></td>
</tr>
<tr>
<td>E-Mail</td>
<td>:</td>
<td><input type="text" name="mail" size="38" maxlength="64" border="0" value="'.$row["mail"].'"> (sichtbar auf derAnsprechpartner-Seite)</td>
</tr>
<tr>
<td>Real E-Mail</td>
<td>:</td>
<td><input type="text" name="real_mail" size="38" maxlength="64" border="0" value="'.$row["real_mail"].'"> (unsichtbar auf der Anprechpartner-Seite)</td>
</tr>
</table>
<p><input type="submit" name="update" value="OK" border="0"></p>
</form>
';


//If schließen
}

//Funktion Update beenden
}

//ElseIf Abfrage, ob Update gemacht werden soll, dann ausführen und Tabelle anzeigen
ElseIf ($update == "OK"){

$updateSQL = "UPDATE kontakte SET vertrieb='".$vertrieb."', standort='".$standort."', name='".$name."', funktion='".$funktion."', telefon='".$telefon."', fax='".$fax."', mail='".$mail."' , real_mail='".$real_mail."' WHERE id='".$id."'";

//echo $updateSQL;
Mysql_query($updateSQL, $db) or die(mysql_error());
Table_show ($db, "SELECT * FROM kontakte");
//Elseif Update beenden
}
?PHP>

Beim ersten Code kann ich die Datenbank updaten und die Änderungen übernehmen. Beim zweiten Code passiert garnichts wenn man auf OK drückt .. also es wird nichts in die DB eingetragen. Komisch, hat hat mal funktioniert, aber ich hab da bestimmt nur irgendwo was vergessen!

Bitte um Hilfe! Danke!

Was hat sich denn geändert (Script, Server, ...)?

Es wäre nett, wenn du das Problem etwas spezifizieren könntest.

- Woher kommen die Inhalte für $vertrieb, etc.?

- Stehen vielleicht Sonderzeichen in Werten?

- Vielleicht irgendeine Bedingung nicht erfüllt?

- Führt er das Update überhaupt aus? -> ggf. mal die Fehlerausgabe und den SQL-String posten

bei unteren habe ich nur das Formular neugeschrieben ... ich bekomme keine Fehlermeldung, dass ist ja das Lustige ... er überträgt einfachn icht die Variablen der Formularfelder in die Datenbank. Oben ist eigentlich genau der gleche Code für ein anderes Formular und da geht alles!!! Kann ich in das Skript irgendwie nen Debugger implementieren?

Poste doch mal die query. und probier die query mal in PHPMyAdmin oder so aus. Das hilft glaub ich etwas weiter.

Query posten??? In PHPMYADMIN geht jedenfalls alles ...

ich will nur wissen, wieso er beim Update Formular zwar die Werte aus der Datenbank ziehst, sie aber nicht editieren kann!

mach ma ne ausgabe in dein script und tese ob es überhaupt aufgerufen wird

Hi Kills, ja und wie geht das mit der Ausgabe :confused:


<?PHP


//Funktion zum Ändern eines Datensatzes
Function update_data ($idkunde,$dblink)
{

echo "UPDATE_DATA wird ausgeführt...."; // Testausgabe

$result = mysql_query("SELECT * FROM kontakte WHERE id=".$idkunde,$dblink);

//Erst mal gucken, ob was drin ist
If ($result)
{
$row=mysql_fetch_array($result);

//Form für die Dateneingabe erstellen
echo '<form action="?" method="post">

//Eingabefelder der Form
<table width="740" border="0" cellspacing="2" cellpadding="0">
<tr>
<td>Vertrieb</td>
<td>:</td>
<td><input type="text" name="vertrieb" size="38" maxlength="38" border="0" value="'.$row["vertrieb"].'"></td>
</tr>
<tr>
<td>Standort</td>
<td>:</td>
<td><input type="text" name="standort" size="38" maxlength="38" border="0" value="'.$row["standort"].'"></td>
</tr>
<tr>
<td>Name</td>
<td>:</td>
<td><input type="text" name="name" size="38" maxlength="38" border="0" value="'.$row["name"].'"></td>
</tr>
<tr>
<td>Funktion</td>
<td>:</td>
<td><input type="text" name="funktion" size="38" maxlength="38" border="0" value="'.$row["funktion"].'"></td>
</tr>
<tr>
<td>Telefon</td>
<td>:</td>
<td><input type="text" name="telefon" size="38" maxlength="38" border="0" value="'.$row["telefon"].'"></td>
</tr>
<tr>
<td>Fax</td>
<td>:</td>
<td><input type="text" name="fax" size="38" maxlength="4" border="0" value="'.$row["fax"].'"></td>
</tr>
<tr>
<td>E-Mail</td>
<td>:</td>
<td><input type="text" name="mail" size="38" maxlength="64" border="0" value="'.$row["mail"].'"> (sichtbar auf derAnsprechpartner-Seite)</td>
</tr>
<tr>
<td>Real E-Mail</td>
<td>:</td>
<td><input type="text" name="real_mail" size="38" maxlength="64" border="0" value="'.$row["real_mail"].'"> (unsichtbar auf der Anprechpartner-Seite)</td>
</tr>
</table>
<p><input type="submit" name="update" value="OK" border="0"></p>
</form>
';


//If schließen
}

//Funktion Update beenden
}

//ElseIf Abfrage, ob Update gemacht werden soll, dann ausführen und Tabelle anzeigen
ElseIf ($update == "OK"){

$updateSQL = "UPDATE kontakte SET vertrieb='".$vertrieb."', standort='".$standort."', name='".$name."', funktion='".$funktion."', telefon='".$telefon."', fax='".$fax."', mail='".$mail."' , real_mail='".$real_mail."' WHERE id='".$id."'";

//echo $updateSQL;
Mysql_query($updateSQL, $db) or die(mysql_error());
Table_show ($db, "SELECT * FROM kontakte");
//Elseif Update beenden
}
?PHP>
[/PHP]

Ja toll, dass hat er mir natürlich ausgegeben! Wenn ich jetzt in dem Formular auf OK drücke, springt er zurück in die Liste aber ändert nichts. :confused:

Dieser Code geht [...]dieser nicht

Yep, und zwar weil in Deinem ersten Code die ID als <input type="hidden"> an das Update übergeben wird (und somit die WHERE-Bedingung zutrifft), während im zweiten Codeschnippsel diese hidden-Variable im form nicht vorkommt (wodurch die WHERE-Bedingung immer FALSE ist).

ICQ

jepp! das war´s! Vielen Dank für deine Aufmerksamkeit!

~closed~

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.