Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] eval foreach
Forum PHP.pl > Forum > Przedszkole
potreb
Witam. Pobieram dane z bazy, poprzez funkcję explode rozwalam dane na zmienne:
  1. <?php
  2. foreach(explode(':::', $row['info']) as $key=>$value)
  3.                {
  4.                    $value = stripslashes($value);        
  5.                    eval("$$value ;");
  6.                    echo $Nationality.$Title;
  7.                }
  8. ?>


Moje dane w bazie są zapisane pod taką postacią:
Kod
Rank = ' ererer er ':::
Place_of_Birth = ' wwrerw ':::
Department = ' trwtrwtrtrwwtr ':::
Date_of_Birth = '  werrqewq ':::
Title = ' Mr ':::
Nationality = ' ererreewq '


Niestety funkcja eval wywala mi błąd. Nie wiem czy dane które są w bazie są źle zapisane czy da się to zrobić inaczej dla eval.
Crozin
1) Dlaczego dane trzymasz w takiej postaci? Nie możesz zrobić kolumn rank, place.., depar, title, nat i w nich trzymać normalnie wartości? Jaki błąd wywala Ci eval?
potreb
Mógłbym smile.gif trzymać w pięciu kolumnach ale nie w 200, dlatego zapisuje dane w takiej postaci.

Błąd:
Kod
[b]Parse error[/b]:  parse error, expecting `T_VARIABLE' or `'$'' in [b]C:\wamp\www\e107\e107_plugins\application_form\admin_config.php(179) : eval()'d code[/b] on line [b]2[/b]
webdevil
Musisz usunąć znaki nowej linii
Crozin
No to jeżeli masz np. 200 różnych cech to tworzysz trzy tabele:
1) properties: ID, name (np. 1, nationality)
2) characters: ID, name - powiedzmy, że tego się dotyczą te cechy (123, crozin)
3) properties_to_characters: proprty_id, character_id, value (1, 123, ererere)

Tworzysz do tego odpowiednie indeksy. I na takim czymś się da normalnie operować. A jeżeli wartości (value z prop..to_char..) są stałe (tzn. jest kilka do wyboru) to możesz dodać kolejną tabelę na własciwości, a w 3-ciej, zamiast value, dać value_id
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.