PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Alter Hut: Mehrfachauswahl mit MySQL INSERT


uemit1981
02.12.2005, 16:41:44
Hi,

ich habe ein PHP-Script geschrieben welches Textfelder, Dropdownmenüs und eine Mehrfachauswahl enthält.
Wenn ich nun die eingetragenen daten übergebe trägt er alles in die DB ein bis auf die Auswahl in der Mehrfachauswahl dessen Code wie folgt lautet:

<select name="asoftware[]" size="5" multiple>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
</select>
Nun sollte mit diesem Code-abschnitt in der 2. Datei:

$eintrag = "INSERT INTO workstation (ahardware) VALUES ('$asoftware')";
$eintragen = mysql_query($eintrag);

die Daten eingetragen werden. Jedoch steht in der spalte dann nur "ARRAY"
Weis da echt nicht mehr weiter. Brauch da mal eure hilfe.
Danke

vt1816
02.12.2005, 17:27:26
Hi,

ich habe ein PHP-Script geschrieben welches Textfelder, Dropdownmenüs und eine Mehrfachauswahl enthält.
Wenn ich nun die eingetragenen daten übergebe trägt er alles in die DB ein bis auf die Auswahl in der Mehrfachauswahl dessen Code wie folgt lautet:

<select name="asoftware[]" size="5" multiple>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
</select>
Nun sollte mit diesem Code-abschnitt in der 2. Datei:

$eintrag = "INSERT INTO tabelle (ahardware) VALUES ('$ahardware')";
$eintragen = mysql_query($eintrag);

die Daten eingetragen werden. Jedoch steht in der spalte dann nur "ARRAY"
Weis da echt nicht mehr weiter. Brauch da mal eure hilfe.
Dankeasoftware[] <> $ahardware - oder handelt es sich um einen Schreibfehler ???

Wie sieht die Struktur Deiner Tabelle aus?

uemit1981
02.12.2005, 17:30:52
[QUOTE=vt1816]asoftware[] <> $ahardware - oder handelt es sich um einen Schreibfehler ???QUOTE]
Schreibfehler :) Sorry!
Wurde soeben korrigiert.

Die DB ist simple aufgebaut:
DB=Inventur
====>TABELLE=Workstation
========>SPALTE=asoftware

meikel (†)
02.12.2005, 17:31:17
Jedoch steht in der spalte dann nur "ARRAY"
Lesen:
11.7. Wie kann ich aus einer Datenbanktabelle einen <select> erzeugen?
http://www.php-faq.de/q/q-formular-select.html

11.8. Wie kann man ein <select multiple> verarbeiten?
http://www.php-faq.de/q/q-formular-select-multiple.html

11.9. Wie kann man Radio-Buttons verarbeiten?
http://www.php-faq.de/q/q-formular-radio.html

11.10. Wie kann man Checkboxen verarbeiten?
http://www.php-faq.de/q/q-formular-checkbox.html

uemit1981
02.12.2005, 17:49:48
Lesen:
11.7. Wie kann ich aus einer Datenbanktabelle einen <select> erzeugen?
http://www.php-faq.de/q/q-formular-select.html

11.8. Wie kann man ein <select multiple> verarbeiten?
http://www.php-faq.de/q/q-formular-select-multiple.html

11.9. Wie kann man Radio-Buttons verarbeiten?
http://www.php-faq.de/q/q-formular-radio.html

11.10. Wie kann man Checkboxen verarbeiten?
http://www.php-faq.de/q/q-formular-checkbox.html
Der 2. Link ist ganz brauchbar, jedoch bekam ich schon gestern mit dieser Seite Probleme. Ich bekam beim "$_REQUEST['asoftware']" einen fehler den ich nicht beheben konnte.

xabbuh
02.12.2005, 18:17:25
Der 2. Link ist ganz brauchbar, jedoch bekam ich schon gestern mit dieser Seite Probleme. Ich bekam beim "$_REQUEST['asoftware']" einen fehler den ich nicht beheben konnte.
Und der Fehler machte sich wie bemerkbar?

uemit1981
02.12.2005, 18:21:46
Indem er mir diese Zeile auspuckte:
Parse error: parse error, unexpected T_VARIABLE in C:\xampp\htdocs\inventur\bin\reg.php on line 56

meikel (†)
02.12.2005, 19:01:32
Indem er mir diese Zeile auspuckte:
Parse error: parse error, unexpected T_VARIABLE in C:\xampp\htdocs\inventur\bin\reg.php on line 56
Aha. Besteht die Chance, daß Du den Quelltext dieser Zeile noch nachlieferst?

uemit1981
02.12.2005, 22:26:42
na sischa...
<?php
// Connection zur Datenbank
$link = mysql_connect("localhost", "root", "")
or die("Keine Verbindung möglich: " . mysql_error());
echo "Verbindung zum Datenbankserver erfolgreich";
mysql_select_db("inventur") or die ("Auswahl der Datenbank fehlgeschlagen");
echo "<br>";

$_REQUEST['asoftware']

