burmy
Goto Top

Daten aus ausgewaehlter Select Box ind die DB schreiben lassen

Eintrag aus Select Box wählen, und dann in DB schreiben lassen

Hallo

ich habe das ein kleines Problem, was ich nicht in den Griff bekomme,

Also ich habe einFormular mit einer Select Box erstellt die mir den Inhalt aus der MySQL DB in die Select Box füllt, das klappt auch soweit.

<?php
$sql = ("select NAME from tabelle");
$query = mysql_query($sql);
?>
<center>
<?php echo "INHALT: "?>
<select name="select">
<?php
while($liste = mysql_fetch_array($query)) {
?>
<option value="<?= $liste["NAME"] ?>"><?= $liste["NAME"] ?></option>
<?php
}
?>
</select></center>



Das unten ist die Übergabe der Daten aus den Formularfeldern:


$mysql_query = "INSERT INTO t_index (ID, NAME, ANSCHAFFUNG, SERIENNUMMER, INVENTARNUMMER, HOSTID, BESCHREIBUNG, BEMERKUNG)
VALUES ('','$NAME_db','$ANSCHAFFUNG_db','$SERIENNUMMER_db','$INVENTARNUMMER_db','$HOSTID_db','$BESCHREIBUNG_db','$BEMERKUNG_db')";
echo "$mysql_query<br />";
$rs = mysql_query($mysql_query) or die ("keine gültige DB Abfrage (INSERT)");

Nun möchte ich meine Formularfelder mit Daten füllen wo sich auch mehrere Select Boxen(Auswahlfelder) befinden.
Ich wähle einen Eintrag aus der Select Box und möchte das gesamte Formular mit allen Inhalten der Formularfelder und der gewählten Select Boxen in die DB schreiben, das eintragen der Formularfelder funktioniert, nur nicht der Select Boxen !!!

Mir kommt es jetzt nur darauf an wie ich die Übertragung der Inhalte der Select Boxen in die DB bekomme ??? quasi den gewählten Inhalt dann mit übergeben (submit) in die DB.

ich hoffe ich habe das nicht zu kompliziert formuliert.

Würde mich wahnsinnig über Hilfe freuen face-smile

Gruß Martin

Content-Key: 43205

Url: https://administrator.de/contentid/43205

Ausgedruckt am: 29.03.2024 um 14:03 Uhr

Mitglied: Nippie
Nippie 03.11.2006 um 20:49:39 Uhr
Goto Top
Moin,
Ich habe erst gestern ein Registrierungsformular geschrieben, also lass dich von den Begriffen im Quellcode net ablenkenface-wink

Also:

Die Datei mit dem Formular
<?
include("db_connect.php")  
?>

<html>
<head>
<title>Unbenanntes Dokument</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">  
</head>

<body>
<form action="create_user.php" method="post">  
<p>
<input type="text" size="17" name="user">   
Name
</p>
<p>
<input type="text" size="17" name="password">   
gew&uuml;nschtes Passwort
</p>
<p>
<input type="text" size="17" name="mail">   
E-Mail</p>
<p>
<input type="submit" value="OK"></center>  
</p>
</form>

</body>
</html>

Die Datei db_connect.php verbindet dich mit der Datenbank.
und hier ist sie:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">  
<title>Unbenanntes Dokument</title>
</head>

<body>
<?
mysql_connect("host","Benutzer","PW");   
mysql_select_db("Datebase");   
?>

<?
$abfrage = "SELECT * FROM TABELLE";  
$ergebnis = mysql_query($abfrage);
while($row = mysql_fetch_object($ergebnis))
{
echo $row->title;
}
?>

</body>
</html>
So....Und nun das Wichtigste ....Der "Insert Into" teil. Wie du sicher schon gesehen hast steht im Formular bei "action" "create_user.php".... Das ist diese hier.
<html>
<body>
<?php
mysql_connect('host','User','PW') or die(mysql_error());  
     mysql_select_db('Datebase') or die(mysql_error());  
	 
$user = $HTTP_POST_VARS["user"];  
$password = $HTTP_POST_VARS["password"];  
$mail = $HTTP_POST_VARS["mail"];  


