Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: problem z odczytywaniem tablicy danych z bazy
Forum PHP.pl > Forum > PHP
dkruczek
Witam!
Ostatnio zacząłem pisać nową aplikację i już na samym początku pojawił się pewien problem. Otóż konfigurację systemu chcę przechowywać w bazie danych (konkretnie tabela "configuration"). Zawiera ona trzy wartości: config_id, config_name oraz config_values. W config_values konfiguracaja jest przechowywana w formacie tablicy z danymi php - czyli:

  1. <?php
  2.  'name' => 'value',
  3.  'name2' => 'value2'
  4. )
  5. ?>


Zapisywanie tych danych wygląda następująco:

  1. <?php
  2. $this->_prefs[$row['config_name'] = $row['config_values'];
  3. ?>


I tu pojawia się problem ponieważ zawartość 'config_values' jest traktowana jako zwykły tekst, a nie jako tablica, przez co nie mogę się odwołać np. $this->_prefs['metatags']['name'] a po wyświetleniu wartości $this->_prefs['metatags'] ukazuje się cały kod tablicy jako tekst.

Czy ktoś jest w stanie pomóć rozwiązać ten problem?
siemakuba
Zapisuj do bazy tablicę zserializowaną i odserializowuj ją przy odczycie.

  1. <?php
  2. $dane = serialize($dane);
  3. $sql = 'INSERT INTO tabela (config_values) VALUES ("'.mysql_real_escape_string($dane).'");
  4. ?>


serialize" title="Zobacz w manualu php" target="_manual, unserialize" title="Zobacz w manualu php" target="_manual

pozdr.
Cysiaczek
Wyciągając tak "tablicę" z bazy nie otrzymasz tablicy w rozumieniu programistycznym.
Zainteresuj się funkcjami
serialize - przy zapisie do bazy
unserialize - przy wyciąganiu danych z bazy

Powinny rozwiązać Twój problem.

Pozdrawiam.
dkruczek
EDIT: Wszystko już działa. Dzięki za szybką i rzeczową pomoc winksmiley.jpg
nospor
nie zebym sie czepial, ale masz tak:
conf_values
a dobierasz sie do:
config_values
jak dla mnie jest tu pewna subtelna roznica miedzy tymi dwoma indexami
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.