// Eintragung der Daten ind die Datenbank
$eintrag = "INSERT INTO rechner (hostname, ip, seriennummer, marke, bezeichnung, standort, abteilung, arbeitsplatz, datum, mitarbeiter, betriebssystem, office, antivirus, asoftware, cpu, ram, hdd, fdd, cddvd, netzwerkkarte, grafikkarte, monityp, monizoll, moniname, drucker, ahardware) VALUES ('$hostname', '$ip', '$seriennummer', '$marke', '$bezeichnung', '$standort', '$abteilung', '$arbeitsplatz', '$datum', '$mitarbeiter', '$betriebssystem', '$office', '$antivirus', '$asoftware', '$cpu', '$ram', '$hdd', '$fdd', '$cddvd', '$netzwerkkarte', '$grafikkarte', '$monityp', '$monizoll', '$moniname', '$drucker', '$ahardware')";
$eintragen = mysql_query($eintrag);
if($eintrag)
echo "<strong>$hostname</strong> erfolgreich eingetragen";
else
echo "Fehler aufgetreten!";
?>
So sieht die reg.php aus, die meine eingegebenen Daten in die DB eintragen soll.

meikel (†)
02.12.2005, 22:30:37
na sischa...
So sieht die reg.php aus, die meine eingegebenen Daten in die DB eintragen
Eigentlich wollte ich das sehen (aus Deiner Fehlermeldung): "... on line 56" +/- 10 Zeilen.

uemit1981
02.12.2005, 22:47:40
Höhö...du hast mich ein wenig verunsichert.
Die Zeile 56 ist die in der mein INSERT INTO Befehl steht. Denke mal, dass er mit der gesamten Aktion ein Problem hat.
Kann ich das denn überhaupt so gestallten wie da oben in meinem vorletzten posting?
Muss ich da noch was mit dem
$_REQUEST['asoftware']
machen? Das steht ja dann 2 mal dort drin. Einmal im $_REQUEST und einmal im INSERT INTO.

Gruß

xabbuh
02.12.2005, 23:30:43
<?php
echo "<br>";

$_REQUEST['asoftware']

// Eintragung der Daten ind die Datenbank
?>

Wofür steht das $_REQUEST['asoftware'] denn da so verloren im Quelltext?

uemit1981
03.12.2005, 00:28:02
:)
Soll aus dem vorformular die Mehrfachauswahl auslesen und dabei behilflich sein dies in die DB zu speichern.

vt1816
03.12.2005, 11:09:46
na sischa...
<?php
...
$_REQUEST['asoftware']

...?>Bringt Dir nichts!


na sischa...
<?php
...
// Eintragung der Daten ind die Datenbank
$eintrag = "INSERT INTO rechner (hostname, ip, seriennummer, marke,
bezeichnung, standort, abteilung, arbeitsplatz, datum, mitarbeiter,
betriebssystem, office, antivirus, asoftware, cpu, ram, hdd, fdd, cddvd,
netzwerkkarte, grafikkarte, monityp, monizoll, moniname, drucker, ahardware)
VALUES ('$hostname', '$ip', '$seriennummer', '$marke', '$bezeichnung', '$standort', '$abteilung',
'$arbeitsplatz', '$datum', '$mitarbeiter', '$betriebssystem', '$office', '$antivirus',
'$asoftware', '$cpu', '$ram', '$hdd', '$fdd', '$cddvd', '$netzwerkkarte', '$grafikkarte',
'$monityp', '$monizoll', '$moniname', '$drucker', '$ahardware')";
...?>Woher kommen $hostname, $ip, $seriennummer, ... ? Wie übergibst Du die Werte aus dem Vorformular (GET oder POST)?


na sischa...
<?php
...
// Eintragung der Daten ind die Datenbank
$eintrag = "...";
$eintragen = mysql_query($eintrag);
if($eintrag)
echo "<strong>$hostname</strong> erfolgreich eingetragen";
else
echo "Fehler aufgetreten!";
?>
Hier wird Dir immer "erfolgreich" angezeigt, sollte sicherlich
if($eintragen)heißen.

uemit1981
03.12.2005, 14:50:35
Hi,
$hostname, $ip, $seriennummer, ... werden über das Vorfrmular per POST weitergegeben.
Zum $eintrag hast du recht. Sollte $eintragen heißen.
Gibt es nun eine möglichkeit die Mehrfachauswahl zu separieren um sie dann in die DB zu schreiben?

meikel (†)
03.12.2005, 15:01:25
Hi,
$hostname, $ip, $seriennummer, ... werden über das Vorfrmular per POST weitergegeben.
Dann heißen Deine Freunde $_POST['hostname'], $_POST['ip'], $_POST['seriennummer'], ...
Gibt es nun eine möglichkeit die Mehrfachauswahl zu separieren um sie dann in die DB zu schreiben?
Ja klar. Wie mit <select> umgegangen wird, steht in der FAQ. Und aus dem Ergebnis bastelst Du Deinen SQL String zusammen. Beachte dabei, daß in dem $_POST Index für das <select> Element nur die Werte enthalten sind, die markiert wurden.

uemit1981
03.12.2005, 16:20:33
ok, danke. Werde das mal später austesten.

Gruß