оптимизация получения данных из БД

  • Автор темы Nicolas Prof
  • Дата начала

Nicolas Prof

Guest
Есть таблица в которой два поля param, value и к примеру 6 строк:
code=20
type=6
block=true
bd=dupka
color=red
name=Paul

И теперь нужно сформировать массив param->value:
Я делаю это так:
Код:
$query="SELECT * FROM table";
$result=mysql_query($query);
$data = array();
while ($temp = mysql_fetch_array($result,MYSQL_ASSOC)){
$data[$temp['param']]="$temp[value]";
}
Почему спрашиваю? Да потому что уверен что коряво, делаю. А использую часто, и во многих скриптах. Уверен что есть РАЦИОНАЛЬНЕЕ способ;)
 

GeT

Новичок
Ну во-первых, кавычки не нужны в $temp[value], во вторых {} убрать можно =)))
А остальное вроде нормально. =)
 

Фанат

oncle terrible
Команда форума
вообще-то эта таблица выглядит так, как будто это строка...
 

GeT

Новичок
Ну я думаю он имел в виду:
param=code || value=20
param=type || value=6
 

Nicolas Prof

Guest
Фанат
Извеняюсь, а если так.

param value

code 20
type 6
block true
bd dupka
color red
name paul

-~{}~ 24.02.05 21:00:

GeT
Совершенно так.
И еще, это конечно хорошо, но это изменения в синтаксисе. А как в логике. ;)

Хотя и за синтаксис спасибо, убрать 4 символа тоже хорошо )))
 

Фанат

oncle terrible
Команда форума
Извеняюсь, а если так.
а в чем разница? не уловил.
разве это не запись про определенного бойца? почему оно не лежит в одной строке с ним?
Уверен что есть РАЦИОНАЛЬНЕЕ способ
а на чем базируется эта уверенность?
 

Nicolas Prof

Guest
а на чем базируется эта уверенность?
На том что в PHP немеренно функций, и практически любую задачу можно решить несколькими способами ;)
 

GeT

Новичок
Nicolas Prof
В твоем случае, Фанат, насколько я понял, рекомендует использовать таблицу с 1 полем, вместо 2, как у тебя.
Хотя я не понимаю, как в таком случае записывать в таблицу выражения, содержащие символ-разделитель имени переменной и значения.
 

crocodile2u

http://vbolshov.org.ru
"В твоем случае, Фанат, насколько я понял, рекомендует использовать таблицу с 1 полем, вместо 2, как у тебя."

Что-то я не понял, где это Фанат рекомендует такую ерунду?
 

Фанат

oncle terrible
Команда форума
Да я не то, чтобы рекомендую.
просто эти данные выглядят так, как будто это одна запись. и обычно такие записи лежат в строке.ъ

Nicolas Prof
ну, для работы с бд, встроенных функций, делающих то, что тебе нужно, не предусмотрено.
Но ты можешь использовать что-нибудь готовое.
к примеру, 350Кб ADODB или 350б функции, которую напишешь самостоятельно.
что-то вроде такого
http://phpclub.ru/talk/showthread.php?postid=437034#post437034
 

crocodile2u

http://vbolshov.org.ru
Nicolas Prof:

Для твоей задачи отлично подойдет такая штука, как ini-файл. В частности, твой код сократится до 1-й строки:
PHP:
$data = parse_ini_file($filename);
 
Сверху