Variablen trennen array?

Hallo,

ich würde gerne folgendes abwickeln.

In einer Dropdownliste soll man aus einer Vielzahl von Einträgen einen oder mehrere auswählen (das ist nicht das Problem) und diese Werte dann in einer Variablen gespeichert werden, damit diese dann in eine mySQL-DB abgelegt werden kann,

da steht dann z.B. (also in der Datenbank:

id | auswahl

1 | 3,4,7
2 | 2
3 | 5,9,10,12

Die Frage ist jetzt die folgende:
Wie rufe ich diese Daten ab, um nach der Abfrage

$db->query(„select * from tabelle order by id“);
while ($db->next_record()) {
$id=$db->f(„id“);
$auswahl=$db->f(„auswahl“);
};

nun die Werte der Variable $auswahl auseinander zu kriegen?

Also so eine Ausgabe:

Benutzer 1 hat die Nr. 3, die Nr. 4, Nr. 7
Benutzer 2 hat die Nr. 2
Benutzer 3 hat die Nr. 5, die Nr. 9, Nr. 10, die Nr. 12

Da hinter jeder Nummer weitere Daten stecken, muss ich die Daten auch einzeln auseinander kriegen, nur wie geht das am sinnvollsten?

Ist es aber vielleicht auch notwendig, die Daten anders IN die Datenbank zu speichern um sie besser auslesen zu können??

Vielen Dank für Eure Hilfen.

Gruß,
Sascha

Hallo,

Hi,
mach es doch mit der split-Fuktion http://www.phpcenter.de/de-html-manual/function.spli…
Dann hast du die Daten in einem Array und kannst bequem damit umgehen.
Allerdings würde ich einfach was an der Datenbankstruktur ändern.
Statt:
1 | 3,4,7
2 | 2
3 | 5,9,10,12

würde ich es so machen:
1 | 3
1 | 4
1 | 7
2 | 2
3 | 5
3 | 9
3 | 10
3 | 12

Gruß.Timo

Hallo.

Ich hoffe, ich habe dein Problem richtig verstanden. Also. Angenommen, die Variable „auswahl“ hat den folgenden Inhalt: „3,4,7“. Dann kannst du die einzelnen Ziffern anhand eines Trennzeichens (in dem Fall das Komma) mit Hilfe von „explode“ trennen. Daraus wird dann ein Array mit den einzelnen Ziffern.

Der genaue Befehl dafür ist
$Ein_Array = explode(",",$auswahl);

Anschließend enthält $Ein_Array[0] = 3, $Ein_Array[1] = 4, $Ein_Array[2] = 7. Damit kannst du dann weiterarbeiten.

Grüße,
Jack

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo Jack,

ja, das ist eigentlich schon die Lösung für mein Problem.
Demnach könnte ich also mit Explode-Befehl auch die Variablen auseinandernehmen, die z.B. mit einem „|“ getrennt wären… das ist gut.

Gibt es da eigentlich auch das Gegenstück - vielleicht „implode“ ? :smile:

Danke und Gruß

Sascha

Hallo.

Ich hoffe, ich habe dein Problem richtig verstanden. Also.
Angenommen, die Variable „auswahl“ hat den folgenden Inhalt:
„3,4,7“. Dann kannst du die einzelnen Ziffern anhand eines
Trennzeichens (in dem Fall das Komma) mit Hilfe von „explode“
trennen. Daraus wird dann ein Array mit den einzelnen Ziffern.

Der genaue Befehl dafür ist
$Ein_Array = explode(",",$auswahl);

Anschließend enthält $Ein_Array[0] = 3, $Ein_Array[1] = 4,
$Ein_Array[2] = 7. Damit kannst du dann weiterarbeiten.

Grüße,
Jack

Hallo noch mal.

Es gibt tatsächlich implode als Gegenstück. :smile:
Mit implode setzt du Array-Elemente wieder zu einem String zusammen.

$String = implode("|",$Array); -> „1|2|3|4|…“

Grüße,
Jack

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]