$eintrag = "INSERT INTO TABELLE (UserName, UserPass, UserMail)   
VALUES ('$user', '$password',  
'$mail')";  
?>
<?php
$eintragen = mysql_query($eintrag);
?>


<p class="Stil1">eintrag erfolgreich </p>  
</body>
</html>

So... Das ist schon alles. Nur noch deine Daten rein und fertig...face-smile

Mfg Nippie
Mitglied: burmy
burmy 06.11.2006 um 09:55:48 Uhr
Goto Top
Hallo, leider funktioniert es noch nicht, die Inhalte der Select Boxen werden als Wert "0" an die DB geschickt, als ob ein Modul nicht geladen wäre oder als ob ein Modul fehlt was die HTTP_POST_VARS verarbeiten kann, oder ?


Hier ist die Echo Ausgabe meiner Insert Anweisung für die DB:

INSERT INTO t_index (ID, NAME,TYP_ID, BETRIEBSSYSTEM_ID, STANDORT_ID, ANSCHAFFUNG, LIEFERANT_ID, STATUS_ID, SERIENNUMMER,
INVENTARNUMMER, INTERN_ID, HOSTID, POWERINPUT_ID, CPU_ID, CPUFREQUENZ_ID, RAM_ID, HDD_ID, HDDM_ID, NETSPEED_ID, IP_ID, SUBNET_ID, BESCHREIBUNG, BEMERKUNG) VALUES ('','test','','','', '2001-1-1','','','1111', '1111','','2222','', '','','','','', '','','','ohne','ohne');


Es werden nur die Werte der normalen Eingabefelder aus dem Formular an die DB übertragen !!! Komisch


include('../Connections/T_index.php');


Hier ist der Code für die T_index.php:


FileName="Connection_php_mysql.htm"
  1. Type="MYSQL"
  2. HTTP="true"
$hostname_T_index = "localhost";
$database_T_index = "hardwaredb";
$username_T_index = "xxxxx";
$password_T_index = "xxxxx";
#$T_index = mysql_pconnect($hostname_T_index, $username_T_index, $password_T_index) or trigger_error(mysql_error(),E_USER_ERROR);
$T_index = mysql_connect($hostname_T_index,$username_T_index,$password_T_index) or die ("keine DB verbindung");
mysql_select_db($database_T_index, $T_index) or die ("DB nicht erreichbar");


Hier ist nochmals der Code für die INSERT Anweisung


$ID_db = $HTTP_POST_VARS['ID'];
$NAME_db = $_POST['NAME'];
$TYP_ID_db = $HTTP_POST_VARS["TYP_ID"];
$BETRIEBSSYSTEM_ID_db = $HTTP_POST_VARS["BETRIEBSSYSTEM_ID"];
$STANDORT_ID_db = $HTTP_POST_VARS["STANDORT_ID"];
$ANSCHAFFUNG_db = $_POST['ANSCHAFFUNG'];
$LIEFERANT_ID_db = $HTTP_POST_VARS["LIEFERANT_ID"];
$STATUS_ID_db = $HTTP_POST_VARS["STATUS_ID"];
$SERIENNUMMER_db = $_POST['SERIENNUMMER'];
$INVENTARNUMMER_db = $_POST['INVENTARNUMMER'];
$INTERN_ID_db = $HTTP_POST_VARS["INTERN_ID"];
$HOSTID_db = $_POST['HOSTID'];
$POWERINPUT_ID_db = $HTTP_POST_VARS["POWERINPUT_ID"];
$CPU_ID_db = $HTTP_POST_VARS["CPU_ID"];
$CPUFREQUENZ_ID_db = $HTTP_POST_VARS["CPUFREQUENZ_ID"];
$RAM_ID_db = $HTTP_POST_VARS["RAM_ID"];
$HDD_ID_db = $HTTP_POST_VARS["HDD_ID"];
$HDDM_ID_db = $HTTP_POST_VARS["HDDM_ID"];
$NETSPEED_ID_db = $HTTP_POST_VARS["NETSPEED_ID"];
$IP_ID_db = $HTTP_POST_VARS["IP_ID"];
$SUBNET_ID_db = $HTTP_POST_VARS["SUBNET_ID"];
$BESCHREIBUNG_db = $_POST['BESCHREIBUNG'];
$BEMERKUNG_db = $_POST['BEMERKUNG'];

