mediengestalter.info
FAQ :: Mitgliederliste :: MGi Team

Willkommen auf dem Portal für Mediengestalter

Aktuelles Datum und Uhrzeit: Do 25.04.2024 23:19 Benutzername: Passwort: Auto-Login

Thema: [mysql/php] array speichern vom 18.09.2007


Neues Thema eröffnen   Neue Antwort erstellen MGi Foren-Übersicht -> Programmierung -> [mysql/php] array speichern
Autor Nachricht
Raumwurm
Threadersteller

Dabei seit: 21.12.2004
Ort: -
Alter: -
Geschlecht: Männlich
Verfasst Di 18.09.2007 11:58
Titel

[mysql/php] array speichern

Antworten mit Zitat Zum Seitenanfang

Hallo miteinander,
angenommen ich will ein Array in eine Datenbankfeld
(mySql) speichern und diesen Wert später mit LIKE
'%blub%' wiederfinden können.

Eine Möglichkeit wäre es das Array in einen komma-
sparierten String (implode/explode) abzuspeichern.
Blöd in dem Fall ist nur, dass das LIKE '%blub%' dann
auch Teilmengen findet.

Andere Möglichkeit wäre es noch, das Array serialized
reinzutun. Das scheint noch die beste Variante zu sein.

Woanders las ich aber gerade, das es grundsätzlich nicht
zweckmäßig wäre Arrays überhaupt in ein Feld zu
speichern, von wegen Normalisierung -> nicht das ich
das verstanden hätte...

Gibts noch andere Möglichkeiten bzw. welcher Weg ist
denn nun richtig?

* Keine Ahnung... *
  View user's profile Private Nachricht senden
Pixelpole

Dabei seit: 25.10.2004
Ort: Trier
Alter: 37
Geschlecht: Männlich
Verfasst Di 18.09.2007 12:24
Titel

Antworten mit Zitat Zum Seitenanfang

grundsätzlich wäre es ganz gut zu wissen was du überhaupt vorhast...wieso du unbedingt ein array in ein feld speichern musst un die werte nicht einfach in einer anderen tabelle speicherst und über den primärschlüssel mit dem datensatz verbindest.
  View user's profile Private Nachricht senden
Anzeige
Anzeige
Account gelöscht


Ort: -
Alter: -
Verfasst Di 18.09.2007 12:32
Titel

Antworten mit Zitat Zum Seitenanfang

Mehrwertige Felder gibts in mysql nicht, da müsstest du schon ne objektrelationale datenbank benutzen, die feldtypen wie set oder array unterstützen.

du kannst das aber simulieren, indem du dein array in eine zweite relation auslagerst.
 
Raumwurm
Threadersteller

Dabei seit: 21.12.2004
Ort: -
Alter: -
Geschlecht: Männlich
Verfasst Di 18.09.2007 12:50
Titel

Antworten mit Zitat Zum Seitenanfang

Also ich habe mehrere Einträge nach diesem Schema:
Code:

tabelle eintrag
id | name      | rubrik
---+-----------+-------
1  | wunderbar | 1,20,11
2  | herrlich  | 34,101
3  | saubaer   | 5


Die Werte in ein andere Tabelle zu schreiben, hatte
ich anfangs vor, nur hatte ich dann irgendwann
einfach einen Knoten im Kopf und wollte es mir
dann einfacher machen.

...den primärschlüssel mit dem datensatz verbinden...
dann bräuchte ich quasi zwei querys, einmal die
suche in einer rubrik-tabelle und dann einen zweiten
der mir die einträge rausholt. so meinst?

...die feldtypen wie set oder array unterstützen.
also set hätte ich da zur Verfügung - nur las ich dass
dieser Typ auf 64 Einträge limitiert wäre (wenn ich
das richtig verstanden habe).

... indem du dein array in eine zweite relation auslagerst
damit ist das gemeint, wovon auch pixelpole spricht?
  View user's profile Private Nachricht senden
Account gelöscht


Ort: -
Alter: -
Verfasst Di 18.09.2007 13:09
Titel

Antworten mit Zitat Zum Seitenanfang

du machst einfach drei tabllen.

1.) rubriken, da stehen deine rubriken, mit den schlüssen 1-n

2.) die 1:n tabelle "name" => "rubrik",

da steht dann drin
Code:

personenId               rubrikId
1                           1
1                          20
1                          11
2                          34
2                         101
3                           5

sozusagen das "der index"
3.) die tabelle mit den namen der personen oder was auch immer wunderbar, herrlich, saubaer sein soll *zwinker*

1 wunderbar
2 herrlich
3 saubaer

etc.

query sieht dann in etwa so aus:

SELECT p.name, r.titel FROM personen AS p
INNER JOIN personen_rubriken AS pr ON
pr.personenId = p.id
INNER JOIN rubriken AS r ON
r.id = pr.rubrikId

wie gesagt, "in etwa" *zwinker*
 
Raumwurm
Threadersteller

Dabei seit: 21.12.2004
Ort: -
Alter: -
Geschlecht: Männlich
Verfasst Di 18.09.2007 13:33
Titel

Antworten mit Zitat Zum Seitenanfang

SELECT p.name, r.titel FROM personen AS p
INNER JOIN personen_rubriken AS pr ON
pr.personenId = p.id
INNER JOIN rubriken AS r ON
r.id = pr.rubrikId

Au weia! Ja, das könnte Sinn machen - so auf den 10ten Blick. *ha ha*

* Ich bin unwürdig * Danke
  View user's profile Private Nachricht senden
 
Ähnliche Themen Fieses PHP/MySQL-Skript gibt nur "Array Array Array..." aus
[php/mysql] daten aus DB rausholen, und in zufalls-array
strip_tags() in Array speichern
[PHP, MySQL] Fließkommazahlen speichern - how to?
Javascript in Mysql DB speichern
daten von Oracle DB in MySql speichern
Neues Thema eröffnen   Neue Antwort erstellen
MGi Foren-Übersicht -> Programmierung


Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst an Umfragen in diesem Forum nicht mitmachen.