Array in Datenbank?

Alles, was MariaDB und MySQL betrifft, kann hier besprochen werden.

Array in Datenbank?

Postby taladan » 21. February 2007 15:15

Ich habe mich an einen Problem fest gebissen.
Ich habe eine Select-Liste mit Optionen und multipler Auswahl. Leider weiß ich nicht wie ich das durch die Liste erzeugte Array in einer Datenbank abspeichern (ich glaube, das funktioniert schon) geschweige den richtig auslesen kann. Ich bekomme immer nur Array angezeigt. Hier sind es noch übersichtliche 9 Felder, später brauche ich aber das selbe mit einer variablen Feldgröße.


Code: Select all
                    <select name="wunschstellenart[]" style="width: 350px;" size="9" multiple="multiple">
                            <option value="1">Vollzeit</option>
                                 <option value="2">Teilzeit</option>
                                 <option value="3">Zeitarbeit</option>
                                 <option value="4">Freie Mitarbeit</option>
                                 <option value="5">Befristet</option>
                                 <option value="6">Mini Job</option>
                                 <option value="7">Ausbildungsplatz</option>
                            <option value="8">Praktikum</option>
                                 <option value="9">Wehr-/Zivildienst</option>
                         </select>
Häufig sitzt das Problem des Computers an immer der selben Stelle, zwischen Monitor und Rückenlehne.
taladan
 
Posts: 44
Joined: 04. February 2007 01:22

Postby Wiedmann » 21. February 2007 15:20

Ich bekomme immer nur Array angezeigt.

Wo bekommst du das angezeigt?
Wiedmann
AF Moderator
 
Posts: 17102
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Postby taladan » 21. February 2007 20:44

Hat sich erledigt. nen kumpel hat mir weiter geholfen.
Häufig sitzt das Problem des Computers an immer der selben Stelle, zwischen Monitor und Rückenlehne.
taladan
 
Posts: 44
Joined: 04. February 2007 01:22

Postby maxhb » 27. February 2007 20:39

Wiedmann wrote:
Ich bekomme immer nur Array angezeigt.

Wo bekommst du das angezeigt?

Ich rate mal:

Code: Select all
$sql = "insert into tabelle set feld = '" . $_POST['wunschstellenart'] ."'"


Typischer Fehler...

CU
maxhb
User avatar
maxhb
 
Posts: 17
Joined: 18. January 2007 15:08
Location: Bremen

?

Postby AlemannenLady » 30. March 2007 10:44

ja und was war die Lösung? Ich sitz da auch dran.. :oops:
AlemannenLady
 
Posts: 4
Joined: 06. February 2007 16:58

Re: ?

Postby maxhb » 30. March 2007 11:50

Hi!
AlemannenLady wrote:ja und was war die Lösung? Ich sitz da auch dran.. :oops:

Wenn im HTML-Formular sowas steht:
Code: Select all
<select name="wunschstellenart[]" style="width: 350px;" size="9" multiple="multiple">
...
</select>

dann erstellt PHP aus den gewählten Werten einen Array. Greift man nun auf $_POST['wunschstellenart'] zu, so erhält man nicht die einzelnen Werte, sondern das ganze Array zurück.
Dier einzelnen Werte erhält man z.B. mit
Code: Select all
foreach($_POST['wunschstellenart'] as $key => $value) {
echo "$key: $value<br>";
}

CU
maxhb
User avatar
maxhb
 
Posts: 17
Joined: 18. January 2007 15:08
Location: Bremen

ok..

Postby AlemannenLady » 30. March 2007 11:56

..ich probier gerade folgendes:

$pi = serialize($selOption);
$qry = "INSERT INTO action_old ($oldEntry) VALUES ($pi)";
$tricky->getDbh()->execute($qry);

Wobei mein Array $selOption ist, die selektierten Werte einer Selectbox. Das brauche ich widerrum für eine andere Klasse, damit ich die Daten aus der Datenbank dort verwenden kann.

Ich bekomme jedes Mal einen SQL-Insert-Befehl Fehler.

INSERT INTO action_old (oldEntry) VALUES (a:1:{i:0;a:15:{i:0;s:1:"a";i:1;s:3:"bwW";i:2;s:1:"e";i:3;s:1:"j";i:4;s:4:"mCas";i:5;s:4:"mCol";i:6;s:4:"mEDC";i:7;s:1:"s";i:8;s:3:"spM";i:9;s:3:"spW";i:10;s:2:"st";i:11;s:1:"t";i:12;s:4:"wCas";i:13;s:4:"wCol";i:14;s:4:"wEDC";}})

Gruß
AL
AlemannenLady
 
Posts: 4
Joined: 06. February 2007 16:58

Re: ok..

Postby maxhb » 30. March 2007 12:05

AlemannenLady wrote:Ich bekomme jedes Mal einen SQL-Insert-Befehl Fehler.

1. Du versuchst einen String in die Db einzufügen: Der gehört in Anführungszeichen
2. Dein serialisierter String enthält ebenfalls Anführungszeichen: Die solltest du escapen, siehe PHP-Funktion mysql_escape_string()

Ergo:
Code: Select all
$pi = serialize($selOption);
$qry = 'INSERT INTO action_old ($oldEntry) VALUES ("' . mysql_escape_string($pi) . '")';
$tricky->getDbh()->execute($qry);

CU
maxhb
User avatar
maxhb
 
Posts: 17
Joined: 18. January 2007 15:08
Location: Bremen

..

Postby AlemannenLady » 30. March 2007 13:16

dat war der Fehler! :D
AlemannenLady
 
Posts: 4
Joined: 06. February 2007 16:58


Return to MariaDB - MySQL

Who is online

Users browsing this forum: No registered users and 11 guests