Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Разобрать многомерный массив 
V
    Опции темы
Shark
  Дата 20.9.2015, 09:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 703
Регистрация: 18.6.2006
Где: Москва

Репутация: 4
Всего: 4



Есть функци (не моя):
Код

        private $result=array();
        public function getResult()
            { return $this->result; }
        

        public function select_all($table, $row, $where, $order)
            {
                
                $selects=mysql_query("SELECT ".$row." FROM ".$table." ".$where." ".$order) or die(mysql_error());
                if($selects)
                    {
                        $this->numResults=mysql_num_rows($selects);
                        for($i = 0; $i < $this->numResults; $i++)
                            {
                                $results = mysql_fetch_array($selects);
                                $key = array_keys($results);
                                for($x = 0; $x < count($key); $x++)
                                    {
                                        if(!is_int($key[$x]))
                                            {
                                                if(mysql_num_rows($selects) > 1)
                                                    { $this->result[$i][$key[$x]] = $results[$key[$x]]; }
                                                else if(mysql_num_rows($selects) < 1)
                                                    { $this->result = null; }
                                                else
                                                    { $this->result[$key[$x]] = $results[$key[$x]]; }
                                            }
                                    }
                            }
                        return true;
                    }
            }

далее в index.php пишется следующее:
Код

$db -> connect();

$template = $db -> select_all('s_server_template', '*', '', '');
$result = $db->getResult();
echo "<pre>";
print_r ($result);
echo "</pre>";

На выходе получаем это:
Код

Array
(
    [0] => Array
        (
            [id_template] => 1
            [name_template] => Default
            [url_template] => template/default/
            [template_css] => css/template_css/default/
            [img_template] => images/template/default/
        )

    [1] => Array
        (
            [id_template] => 2
            [name_template] => Default1
            [url_template] => template/default/1
            [template_css] => css/template_css/default/1
            [img_template] => images/template/default/1
        )

)

Как его разобрать на части и нужные строки воткнуть в нужные мне места?


--------------------
Смерть - это только начало... 
Агентство недвижимости Premial
PM MAIL WWW ICQ   Вверх
Xenox
Дата 21.9.2015, 10:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 18.9.2015

Репутация: нет
Всего: нет



Хм ну например так:

Код

<img src="" . <?= $result[0][img_template] ?> . "example.png" />

получишь картинку которая лежит images/template/default/example.png

Смотря что ты хочешь получить
PM   Вверх
Shark
Дата 21.9.2015, 10:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 703
Регистрация: 18.6.2006
Где: Москва

Репутация: 4
Всего: 4



Спасибо за помощь, но это я знаю..
я имел ввиду вывести всё, т.е.
справа на странице список шаблонов будет (это пример).. если я напишу так:
Код

echo $result[0][img_template];

то название будет только из первой строки в БД или из последней (в зависимости от сортировки)..
Как я понимаю, тут вроде бы надо использовать цикл foreach(), где в [0] будут вставляться все ключи(записи), но и это мне не подходит, т.к. постоянно писать в разных частях страницы foreach() неудобно и громоздко.
Фактически должно получиться что-то типо 
Код

while($result=mysql_fetch_arra($res))
{
   echo $result['name_template'];
....
}

и т.д. но для удобство работы это, как я понимаю все должно быть в классе, а потом уже из него выдирать что мне нужно и вставлять на странице там, где нужно

Это сообщение отредактировал(а) Shark - 21.9.2015, 13:18


--------------------
Смерть - это только начало... 
Агентство недвижимости Premial
PM MAIL WWW ICQ   Вверх
Shark
Дата 23.9.2015, 11:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 703
Регистрация: 18.6.2006
Где: Москва

Репутация: 4
Всего: 4



на текущий момент проблему решил так:
Код

$result = $db->getResult();
$key = array_keys($result);
for($i=0; $i<count($key); $i++)
    {    
        if(is_int($key[$i]))
            {
                echo $result[$i]['name_template']
            }
    }

Начало всей головной боли smile
Код

        private $result=array();
        public function getResult()
            { return $this->result; }
        //Функция выборки из БД
        public function select_all($row, $table, $where, $order)
            {
                
                $selects=mysql_query("SELECT ".$row." FROM ".$table." ".$where." ".$order) or die(mysql_error());
                if($selects)
                    {
                        $count=mysql_num_rows($selects);
                        for($i = 0; $i < $count; $i++)
                            {
                                $results = mysql_fetch_array($selects);
                                $key = array_keys($results);
                                for($x = 0; $x < count($key); $x++)
                                    {
                                        if(!is_int($key[$x]))
                                            {
                                                if(mysql_num_rows($selects) > 1)
                                                    { $this->result[$i][$key[$x]] = $results[$key[$x]]; }
                                                else if(mysql_num_rows($selects) < 1)
                                                    { $this->result = null; }
                                                else
                                                    { $this->result[$i][$key[$x]] = $results[$key[$x]]; }
                                            }
                                    }
                            }
                        return true;
                    }
            }

после него пишу дальше 2 функции
Код

        private $view="";
        public function getView()
            { return $this->view; }
            
        public function select_view($rows)
            {
                $key = array_keys($this->result);
                for($i=0; $i<count($key); $i++)
                    {    
                        if(is_int($key[$i]))
                            {
                                $this->view[$i][$rows]=$view[$i][$rows];
                            }
                    }
                return true;
            }

При запросе индексовом файле
Код

$view_select = $db->getView();
echo "<pre>";
print_r ($view_select);
echo "</pre>";

ничего не выводится... что я опять не так сделал?


--------------------
Смерть - это только начало... 
Агентство недвижимости Premial
PM MAIL WWW ICQ   Вверх
Shark
Дата 24.9.2015, 10:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 703
Регистрация: 18.6.2006
Где: Москва

Репутация: 4
Всего: 4



Сам затупил просто. На текущий момент вопрос решен


--------------------
Смерть - это только начало... 
Агентство недвижимости Premial
PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0651 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.