|
|
|
|
<?php
$b['id']=$a['id'][0];
$b['title']=$a['title'][0];
$b['body']=$a['body'][0];
//и т.д. в том же духе :(
?>
| вопрос: есть ли возможность "автоматизировать" это нудное присвоение? | |
|
|
|
|
|
|
|
для: amigo62
(02.08.2007 в 00:38)
| | хМ.... а зачем этот таинственный [0] ? Для чего? Никогда ткого не видел!
Можно:
foreach ($b as $id=>$data) {
$a[$id][0] = $data;
}
|
Вроде так, вот только 0 меня чот сомневает! Поведуйте - чего он делает! | |
|
|
|
|
|
|
|
для: Proger
(02.08.2007 в 00:51)
| |
<?php
$rez=mysql_query("SELECT id, title, body FROM table");
while($ar=mysql_fetch_assoc($rez)) $a[]=$ar;
?>
|
индекс ноль будутиметь все переменные по запросу первой строки. Далее будут и 1, и 2, и 3 и т.д., но это все обработается в цикле. Я вот подумал, может, так:
<?php
foreach($a as $key=>$val) $b[$key]=$a[$key][0];
?>
| a? | |
|
|
|
|
|
|
|
для: amigo62
(02.08.2007 в 01:12)
| | >индекс ноль будутиметь все переменные по запросу первой строки. Далее будут и 1, и 2, и 3 и т.д., но это все обработается в цикле.
вот только первый индекс, а не второй.
Проще надо писать.
<?php
$rez=mysql_query("SELECT id, title, body FROM table");
while($b=mysql_fetch_assoc($rez))
{
// и здесь работать уже с $b['id'] , $b['title'], $b['body']
list($id, $title, $body) = $b;
// или даже прямо с $id, $title, $body
//....
}
?>
|
| |
|
|
|
|
|
|
|
для: Trianon
(02.08.2007 в 09:36)
| | list() не работает с ассоциативными массивами. | |
|
|
|
|
|
|
|
для: Unkind
(02.08.2007 в 14:56)
| | верно. Крайне дурацкая функция.
Ну тогда вместо list($id, $title, $body) = $b;
foreach($b as $k=>$v) $$k = $v;
|
| |
|
|
|
|
|
|
|
для: Trianon
(02.08.2007 в 15:11)
| | А мне кажется лучше mysql_fetch_array() и использовать list().
<?php
$result = mysql_query("SELECT `id`, `title`, `body` FROM `table`;");
while($b = mysql_fetch_array($result))
{
// И здесь работать уже с $b['id'] , $b['title'], $b['body']
list($id, $title, $body) = $b;
// или даже прямо с $id, $title, $body
//....
}
?>
|
| |
|
|
|
|
|
|
|
для: Unkind
(02.08.2007 в 15:15)
| | тогда уж mysql_fetch_row() .
Дело вкуса.
Я, например, предпочитаю работать с массивом полей. | |
|
|
|
|
|
|
|
для: Trianon
(02.08.2007 в 15:23)
| | тогда уж mysql_fetch_row()
Мне лень было читать всю тему, я посмотрел на Ваш последний пост и решил, что нужно получить как ассоциативный массив, так и переменные с названиями, соответсвующими названиям полей.
В таком случае нужна именно функция mysql_fetch_array(), так как от mysql_fetch_row() имен полей не добьешься. А с mysql_fetch_assoc() придется применять foreach, как делали Вы.
Я, например, предпочитаю работать с массивом полей.
Я, например, тоже. | |
|
|
|
|
|
|
|
для: Unkind
(02.08.2007 в 15:30)
| | > и решил, что нужно получить как ассоциативный массив, так и переменные с названиями, соответсвующими названиям полей.
Такого не бывает нужно никогда.
Необходимость такого может быть обусловлена только ошибкой в проектировании.
Соответственно, mysql_fetch_array() - функция, оставленная лишь для совместимости, на самом деле - паразит. | |
|
|
|
|
|
|
|
для: Trianon
(02.08.2007 в 15:33)
| | Не нужно, конечно. Но иногда встречаются те, кто не слушает, что нужно, а что нет. Так что проще показать как такое решается, нежели отговорить... | |
|
|
|
|
|
|
|
для: Unkind
(02.08.2007 в 15:42)
| | Спасибо, много интересных вариантов! Как раз и стремлюсь к тому чтобы проще писать но пока не всегда выходит:) | |
|
|
|