[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: массив
Shurick
есть запрос


foreach($arr_block as $arr){
if($arr[action]=='showpublic'){
$res=$db->sql_fetchrow($db->sql_query("select `id`,`title` from `site_public` where `id`='".$arr['property1']."'"));
$arr_public[]=$res;
$block['public']=$arr_public;
}
}


echo "<pre>";
print_r($block);
echo "<pre>";


вывод массива


Array
(
[public] => Array
(
[0] => Array
(
[0] => 3
[id] => 3
[1] => Техническая поддержка
[title] => Техническая поддержка
)

[1] => Array
(
[0] => 2
[id] => 2
[1] => Контакты
[title] => Контакты
)

)

)

Откуда взялись дополнительные дублирующие элементы и как их удалить. если в массиве будет 100 записей это ведь наверняка утяжелит вывод.



Спустя 1 час, 36 минут, 25 секунд (1.12.2009 - 19:15) Kuliev написал(а):
Shurick
Зачем запрос в цыкле гоняешь???

Спустя 3 минуты, 14 секунд (1.12.2009 - 19:18) Shurick написал(а):
Kuliev

А как прально!?

Спустя 33 секунды (1.12.2009 - 19:19) Shurick написал(а):
убрал все лишнее из массива вот таким запросом

    foreach($arr_block as $arr){
if($arr[action]=='showpublic'){
$arr_public=array();
$res=$db->sql_fetchrow($db->sql_query("select `id`,`title` from `site_public` where `id`='".$arr['property1']."'"));
$arr_public[]=array('id'=>$res[id],'title'=>$res[title]);
$block[$arr['id']]['public']=$arr_public;
}
if($arr[action]=='shownews'){
$arr_news=array();
$result=$db->sql_query("select `id`,`title` from `site_news` where `parent`='".$arr['property1']."'");
while ($res=$db->sql_fetchrow($result)){
$arr_news[]=array('id'=>$res[id],'title'=>$res[title]);
$block[$arr['id']]['news']=$arr_news;
}
}
}


массив
Array
(
[1] => Array
(
[public] => Array
(
[0] => Array
(
[id] => 2
[title] => Контакты
)

)

)

[3] => Array
(
[news] => Array
(
[0] => Array
(
[id] => 51
[title] => Новость
)

[1] => Array
(
[id] => 52
[title] => Новость 2
)

)

)

[2] => Array
(
[public] => Array
(
[0] => Array
(
[id] => 3
[title] => Техническая поддержка
)

)

)

[4] => Array
(
[news] => Array
(
[0] => Array
(
[id] => 53
[title] => Заголовок:
)

[1] => Array
(
[id] => 54
[title] => Заголовок:
)

)

)

)



Спустя 4 минуты, 23 секунды (1.12.2009 - 19:23) Kuliev написал(а):
Shurick
Скоре в сего вы используете в своей функцие sql_fetchrow() функцию mysql_fetch_array()

Спустя 1 минута, 4 секунды (1.12.2009 - 19:24) Shurick написал(а):
Цитата (Kuliev @ 1.12.2009 - 16:23)
Shurick
Скоре в сего вы используете в своей функцие sql_fetchrow() функцию mysql_fetch_array()

да

Спустя 3 минуты, 58 секунд (1.12.2009 - 19:28) Kuliev написал(а):
Цитата (Shurick @ 1.12.2009 - 21:24)
Цитата (Kuliev @ 1.12.2009 - 16:23)
Shurick
Скоре в сего вы используете в своей функцие sql_fetchrow() функцию mysql_fetch_array()

да

Надо юзать mysql_fetch_assoc(), вот прочитай! и убери запрос из цикла, запрос в цикле это ОЧЕНЬ НЕ ХОРОШО!

Спустя 7 минут, 13 секунд (1.12.2009 - 19:36) Shurick написал(а):
все понял! СПАСИБО!

Спустя 9 минут, 41 секунда (1.12.2009 - 19:45) Kuliev написал(а):
Shurick
С циклом разберись, точнее с запросом в цикле вот пример


$arr_id = array ('1','2','3','4');

$sql = "SELECT * FROM `table` WHERE `id` IN (".implode(",", $arr_id).")";
$result = mysql_query($sql) or die (mysql_error() ."<br/>". $sql);

while ($row = mysql_fetch_assoc($result))
{
// Обрабатывай данные
}


Спустя 4 часа, 12 минут, 1 секунда (1.12.2009 - 23:57) Shurick написал(а):
Kuliev
Не могу разобраться - как мне применить твой пример в свой скрип что бы получить приведенный мною выше массив.

Вообще скрипт предназначается для заполнения контентом(блоками) страницы. Блоки вывожу по позиции, каждый имеет свое предназначение - листинг новостей, публикации, листинг статей и прочая гадость. я все же на данном этапе предполагая что запросы к базе должны быть индивидуальными для каждого случая.

Судя по всему я ошибаюсь. Ломал голову весь вечер – не получается воплотить твои методом.


_____________
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.