Das sind die Variablen für meine Felder und Select Boxen

Und hier ist der Code für die INSERT ANWEISUNG:

$mysql_query = "INSERT INTO t_index (ID, NAME,TYP_ID, BETRIEBSSYSTEM_ID, STANDORT_ID, ANSCHAFFUNG,
LIEFERANT_ID, STATUS_ID, SERIENNUMMER, INVENTARNUMMER, INTERN_ID,
HOSTID, POWERINPUT_ID, CPU_ID, CPUFREQUENZ_ID, RAM_ID, HDD_ID,
HDDM_ID, NETSPEED_ID, IP_ID, SUBNET_ID, BESCHREIBUNG, BEMERKUNG)
VALUES ('','$NAME_db','$TYP_ID_db','$BETRIEBSSYSTEM_ID_db','$STANDORT_ID_db',
'$ANSCHAFFUNG_db','$LIEFERANT_ID_db','$STATUS_ID_db','$SERIENNUMMER_db',
'$INVENTARNUMMER_db','$INTERN_ID_db','$HOSTID_db','$POWERINPUT_ID_db',
'$CPU_ID_db','$CPUFREQUENZ_ID_db','$RAM_ID_db','$HDD_ID_db','$HDDM_ID_db',
'$NETSPEED_ID_db','$IP_ID_db','$SUBNET_ID_db','$BESCHREIBUNG_db','$BEMERKUNG_db')";
echo "$mysql_query<br />";
$rs = mysql_query($mysql_query) or die ("keine gültige DB Abfrage (INSERT)");


Leider funktioniert das immer noch nicht, was kann denn noch falsch sein ?
Ich habe die Eingabefelder mit $_POST versehen und die Select Boxen mit $HTTP_POST_VARS.

Vielleicht wird es jetzt ersichtlicher durch den Quelltext.

Danke
Mitglied: burmy
burmy 06.11.2006 um 10:13:29 Uhr
Goto Top
Hallo, leider funktioniert es noch nicht, die Inhalte der Select Boxen werden als Wert "0" an die DB geschickt, als ob ein Modul nicht geladen wäre oder als ob ein Modul fehlt was die HTTP_POST_VARS verarbeiten kann, oder ?

Hier ist die Echo Ausgabe meiner Insert Anweisung für die DB:

INSERT INTO t_index (ID, NAME,TYP_ID, BETRIEBSSYSTEM_ID, STANDORT_ID, ANSCHAFFUNG, LIEFERANT_ID, STATUS_ID, SERIENNUMMER,
INVENTARNUMMER, INTERN_ID, HOSTID, POWERINPUT_ID, CPU_ID, CPUFREQUENZ_ID, RAM_ID, HDD_ID, HDDM_ID, NETSPEED_ID, IP_ID, SUBNET_ID, BESCHREIBUNG, BEMERKUNG) VALUES (,'test',,,, '2001-1-1',,,'1111', '1111',,'2222',, ,,,,, ,,,'ohne','ohne');

Es werden nur die Werte der normalen Eingabefelder aus dem Formular an die DB übertragen !!! Komisch

include('../Connections/T_index.php');

Hier ist der Code für die T_index.php:

FileName="Connection_php_mysql.htm"

Type="MYSQL"
HTTP="true"
$hostname_T_index = "localhost";
$database_T_index = "hardwaredb";
$username_T_index = "xxxxx";
$password_T_index = "xxxxx";
#$T_index = mysql_pconnect($hostname_T_index, $username_T_index, $password_T_index) or trigger_error(mysql_error(),E_USER_ERROR);
$T_index = mysql_connect($hostname_T_index,$username_T_index,$password_T_index) or die ("keine DB verbindung");
mysql_select_db($database_T_index, $T_index) or die ("DB nicht erreichbar");

Hier ist nochmals der Code für die INSERT Anweisung

