UPDATE MySQL Befehl von Formular funktioniert nicht
Hallo, versuch eine hardware liste zu erstellen. Update Funktion auf die mysql DB funktioniert nicht.
Hallo,
Ich soll eine Hardwareliste für meinen Admin machen.
Die Ausgabe wenn Daten in der MySQL-DB drinstehen hab ich schon. Neue PC´s eintragen hab ich auch schon fertig und funktionieren auch prima nur das ändern der Datensätze fehlt mir noch.
Mein Problem ist das wenn ich auf Speichern drücke er mir den SQL-Befehl nicht ausführt. Auch die Echo´s in der if wo der Sql-Befehl liegt werden nicht angezeigt. Ich bekomm eine ganz leere Seite zurück.
In das Formular nimmt er die aktuellen Daten von der Datenbank schon mithinein. Die Select Befehle funktionieren also alle.
Ich werd hier mal das ganze Skript posten.
Kleine Info noch. Ich geh von der Seite wo ich die PC`s aufliste mit einem link auf die bearbeitungs Seite.
<a href="bearbeiten.php?action=' . $_POST['ID'] .'">Bearbeiten</a>
Damit Ihr wisst woher die ID kommt.
Bei den echo´s vor dem SQL-Befehl kommen folgende werte gleich wenn ich die Seite aufrufe heraus:
var_dump ($_POST); = array(1) { ["action"]=> string(1) "1" }
var_dump ($_POST['sp']); = NULL
var_dump ($_POST['action']); = string(1) "1"
Vielleicht kann mir einer von euch helfen und findet den kleinen Fehler
Hallo,
Ich soll eine Hardwareliste für meinen Admin machen.
Die Ausgabe wenn Daten in der MySQL-DB drinstehen hab ich schon. Neue PC´s eintragen hab ich auch schon fertig und funktionieren auch prima nur das ändern der Datensätze fehlt mir noch.
Mein Problem ist das wenn ich auf Speichern drücke er mir den SQL-Befehl nicht ausführt. Auch die Echo´s in der if wo der Sql-Befehl liegt werden nicht angezeigt. Ich bekomm eine ganz leere Seite zurück.
In das Formular nimmt er die aktuellen Daten von der Datenbank schon mithinein. Die Select Befehle funktionieren also alle.
Ich werd hier mal das ganze Skript posten.
Kleine Info noch. Ich geh von der Seite wo ich die PC`s aufliste mit einem link auf die bearbeitungs Seite.
<a href="bearbeiten.php?action=' . $_POST['ID'] .'">Bearbeiten</a>
Damit Ihr wisst woher die ID kommt.
Bei den echo´s vor dem SQL-Befehl kommen folgende werte gleich wenn ich die Seite aufrufe heraus:
var_dump ($_POST); = array(1) { ["action"]=> string(1) "1" }
var_dump ($_POST['sp']); = NULL
var_dump ($_POST['action']); = string(1) "1"
Vielleicht kann mir einer von euch helfen und findet den kleinen Fehler
<?php
require_once("db_config.php");
$db_sel = mysql_select_db( 'hardwareliste');
$pc_sel = mysql_query("SELECT user, ID FROM hardware_list ORDER BY user");
echo '
<html>
<head>
<link rel="stylesheet" type="text/css" href="style.css">
</head>
<body class="eintrag">
<form name="PC bearbeiten" action="'. $_SERVER['PHP_SELF'] . '"
method="POST" enctype="text/html">';
//Wird dann angezeigt wenn man einen PC ausgewählt hat.
if ( $_GET['action'] != "")
{
$_POST = $_GET;
//Auswahl für die Aktuellen-Daten des PC´s
$alt_erg = mysql_query("SELECT * FROM hardware_list WHERE ID = ". $_POST['action'] ." ORDER BY pc_name");
$alt_dat = mysql_fetch_array ($alt_erg);
// Auswahl der anderen Daten von verschiedenen Tabellen
$lie_erg = mysql_query("SELECT li_name FROM hw_lieferanten ORDER BY li_name");
$of_erg = mysql_query("SELECT of_name FROM hw_office ORDER BY of_name");
$os_erg = mysql_query("SELECT os_name FROM hw_operation_sys ORDER BY os_name");
$he_erg = mysql_query("SELECT he_name FROM hw_hersteller ORDER BY he_name");
$pers_erg = mysql_query("SELECT pers_nachname, pers_vorname FROM person ORDER BY pers_nachname");
$art_erg = mysql_query("SELECT art_name FROM hw_art ORDER BY art_name");
$lauf_erg = mysql_query("SELECT laufwerke_name FROM hw_laufwerke ORDER BY laufwerke_name");
$ip_erg = mysql_query("SELECT ip_nummer FROM hw_ip ORDER BY ip_nummer");
$spei_erg = mysql_query("SELECT speicher_name FROM hw_speicher ORDER BY id");
//Ausgabe des Formulars
echo '
<center>
<p><b>PC bearbeiten.</b></p>
<table border="0px" class="eintrag">
<tr >
<td>PC-NAME: </td>
<td><input type="text" name="pc_name" value="'. $alt_dat['pc_name'] .'" size="50" maxlenght="50" /></td>
</tr>
<tr>
<td>USER: </td>
<td>
<select size="1" name="user">
<!-- Alten Datensatz Anzeigen.-->
<option value="'. $alt_dat['user'].'">'. $alt_dat['user'].'</option>';
// Datensatz aus Tabelle anzeigen
while ($datensatz = mysql_fetch_array ($pers_erg))
{
echo '<option value="'. $datensatz['pers_nachname'] .', '. $datensatz['pers_vorname'] .'">'
. $datensatz['pers_nachname'] .', '. $datensatz['pers_vorname'].'</option>\n';
}
echo '</select>
</td>
</tr>
<tr>
<td>Kauf- Monat/Jahr: </td>
<td>M<input type="text" name="kaufmonat" value="'.$alt_dat['kauf_m'] .'" size="2" maxlenght="2" />
J<input type="text" name="kaufjahr" value="'.$alt_dat['kauf_j'] .'" size="4" maxlenght="4" /></td>
</tr>
<tr>
<td>Bauart: </td>
<td>
<select size="1" name="art" >
<!-- Alten Datensatz -->
<option value="'. $alt_dat['art'] .'">'. $alt_dat['art'] .'</option>';
// Datensatz aus Tabelle anzeigen
while ($datensatz = mysql_fetch_array($art_erg))
{
echo '<option value="'. $datensatz['art_name'] .'">'
.$datensatz['art_name'] .'</option>\n';
}
echo '</select>
</td>
</tr>
<tr>
<td>Hersteller: </td>
<td>
<select size="1" name="hersteller" >
<!-- Alten Datensatz -->
<option value="'. $alt_dat['hersteller'] .'">'. $alt_dat['hersteller'] .'</option>';
// Datensatz aus Tabelle anzeigen
while ($datensatz = mysql_fetch_array($he_erg))
{
echo '<option value="'. $datensatz['he_name'] .'">'
. $datensatz['he_name'] .'</option>\n';
}
echo '</select>
</td>
</tr>
<tr>
<td>Leasing/Kauf: </td>
<td>
<input type="radio" name="kaufart" value="Leasing" size="10" maxlenght="10" />Leasing<br>
<input type="radio" name="kaufart" value="Kauf" size="10" maxlenght="10" />Kauf<br>
<input type="radio" name="kaufart" value="Eigen Bau" size="10" maxlenght="10" />Eigen Bau</td>
</tr>
<tr>
<td>Lieferant: </td>
<td>
<select size="1" name="lieferanten" >
<!-- Alten Datensatz -->
<option value="'. $alt_dat['lieferanten'] .'">'. $alt_dat['lieferanten'] .'</option>';
// Datensatz aus Tabelle anzeigen.
while ($datensatz = mysql_fetch_array ($lie_erg))
{
echo '<option value="'. $datensatz['li_name'] .'">'
. $datensatz['li_name']. '</option>\n';
}
echo '</select>
</td>
</tr>
<tr>
<td>Lieferanten-Nummer: </td>
<td><input type="text" name="lieferanten_nummer" value="'.$alt_dat['lieferanten_nr'] .'" size="20"
maxlenght="20"/></td>
</tr>
<tr>
<td>Inventar-Nummer: </td>
<td><input type="text" name="inventar_nummer" value="'.$alt_dat['inventar_nummer'].'"
size="20" maxlenght="50" /></td>
</tr>
<tr>
<td>Office-Version: </td>
<td>
<select size="1" name="office">
<option value="'.$alt_dat['office'] .'">'.$alt_dat['office'].'</option>';
while ($datensatz = mysql_fetch_array ($of_erg))
{
echo '<option value="'. $datensatz['of_name'] .'">'. $datensatz['of_name']. '</option>';
}
echo '</select>
</td>
</tr>
<tr>
<td>Betriebssystem: </td>
<td>
<select size="1" name="operation" >
<option value="'. $alt_dat['operation'].'">'. $alt_dat['operation'].'</option>';
while ($datensatz = mysql_fetch_array($os_erg))
{
echo '<option value="'. $datensatz['os_name'] .'">'. $datensatz['os_name'] .'</option>';
}
echo '</select>
</td>
</tr>
<tr>
<td>IP-Adresse: </td>
<td>
<select size="1" name="ip-adressen_vorne">
<option value="'. $alt_dat['ip_adresse_a'].'">'. $alt_dat['ip_adresse_a'].'</option>';
while ($datensatz =mysql_fetch_array($ip_erg))
{
echo '<option value="'. $datensatz['ip_nummer'] .'">'. $datensatz['ip_nummer'] .'</option>';
}
echo '</select>
<input type="text" name="ip-adresse_endung" value="'.$alt_dat['ip_adresse_b'] .'" size="4"
maxlenght="50" />
</td>
</tr>
<tr>
<td>Motherboard: </td>
<td><input type="text" name="motherboard" value="'. $alt_dat['motherboard'] .'" size="20"
maxlenght="50" /></td>
</tr>
<tr>
<td>Grafikkarte: </td>
<td><input type="text" name="grafikkarte" value="'.$alt_dat['grafik'] .'" size="20"
maxlenght="50" /></td>
</tr>
<tr>
<td>Arbeitsspeicher: </td>
<td>
<select size="1" name="arbeitsspeicher">
<option value="'.$alt_dat['speicher'] .'">'.$alt_dat['speicher'].'</option>';
while ($datensatz = mysql_fetch_array($spei_erg))
{
echo '<option value="'. $datensatz['speicher_name'] .'">'. $datensatz['speicher_name'] .'</option>';
}
echo '</select>
</td>
</tr>
<tr>
<td>CPU: </td>
<td><input type="text" name="cpu" value="'. $alt_dat['cpu'] .'" size="20" maxlenght="50" /></td>
</tr>
<tr>
<td>Festplattenspeicher: </td>
<td><input type="text" name="festplattenspeicher" value="'.$alt_dat['hdd'].'" size="20"
maxlenght="50" /></td>
</tr>
<tr>
<td>Laufwerke: </td>
<td>
<select size="1" name="laufwerke">
<option value="'.$alt_dat['laufwerk'] .'">'.$alt_dat['laufwerk'] .'</option>';
while ($datensatz = mysql_fetch_array($lauf_erg))
{
echo '<option value="'. $datensatz['laufwerke_name'] .'">'. $datensatz['laufwerke_name'] .'</option>';
}
echo '</select>
</td>
</tr>
</table>
<input type="hidden" name="sp" value="1">
<input type="Submit" name="speichern" value="Speichern"/>
</center>
</form>
</body>
</html>';
//SQL-Befehl
var_dump ($_POST);
echo ('<br>');
var_dump ($_POST['sp']);
echo ('<br>');
var_dump ($_POST['action']);
if ( $_POST['sp'] == "1")
{
echo ('Eintrag wurde geändert.');
echo ('<br>');
var_dump ($_POST['sp']);
$sql = " UPDATE hardware_list ";
$sql .= " SET ";
$sql .= " pc_name = '". $_POST['pc_name']."', ";
$sql .= " user = '". $_POST['user'] ."', ";
$sql .= " art = '". $_POST['art'] ."', ";
$sql .= " kauf_m = '". $_POST['kaufmonat'] ."', ";
$sql .= " kauf_j = '". $_POST['kaufjahr'] ."', ";
$sql .= " hersteller = '". $_POST['hersteller'] ."', ";
$sql .= " kauf_leasing = '". $_POST['kaufart'] ."', ";
$sql .= " inventar_nummer = '". $_POST['inventar_nummer'] ."', ";
$sql .= " lieferanten = '". $_POST['lieferanten'] ."', ";
$sql .= " lieferanten_nr = '". $_POST['lieferanten_nummer'] ."', ";
$sql .= " ip_adresse_a = '". $_POST['ip-adressen_vorne'] ."', ";
$sql .= " ip_adresse_b = '". $_POST['ip-adresse_endung'] ."', ";
$sql .= " operation = '". $_POST['operation'] ."', ";
$sql .= " office = '". $_POST['office'] ."', ";
$sql .= " motherboard = '". $_POST['motherboard'] ."', ";
$sql .= " grafik = '". $_POST['grafikkarte'] ."', ";
$sql .= " speicher = '". $_POST['arbeitsspeicher'] ."', ";
$sql .= " cpu = '". $_POST['cpu'] ."', ";
$sql .= " hdd = '". $_POST['festplattenspeicher'] ."', ";
$sql .= " laufwerk = '". $_POST['laufwerke'] ."'";
$sql .= " WHERE ID = '". $_POST['action'] ."'";
echo ($sql);
$db_erg = mysql_query ($sql);
if ( ! $db_erg)
{
die ('Ungültiger Abfrage: '. mysql_error());
}
}echo ($sql);
}
?>
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 114849
Url: https://administrator.de/contentid/114849
Ausgedruckt am: 23.11.2024 um 00:11 Uhr
6 Kommentare
Neuester Kommentar
- mach am Anfach den Scripts mal immer:
und prüfe ob die Formular Daten deinen Vorstellungen entsprechen.
- schon mal den Befehl 'addslashes()' benutzt !?
- prüfe mal den generierten HTML code (wird dein FORM auch immer geschlossen ?)
PS:
echo 'POST: ' . print_r($_POST,true) . "<br>\n";
echo 'GET: ' . print_r($_GET,true) . "<br>\n";
- schon mal den Befehl 'addslashes()' benutzt !?
- prüfe mal den generierten HTML code (wird dein FORM auch immer geschlossen ?)
PS:
// für HTML Code mit einfachen Variablen...
echo <<<__HTML__
<h1>{$array[$key])</h1>
__HTML__;
// ebenso kann man sich die SQL Befehle so besser anschauen
$sql = <<<__SQL__
SELECT `wert`
FROM `tabelle`
WHERE `anderer_wert` = {$value};
__SQL__;
ok ... dann ändere doch mal die Zeile 267 in
dann ist das versteckte Input Feld (sp) auch nicht nötig.
Den Sinn des 'addslashes()' Befehls wird Dir klar, wenn mal sowas wie ' in deinen Variablen für die SQL Anweisung seht.
Musst Du in der Zeile 26 das gesamte $_POST Array überschreiben ? -evtl. gehen da Daten verloren !?
Wenn Du dir nicht sicher bist ob die Daten über 'post' oder 'get' kommen, benutze doch $_REQUEST.
.. nun sollte er aber ein SQL String bauen und ausführen !? Wie sieht den der SQL String aus ?
if ( $_POST['speichern'] == "Speichern")
Den Sinn des 'addslashes()' Befehls wird Dir klar, wenn mal sowas wie ' in deinen Variablen für die SQL Anweisung seht.
Musst Du in der Zeile 26 das gesamte $_POST Array überschreiben ? -evtl. gehen da Daten verloren !?
Wenn Du dir nicht sicher bist ob die Daten über 'post' oder 'get' kommen, benutze doch $_REQUEST.
.. nun sollte er aber ein SQL String bauen und ausführen !? Wie sieht den der SQL String aus ?
Und damit closed