Daten einer SQL Tabellen Zelle in ein array einlesen.

oconner

oconner

Aktives Mitglied
Thread Starter
Dabei seit
11.01.2006
Beiträge
281
Reaktionspunkte
0
Hallo,

nach dem Titel wird wohl jeder gleich mysql_fetch_assoc sagen, aber das meine ich nicht.

Ich möchte mehrere Zahlen in eine Einzelne Zelle speichern (nicht in Zeilen/Spalten). Diese Zahlen sind von 1 bis 6. Ich möchte aus der Zelle diese Zahlen so in ein array einlesen das ich auf jeden Zahl zugreifen kann. Nur wie mache ich das am besten?

Mir ist klar wie ich die spalte immer update etc.
Aber wie kann ich beim auslesen mit php sagen das er die Zahlen in ein array einliest.

Bin mal gespannt was ihr da für Ideen habt.

Auf jeden Fall schonmal danke. :)
 
Noch mal zum Verständnis:

Die Tabellen hat Spalten in denen z.B. "1 4 5 6" steht? Also mehrere Zahlen in einer Spalte? Wie sind die separiert?
 
ist eine "Longtext" spalte. In der in eine z.b. 1 2 3 4 5 stehen wird (aber nur in einer Zelle).
 
dann musst du halt das mysql result parsen und dann in einem array speichern...
 
ah explode kenne ich.

Hab ich gar nicht dran gedacht

danke! ;)
 
ach da wäre nun noch die Frage ob ich mit php herausfinden kann wie viel Werte ein array hat, also ob 2 oder 5.

Kann man das mit count() machen oder anders?
 
ja es geht mit count.

hab mir die frage schnellstens selbst beantwortet (php.net ist wohl dich die beste hilfe).

Danke nochmals.
 
Kleiner Tipp:

Wenn es nicht die Zahlen 1,2,3,4,... sein müssen, kannst Du auch einfach einen INT speichern/lesen und auf gesetzte Bits prüfen. Das geht dann nat. nur mit den Binärstellen 1,2,4,8,16,32,64,...

Jedenfalls brauchst Du dann nur eine Zahl aus der Tabelle lesen
Code:
// $zahl sei == 37:
// 37= 1*1+0*2+1*4+0*8+0*16+1*32
// = 1+4+32, diese 3 Bits sind für 37 gesetzt:
if ($zahl & 32)==32 // ist das Bit für 32 gesetzt?
{
 ...
}

So hat man Bool-Flags programmiert, als ein Byte dafür noch zu teuer war. Um mehrere Flags die immer zusammengehören möglichst sparend zu speichern/lesen ist das immer noch ein probates Mittel
 
oconner schrieb:
Hallo,

nach dem Titel wird wohl jeder gleich mysql_fetch_assoc sagen, aber das meine ich nicht.

Ich möchte mehrere Zahlen in eine Einzelne Zelle speichern (nicht in Zeilen/Spalten). Diese Zahlen sind von 1 bis 6. Ich möchte aus der Zelle diese Zahlen so in ein array einlesen das ich auf jeden Zahl zugreifen kann. Nur wie mache ich das am besten?

Mir ist klar wie ich die spalte immer update etc.
Aber wie kann ich beim auslesen mit php sagen das er die Zahlen in ein array einliest.

Bin mal gespannt was ihr da für Ideen habt.

Auf jeden Fall schonmal danke. :)

mich würd mal interessieren, was es für ein sinn hat, die zahlen in einer spalte zu speichern und dann in ein array zu speichern (warum nicht gleich von anfang an trennen?) - außerdem hast du doch die daten beim absetzen des query's sowieso in einem array! kannst du mal beschreiben wofür du das brauchst und warum du das gerade so machen musst?

lg, nick
 
hi,

hab grad gelesen das hier noch mehr geschrieben wurde.
ALso ich brauche das für meine Community, da ich da bei Foren Beiträge ein Vote System gebaut habe, nun wird in der Datenbank in der zeile wo das Foren Thema ist in einer Zelle die User id's gespeicher, so das man nur einmal abstimmen kann, naja und dafür hab ich das gebraucht. ;)
 
Zurück
Oben Unten