Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] eval foreach
potreb
post 18.02.2009, 13:23:50
Post #1





Grupa: Zarejestrowani
Postów: 1 568
Pomógł: 192
Dołączył: 7.03.2005
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


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.


--------------------

Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
Crozin
post 18.02.2009, 13:26:56
Post #2





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

Ostrzeżenie: (0%)
-----


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?
Go to the top of the page
+Quote Post
potreb
post 18.02.2009, 13:29:05
Post #3





Grupa: Zarejestrowani
Postów: 1 568
Pomógł: 192
Dołączył: 7.03.2005
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


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]


--------------------

Go to the top of the page
+Quote Post
webdevil
post 18.02.2009, 13:31:25
Post #4





Grupa: Zarejestrowani
Postów: 82
Pomógł: 18
Dołączył: 2.02.2009

Ostrzeżenie: (0%)
-----


Musisz usunąć znaki nowej linii
Go to the top of the page
+Quote Post
Crozin
post 18.02.2009, 13:33:06
Post #5





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 23.06.2025 - 13:26