potreb
18.02.2009, 13:23:50
Witam. Pobieram dane z bazy, poprzez funkcję explode rozwalam dane na zmienne:
<?php
foreach(explode(':::', $row['info']) as $key=>$value) {
echo $Nationality.$Title; }
?>
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
18.02.2009, 13:26:56
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
18.02.2009, 13:29:05
Mógłbym

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
18.02.2009, 13:31:25
Musisz usunąć znaki nowej linii
Crozin
18.02.2009, 13:33:06
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