DB werte in x viele Werte zerteilen

Hallo,

Ich hab da ein Problem und zwar frage ich ein Datenfeld aus einer Datenbank ab.
In diesem Datenfeld sind mehrere Werte abgespeichert die durch ein ; getrennt werden.
Mein Problem ist bis jetzt, dass ich nicht eine feste Anzahl an Werten habe sondern das x viele sein können.

Wie kann ich nun den Wert des Datenfeldes immer beim ; trennen? Und die einzelnen getrennten Werte zb so ausgeben (mit einer while schleife oder so):

[code]

$ausgabe[x]
[/code]

Danke schon mal für ne Antwort

Julian

[quote=“technikfreak”]Ich hab da ein Problem und zwar frage ich ein Datenfeld aus einer Datenbank ab.
In diesem Datenfeld sind mehrere Werte abgespeichert die durch ein ; getrennt werden.[/quote]
Das klingt nach mangelhaftem Datendesign.

Beschaeftige dich mit dem Stichwort Normalisierung.

explode()

Die Normalform ist in diesem Fall egal und dass ich die Werte mit explode() trennen kann ist mir auch klar - aber ich hab in diesem Feld keine bestimmte Anzahl von Werten. Dh mit

$choose ="$row->profchoose"; $zerlegen = explode (";",$choose); $ab1 = "$zerlegen[0]";
komm ich nicht weit. Weil es sollen alle geteilten Stückchen ausgegeben werden.

Ja dann mach’s halt in einer Schleife.

Und gewoehne dir den Bloedsinn ab, um einfache Variablen immer Anfuehrungszeichen zu setzen.

$var = explode(';', $var);

echo "<div id='paraKey'  class='content'>";

foreach($var as $value)
   echo "<p>$value</p>";
</div>

echo "</div>";

so in etwa?

ja genau so
thx

aber könnte ich auch noch iwie machen, dass die ersten 10 so ausgegeben werden und der rest anders?

foreach($var as $key => $value) { if($key <= 10) { echo "normal: ".$value; } else { echo "anders: ".$value; } }

so in etwa, zb…

Das sind im uebrigen m.E. alles Sachen, auf die man auch mal selber kommen koennte - wenn man mal kurz ein bisschen nachdenkt, bevor man in ein Forum rennt …

[quote=“chrisb”][quote=“technikfreak”]Ich hab da ein Problem und zwar frage ich ein Datenfeld aus einer Datenbank ab.
In diesem Datenfeld sind mehrere Werte abgespeichert die durch ein ; getrennt werden.[/quote]
Das klingt nach mangelhaftem Datendesign.

Beschaeftige dich mit dem Stichwort Normalisierung.

explode()[/quote]
Es gibt durchaus Systeme, bei denen es notwendig ist, in ein Feld mehrere Werte zu schreiben. Damit aber trotzdem alle Zeichen verwendet werden können (hier würde zum Beispiel ein Text, der ein ; beinhaltet geteilt, obwohl er das nicht werden sollte) verwende ich serialize() und unserialize(). So bleibt außerdem auch zum Beispiel die Datenstruktur von Arrays erhalten, wodurch man sich einige explode Anweisungen sparen kann.

In Sonderfaellen vielleicht, ja.

Dass ein solcher bei einem Anfaenger vorliegt, bezweifle ich aber.

Sowas wie

klingt nach einer Stelle, wo mehrere Auswahlmoeglichkeiten (Professoren, Professionen?) bestehen, aus denen der Nutzer beliebig viele auswaehlen kann.
Das ist selbstverstaendlich zunaechst mal ein Fall fuer Normalisierung; ausser, es sprechen wirklich sehr gute Gruende fuer eine Ausnahme an dieser Stelle.

Das klingt fuer mich nicht nach gut durchdachtem, bewusstem Abweichen davon - sondern schlicht nach “ist mir zu kompliziert”.

Naja, für ein Choose, würde ich ein Bit-Array in Postgres verwenden…und das ist auch schon ziemlich übertrieben :ps: