За последние 24 часа нас посетили 20466 программистов и 1009 роботов. Сейчас ищут 374 программиста ...

Визуализация базы данных

Тема в разделе "PHP и базы данных", создана пользователем Anna_xxx, 3 апр 2018.

Метки:
  1. Anna_xxx

    Anna_xxx Новичок

    С нами с:
    18 мар 2018
    Сообщения:
    40
    Симпатии:
    3
    Добрый день.
    Я сейчас прохожу практику и мне дали задание сделать статистику базы данных.
    То-есть администатор заходит на сайт и выбирает допустим: подсчитать количество зарегстриривовавшихся людей по городам в течение X периода времени.

    Сайт на worpdpress но мне нужно написать код на php самой.

    В общем сейчас я уже смогла подсоединится к базе данных через $wpdb, сделать select для большинства запросов.

    Осталось визуализировать данные в форме хотя бы таблицы. Пока что все работает через print_r.

    Вот такие данные: count(id) не показываются, визуализируется только area:
    Как мне правильно показать массив с данными ?

    Есть ли еще какие-то способы учитывая что осталось 2 дня чтобы все это срукожопить.

    Спасибо

    PHP:
    1. $ofertas_total_2=$wpdb->get_results("SELECT count(id), area
    2. FROM {$wpdb->prefix}ad_pr_ofertas
    3. WHERE fecha >= CAST('$YEAR-$MONTH-$DAY' AS DATE)
    4. AND fecha <= CAST('$YEAR_2-$MONTH_2-$DAY_2' AS DATE) group by area");
    5.  
    6.  
    7. echo "<table>";
    8.      echo "<legend><strong> Nº de Ofertas de Empleo totales entre las siguentes fechas seleccionadas: ".$YEAR."/".$MONTH."/".$DAY." - ".$YEAR_2."/".$MONTH_2."/".$DAY_2." </strong> <legend>";
    9.               echo "<tr>";
    10.                       if($ofertas_total_2)
    11.                        {
    12.                          echo '<ul>';
    13.  
    14.                          foreach($ofertas_total_2 as $details)
    15.                          {
    16.                            //echo '<li>' . $value2 . '</li>';
    17. $count_id=$wpdb->get_results("SELECT count(id)
    18. FROM {$wpdb->prefix}ad_pr_ofertas group by area");
    19.  
    20. echo '<li>' . $details->area . '</li>';
    21. echo '<li>' . $details->id . '</li>';
    22.                          }
    23.                          echo '</ul>';
    24.                        }  
    25.                            echo "</tr>";
    26.  
    27.                             echo "</table>";
    28.  
    29.                        return $ofertas_total_2;
    30.                        }//ofertas_total_2
    31.                    
    32.              }// ( ! function_exists( 'ofertas_total_2' )
     
  2. Dron-Boy

    Dron-Boy Старожил

    С нами с:
    20 ноя 2014
    Сообщения:
    1.041
    Симпатии:
    126
    Так для начала разберать массив запроса олучше через while
    PHP:
    1. while($result= $ofertas_total_2->fetch_assoc()){
    2.     echo  $result['id'];
    3. }
    4. И потом немного подумав ты сможешь все красиво организовать
     
  3. Anna_xxx

    Anna_xxx Новичок

    С нами с:
    18 мар 2018
    Сообщения:
    40
    Симпатии:
    3
    Возможно ли что эта функция не подходит для wp?
    Fatal error: Call to a member function fetch_assoc() on array in C:\xampp\htdocs\pruebas_anna\wp-content\themes\twentyseventeen\funciones.php on line 250
     
  4. Dron-Boy

    Dron-Boy Старожил

    С нами с:
    20 ноя 2014
    Сообщения:
    1.041
    Симпатии:
    126
    Возможно, с вп не работал.
     
  5. виталий032

    виталий032 Активный пользователь

    С нами с:
    31 янв 2014
    Сообщения:
    227
    Симпатии:
    30
    Адрес:
    Владивосток
    Ошибка FATAl ERROR кажется очевидной. Вы получили массив данных $ofertas_total_2 из бд и пытаетесь обратиться к нему как к объекту, да еще и к несуществующему методу.

    [Updated]
    wp не причем. На чистом php все также.

    Вот эти две строчки у вас работают? Отображают данные?
    PHP:
    1. echo '<li>' . $details->area . '</li>';
    2. echo '<li>' . $details->id . '</li>';
    [Updated]
    В самом первом запросе сделайте ... count(`id`) as sum, ...
    и
    PHP:
    1. echo '<li>' . $details->sum . '</li>';
     
    #5 виталий032, 3 апр 2018
    Последнее редактирование: 3 апр 2018
    Anna_xxx нравится это.
  6. Anna_xxx

    Anna_xxx Новичок

    С нами с:
    18 мар 2018
    Сообщения:
    40
    Симпатии:
    3
    я понимаю что функция не для wp.
    Так как же все-таки визуализировать данные ?

    разделить разметку? у меня 3 разных файла. в одном html на другом php и в третий я вынесла функции
    --- Добавлено ---
    echo var_dump($ofertas_total_2=$wpdb->get_results("SELECT count(id), area
    FROM {$wpdb->prefix}ad_pr_ofertas
    WHERE fecha >= CAST('$YEAR-$MONTH-$DAY' AS DATE)
    AND fecha <= CAST('$YEAR_2-$MONTH_2-$DAY_2' AS DATE)
    group by area"));


    мне нужна функция get_results как я понимаю. с ней не визуализируется вообще, хотя var_dump показывает данные. (у меня n строчек и 2 столбца)
    если меняю на get_row то показывает и area и id но только одну линию а мне нужно чтобы показывал все.
     
    #6 Anna_xxx, 3 апр 2018
    Последнее редактирование: 3 апр 2018
  7. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.410
    Симпатии:
    1.768
    кдыщ!
     
    Anna_xxx нравится это.
  8. Dimon2x

    Dimon2x Старожил

    С нами с:
    26 фев 2012
    Сообщения:
    2.199
    Симпатии:
    184
  9. Anna_xxx

    Anna_xxx Новичок

    С нами с:
    18 мар 2018
    Сообщения:
    40
    Симпатии:
    3
    спасибо, через некоторое время буду пробовать, но пока что не осилю к сожалению
    --- Добавлено ---
    А что такого то, тут все на нем работают
    --- Добавлено ---
    Виталий, все заработало после " count(`id`) as sum"

    Спасибо
     
    виталий032 нравится это.