$ID_db = $HTTP_POST_VARS['ID'];
$NAME_db = $_POST['NAME'];
$TYP_ID_db = $HTTP_POST_VARS["TYP_ID"];
$BETRIEBSSYSTEM_ID_db = $HTTP_POST_VARS["BETRIEBSSYSTEM_ID"];
$STANDORT_ID_db = $HTTP_POST_VARS["STANDORT_ID"];
$ANSCHAFFUNG_db = $_POST['ANSCHAFFUNG'];
$LIEFERANT_ID_db = $HTTP_POST_VARS["LIEFERANT_ID"];
$STATUS_ID_db = $HTTP_POST_VARS["STATUS_ID"];
$SERIENNUMMER_db = $_POST['SERIENNUMMER'];
$INVENTARNUMMER_db = $_POST['INVENTARNUMMER'];
$INTERN_ID_db = $HTTP_POST_VARS["INTERN_ID"];
$HOSTID_db = $_POST['HOSTID'];
$POWERINPUT_ID_db = $HTTP_POST_VARS["POWERINPUT_ID"];
$CPU_ID_db = $HTTP_POST_VARS["CPU_ID"];
$CPUFREQUENZ_ID_db = $HTTP_POST_VARS["CPUFREQUENZ_ID"];
$RAM_ID_db = $HTTP_POST_VARS["RAM_ID"];
$HDD_ID_db = $HTTP_POST_VARS["HDD_ID"];
$HDDM_ID_db = $HTTP_POST_VARS["HDDM_ID"];
$NETSPEED_ID_db = $HTTP_POST_VARS["NETSPEED_ID"];
$IP_ID_db = $HTTP_POST_VARS["IP_ID"];
$SUBNET_ID_db = $HTTP_POST_VARS["SUBNET_ID"];
$BESCHREIBUNG_db = $_POST['BESCHREIBUNG'];
$BEMERKUNG_db = $_POST['BEMERKUNG'];

Das sind die Variablen für meine Felder und Select Boxen

Und hier ist der Code für die INSERT ANWEISUNG:

$mysql_query = "INSERT INTO t_index (ID, NAME,TYP_ID, BETRIEBSSYSTEM_ID, STANDORT_ID, ANSCHAFFUNG,
LIEFERANT_ID, STATUS_ID, SERIENNUMMER, INVENTARNUMMER, INTERN_ID,
HOSTID, POWERINPUT_ID, CPU_ID, CPUFREQUENZ_ID, RAM_ID, HDD_ID,
HDDM_ID, NETSPEED_ID, IP_ID, SUBNET_ID, BESCHREIBUNG, BEMERKUNG)
VALUES ('','$NAME_db','$TYP_ID_db','$BETRIEBSSYSTEM_ID_db','$STANDORT_ID_db',
'$ANSCHAFFUNG_db','$LIEFERANT_ID_db','$STATUS_ID_db','$SERIENNUMMER_db',
'$INVENTARNUMMER_db','$INTERN_ID_db','$HOSTID_db','$POWERINPUT_ID_db',
'$CPU_ID_db','$CPUFREQUENZ_ID_db','$RAM_ID_db','$HDD_ID_db','$HDDM_ID_db',
'$NETSPEED_ID_db','$IP_ID_db','$SUBNET_ID_db','$BESCHREIBUNG_db','$BEMERKUNG_db')";
echo "$mysql_query<br />";
$rs = mysql_query($mysql_query) or die ("keine gültige DB Abfrage (INSERT)");

Leider funktioniert das immer noch nicht, was kann denn noch falsch sein ?
Ich habe die Eingabefelder mit $_POST versehen und die Select Boxen mit $HTTP_POST_VARS.

Vielleicht wird es jetzt ersichtlicher durch den Quelltext.

Danke
Mitglied: burmy
burmy 06.11.2006 um 11:20:54 Uhr
Goto Top
Habe den Fehler gefunden,

ich habe die Select Anweisungen der Select Boxen in extra Funktionen geschrieben, und dort nicht die Namen der Select Felder genau vergeben und sowmit konnten die Felder nicht gefunden werden bei dem Eintrag in die DB, es wurde der Wert 0 übergeben.

 <select name="Typ_ID">   


Danke trotzdem für die Hilfe

Martin