FreshGarden
Grünschnabel
Hallo,
ich habe ein Formular, das die Variablen "Vorname" und "Spalte" an dieses Script übergibt, weil ich dieses Feld ändern möchte. Die Spalte wird über ein Dropdown-Menü ausgewählt, es ist also sichergestellt dass es diese auch gibt. Ich durchsuche dann die Datenbank nach dem Vornamen und anschließend nach dem Wert der Spalte (Muss ich das überhaupt in zwei getrennten Abfragen machen? Ich bekomme aber den Wert der Spalte ja erst durch die erste Abfrage).
Für die Update-Anweisung brauche ich doch den Namen der Spalte sowie den (alten) Wert.
Es gibt in meiner Tabelle 2 Arten von Werten: ENUM (Ja/Nein) und Varchar. Falls die betroffene Spalte vom Typ ENUM ist, möchte ich dass ein ein Dropdown Menü mit Ja/Nein erscheint. Andernfalls soll ein Texteingabefeld erscheinen.
Die restlichen notwendigen Werte für die Update-Anweisung übergebe ich dann versteckt an update.php.
Ich weiß, dass das Ganze sehr unübersichtlich ist und ich habe sicher mehr als einen Fehler gemacht. Ich habe aber keine Ahnung, wo diese sein könnten, und habe deswegen mal den gesamten Code beigefügt.
Momentan macht dieses Script gar nichts außer die beiden übergebenen Variablen auszugeben und dahinter "Datenbankzugriff erfolgreich" zu schreiben.
Vielen Dank im Voraus!
Philipp.
ich habe ein Formular, das die Variablen "Vorname" und "Spalte" an dieses Script übergibt, weil ich dieses Feld ändern möchte. Die Spalte wird über ein Dropdown-Menü ausgewählt, es ist also sichergestellt dass es diese auch gibt. Ich durchsuche dann die Datenbank nach dem Vornamen und anschließend nach dem Wert der Spalte (Muss ich das überhaupt in zwei getrennten Abfragen machen? Ich bekomme aber den Wert der Spalte ja erst durch die erste Abfrage).
Für die Update-Anweisung brauche ich doch den Namen der Spalte sowie den (alten) Wert.
Es gibt in meiner Tabelle 2 Arten von Werten: ENUM (Ja/Nein) und Varchar. Falls die betroffene Spalte vom Typ ENUM ist, möchte ich dass ein ein Dropdown Menü mit Ja/Nein erscheint. Andernfalls soll ein Texteingabefeld erscheinen.
Die restlichen notwendigen Werte für die Update-Anweisung übergebe ich dann versteckt an update.php.
Ich weiß, dass das Ganze sehr unübersichtlich ist und ich habe sicher mehr als einen Fehler gemacht. Ich habe aber keine Ahnung, wo diese sein könnten, und habe deswegen mal den gesamten Code beigefügt.
Momentan macht dieses Script gar nichts außer die beiden übergebenen Variablen auszugeben und dahinter "Datenbankzugriff erfolgreich" zu schreiben.
Vielen Dank im Voraus!
Philipp.
Code:
<html>
<head>
<title>Änderungen auswählen</title>
</head>
<body>
<?php
$host = "localhost";
$user = "********";
$password = "*****";
$dbname = "*******";
$tabelle ="*********";
$Vorname = $HTTP_POST_VARS['Vorname'];
$Spalte = $HTTP_POST_VARS['Spalte'];
echo $Vorname;
echo $Spalte;
$dbverbindung = mysql_connect ($host, $user, $password);
$dbanfrage = "SELECT * from $tabelle WHERE Vorname = \"$Vorname\" ";
$result = mysql_db_query ($dbname, $dbanfrage, $dbverbindung);
while ($ausgabe = mysql_fetch_array ($result))
{
$WertSpalte = $ausgabe[$Spalte];
/* Wert der Spalte auslesen */
$dbanfrage2 = "SELECT * from $tabelle WHERE Vorname = \"$Vorname\" AND $Spalte = \"$WertSpalte\" ";
/* 2. Abfrage um nur das eine Feld zu bekommen. */
$result2 = mysql_db_query ($dbname, $dbanfrage2, $dbverbindung);
while ($ausgabe2 = mysql_fetch_array ($result2))
{
/* Eigenschaft des Feldes ermitteln: */
$menge = mysql_num_fields($result2);
for($x=0;$x<$menge;$x++)
{
$type = mysql_field_flags($result2,$x);
echo ("$type");
if ($type = "ENUM")
{
?>
<form action="update.php" method="Post">
<select name="NeuerWert" size="1">
<option>Ja</option>
<option>Nein</option>
</select>
<input type="hidden" name="Vorname" value="<?PHP echo ("$Vorname"); ?>">
<input type="hidden" name="Spalte" value="<?PHP echo ("$Spalte"); ?>">
<input type="hidden" name="WertSpalte" value="<?PHP echo ("$WertSpalte"); ?>">
</form>
<?PHP
} else {
?>
<form action="update.php" method="Post">
Neuer Wert: <input name="NeuerWert" type="text" size="50">
<input type="hidden" name="Vorname" value="<?PHP echo ("$Vorname"); ?>">
<input type="hidden" name="Spalte" value="<?PHP echo ("$Spalte"); ?>">
<input type="hidden" name="WertSpalte" value="<?PHP echo ("$WertSpalte"); ?>">
</form>
<?PHP
}
}
}
}
if (mysql_db_query ($dbname, $dbanfrage, $dbverbindung)) {
print ("Datenbankzugriff erfolgreich.");
} else {
print ("Es traten Probleme auf.");
}
echo mysql_error();
mysql_close ($dbverbindung);
?>
</body>
</html>
Zuletzt bearbeitet: