За последние 24 часа нас посетили 17132 программиста и 1835 роботов. Сейчас ищут 1640 программистов ...

Как получить данные из БД и отправить результат на другую страницу.

Тема в разделе "PHP для новичков", создана пользователем toren, 22 мар 2022.

  1. toren

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

    С нами с:
    28 янв 2015
    Сообщения:
    14
    Симпатии:
    0
    Добрый день, помогите пожалуйста с кодом. Нужно вытащить данные из БД через ajax по клику на кнопку.
    Мой код, направьте, что не так делаю.

    js при нажатии на кнопку

    Код (Javascript):
    1. $('.more_b').click(function(){  
    2. $.ajax({
    3. url: "/ajax.php",
    4. type: "post",
    5. dataType: "json",
    6. success: function(data){
    7.       $('.ajax_result_more').html(data.result);
    8.                     }
    9.                 });
    10.             });    
    Код ajax.php
    PHP:
    1. <?php
    2. $connect = new mysqli("127.0.0.1", "root", "", "testbase" );
    3. $connect->query("SET NAMES 'utf8' ");
    4. $result = $connect->query('SELECT name FROM `testtable` ORDER BY id DESC');
    5. ?>
    6. <?php while ($row = $result->fetch_assoc()): ?>
    7. <?php $msg_box = $row['name']; ?>
    8. <?php endwhile; ?>    
    9. <?
    10.     // делаем ответ на клиентскую часть в формате JSON
    11.     echo json_encode(array(
    12.         'result' => $msg_box
    13.  
    14.     ));
    15.     ?>
    Сейчас в результате выводится только имя из первой строки из БД, а нужно чтобы выводились имена со всех строк таблицы.
    Как мне результат fetch_assoc поместить в переменную $msg_box?
     
  2. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.787
    Симпатии:
    1.328
    Адрес:
    Лень
    PHP:
    1. json...( [ ... -> fetch_all( \MYSQLI_ASSOC ) ] );
    --- Добавлено ---
    в ajax сам разберешься, почему чудо думает что: "строка - это массив, или объект"
     
  3. ADSoft

    ADSoft Старожил

    С нами с:
    12 мар 2007
    Сообщения:
    3.850
    Симпатии:
    745
    Адрес:
    Татарстан
    а чего не каждую строку в теги <> то заключили.. каков смысл? если можно
    PHP:
    1. <?php
    2. $connect = new mysqli("127.0.0.1", "root", "", "testbase" );
    3. $connect->query("SET NAMES 'utf8' ");
    4. $result = $connect->query('SELECT name FROM `testtable` ORDER BY id DESC');
    5.  
    6. while ($row = $result->fetch_assoc()):
    7. $msg_box = $row['name'];
    8. endwhile;
    9.  
    10.     // делаем ответ на клиентскую часть в формате JSON
    11.     echo json_encode(array(
    12.         'result' => $msg_box
    13.     ));
    если $msg_box строку надо, то и делайте строку
    PHP:
    1. $msg_box. = $row['name'].'<br'>';
    например
     
  4. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.787
    Симпатии:
    1.328
    Адрес:
    Лень
    @ADSoft, тогда ты получишь ошибку об несуществующей переменной.
     
    lastdays нравится это.
  5. antoniii

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

    С нами с:
    16 мар 2022
    Сообщения:
    419
    Симпатии:
    71
    Если у Вас есть список полей в таблице, то нужно кроме name вывести и другие поля...
    Код (Text):
    1. <?php
    2. echo $row['name'] ;
    3. echo $row['field_1'] ;
    4. echo $row['field_2'] ;
    5. ?>
    6.      
    И это надо делать в цикле while
    --- Добавлено ---
    Фактически же ты выводишь только одну переменную.
    Код (Text):
    1.     echo json_encode(array(
    2.         'result' => $msg_box
     
  6. antoniii

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

    С нами с:
    16 мар 2022
    Сообщения:
    419
    Симпатии:
    71
    Я немного не понял сначала, что нужно сформировать JSON.
    Код (Text):
    1. $msg_box = '';
    2. while ($row = $result->fetch_assoc()):
    3. $msg_box .= $row['name'];
    4. endwhile;
    5.  
    6.     // делаем ответ на клиентскую часть в формате JSON
    7.     echo json_encode(array(
    8.         'result' => $msg_box
    9.     ));
    10. ?>