Форум программистов, компьютерный форум, киберфорум
PHP: базы данных
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.50/8: Рейтинг темы: голосов - 8, средняя оценка - 4.50
1 / 1 / 0
Регистрация: 23.05.2011
Сообщений: 39
1

Вывод информации из БД при входе на сайт и вывод одного последнего добавленного блока

28.06.2017, 16:58. Показов 1648. Ответов 15
Метки нет (Все метки)

Здравствуйте!
Немного столкнулся с проблемой:
Есть небольшой сайт, пробный, есть задание:
1. Запрограммировать форму для отправки информации в БД без перезагрузки страницы.
2. По нажатию на кнопку «Записать» данные должны появиться в виде карточек в специальном блоке, без перезагрузки страницы.

Запись и вывод данных я сделал, но столкнулся с тем, что при входе на сайт, блоки, где выводятся данные, пустые, до тех пор, пока я не введу новые данные - и тогда все блоки заполнятся старыми + одним новым.

Как мне сделать, чтобы при входе на сайт, появлялись сразу заполненные данные, на основе предыдущих запросов в БД ?

Сама страничка:

HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
<!DOCTYPE html>
<html lang="ru">
<head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE-edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <!-- Первые три мета-тега должны быть обязательными и идти первыми, остальные ниже-->
    <!-- Для сео -->
    <meta name="descritpion" content="Всякое">
    <meta name="keywords" content="Проектное"> 
    <!-- Конец сео -->
    <title>Project</title>
    <!-- Подключение стилей и таблицы Bootstrap-->
    <link rel="stylesheet" href="css/bootstrap.min.css">
    <link rel="stylesheet" href="css/main.css">
    <script src="js/jquery-2.1.1.js"></script>
 
<?
require "for_db.php";
require "script.php";
?>
</head>
<body>
<section id="main" class="main">
    <article>
        <div class="container">
            <div class="row">
            <div class="col-xs-12">
                <header>
                    <div class="logo">
                        <picture>
                            <source srcset="img/assets/honey.svg">
                            <img src="img/assets/honey.svg" alt="Описание" title="Описание">
                        </picture>
                    </div>
                    <div class="mid">
                        <picture>
                            <source srcset="img/assets/contact.svg">
                            <img src="img/assets/contact.svg" alt="Описание" title="Описание">
                        </picture>
                    </div>
                </header>
            </div>
            </div>
        </div>
        <div class="container forma">
            <div class="row">
                <div class="col-xs-5">
                    <form id="Mail" class="form" autocomplete="off">
                        <span>Имя</span><span>&nbsp;*</span>
                        <input type="text" name="name" class="nameField" maxlength="25" required="">
                        <span>E-Mail</span><span>&nbsp;*</span>
                        <input type="text" name="email" class="emailField" maxlength="25" required=""></div>
                        <div class="col-xs-1"></div>
                        <div class="col-xs-6">
                            <span>Комментарий</span><span>&nbsp;*</span>
                            <textarea type="textarea" name="message" class="msgField" required=""></textarea>
                            <input type="submit" class="send" value="Записать" />
                            <p class="msgs"></p></div>
                        </form>
                    </div>
                </div>
            </div>
        </article>
    </section>
<section id="second">
    <article>
        <div class="container">
            <div class="row">
            <div class="col-xs-12">
                <h1>Выводим комментарии</h1>
            </div>
                <div class="commall col-xs-12">
                </div>
            </div>
        </div>
    </article>
</section>
<section>
    <article>
        <div class="container">
            <div class="row">
                <div class="col-xs-12 footer">
                    
                </div>
            </div>
        </div>
    </article>
</section>
 
 
<script src="js/bootstrap.min.js"></script>
</body>
Это скрипт, который собирает данные с формы и выводит в последующем в мои блоки.

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
<script>  
        $(document).ready(function(){  
 
            $('#Mail').submit(function(){  
 
                var name = jQuery('.nameField').val();
                var email = jQuery('.emailField').val();
                var message = jQuery('.msgField').val();
                jQuery('.nameField').val(''); //Очистка трёх полей, после нажатия на кнопку
                jQuery('.emailField').val('');
                jQuery('.msgField').val('');
 
                $.ajax({  
                    type: "POST",  
                    url: "for_db.php",  
                    data: {name:name, email:email, message:message},
                    dataType: "json",  
            success: function(result) {
                if (result){ 
                                        jQuery('.comment').remove(); //Удаляем предыдущие данные, чтобы записались новые
                    jQuery('.commall').append(function(){
                        var res = '';
                        for(var i = 0; i < result.comments.name.length; i++){
                            res += '<div class="comment col-md-4"><div class="uname">' + result.comments.name[i] + '</div><div class="uemail">' + result.comments.email[i] + '</div><div class="umess">' + result.comments.message[i] + '</div></div>';
                        }
                            return res;
                    });
                    console.log(result);
                }else{
                    alert(result.message);
                }
                return false;
            }
                });  
                return false;  
            });  
        });  
    </script>
Это скрипт уже базы данных, который и работает с ней и к которой обращается запрос предыдущий.

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
<?
$mysqli = new Mysqli('localhost', 'root', '', 'fields');
if (mysqli_connect_errno()) { 
printf("Соединение не установлено: %s\n", mysqli_connect_error()); 
exit(); 
}
/** Получаем наш ID статьи из запроса */
$name = trim($_REQUEST['name']);
$email = trim($_REQUEST['email']);
$message = trim($_REQUEST['message']);
 
/** Если нам передали ID то обновляем */
if($name && $email && $message){
    //вставляем запись в БД
    /*$query = $mysqli->query("INSERT INTO `comments` VALUES(NULL, '$name', '$email', '$message')");*/
    
    $query = $mysqli->query("INSERT INTO `comments` VALUES(NULL,'$name', '$email', '$message')");
 
 
    $query2 = $mysqli->query("SELECT * FROM `comments` ORDER BY `id` DESC limit 6");
 
    while($row = $query2->fetch_assoc()){
        $comments['id'][] = $row['id'];
        $comments['name'][] = $row['name'];
        $comments['email'][] = $row['email'];
        $comments['message'][] = $row['message'];
    }
    $message2 = 'Все хорошо';
}else{
    $message2 = 'Не удалось записать и извлечь данные';
}
 
 
/** Возвращаем ответ скрипту */
 
// Формируем масив данных для отправки
$out = array(
    'message2' => $message2,
    'comments' => $comments
);
// Устанавливаем заголовот ответа в формате json
header('Content-Type: text/json; charset=utf-8');
 
// Кодируем данные в формат json и отправляем
echo json_encode($out);
И кстати, у меня тут топорно написан код добавления нового коммента. (там где указано REMOVE) Он просто удаляет все записи и потом добавляет по новому, но уже с новой записью. Мысли не доходят, как сделать по другому - просто двигать предыдущие блоки на один и добавлять новый (плюсом ко всему я всего 6 блоков поставил лимит).

Результат:

Картинка не добавляется к сожалению
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
28.06.2017, 16:58
Ответы с готовыми решениями:

Вывод информации из базы на сайт
Здравствуйте! Всем доброго времени суток! У меня есть вопрос. Установлен Лотус 8.5, настроена...

Вывод в див имен из бд и при нажатии вывод в отдельный див дополнительной информации об этом имени
Есть две колонки div в одину(div1) из бд выводиться название зала и день недели, в другую(div2)...

Вывод сообщения при входе на страницу
Добрый вечер! Есть страничка на которой требуется вывести сообщение как только ты неё попадаешь....

Вывод информации из БД через сайт в Excel
Есть задача по выводу в Excel информации из БД. Гуглил долго - нашел только вариант с PHPExcel. Но...

15
337 / 132 / 70
Регистрация: 30.06.2014
Сообщений: 717
28.06.2017, 17:52 2
Gwai, у Вас так описана логика что после нажатия кнопки данные добавляются и выводятся. Вынесите блок SELECT из ветвления if

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
<?
$mysqli = new Mysqli('localhost', 'root', '', 'fields');
if (mysqli_connect_errno()) { 
printf("Соединение не установлено: %s\n", mysqli_connect_error()); 
exit(); 
}
 
$query2 = $mysqli->query("SELECT * FROM `comments` ORDER BY `id` DESC limit 6");
if($query2 != NULL) : 
    while($row = $query2->fetch_assoc()){
        $comments['id'][] = $row['id'];
        $comments['name'][] = $row['name'];
        $comments['email'][] = $row['email'];
        $comments['message'][] = $row['message'];
    }
endif;
/** Получаем наш ID статьи из запроса */
$name = trim($_REQUEST['name']);
$email = trim($_REQUEST['email']);
$message = trim($_REQUEST['message']);
 
/** Если нам передали ID то обновляем */
if($name && $email && $message){
    //вставляем запись в БД
    /*$query = $mysqli->query("INSERT INTO `comments` VALUES(NULL, '$name', '$email', '$message')");*/
    
    $query = $mysqli->query("INSERT INTO `comments` VALUES(NULL,'$name', '$email', '$message')");
 
    $message2 = 'Все хорошо';
}else{
    $message2 = 'Не удалось записать и извлечь данные';
}
 
 
/** Возвращаем ответ скрипту */
 
// Формируем масив данных для отправки
$out = array(
    'message2' => $message2,
    'comments' => $comments
);
// Устанавливаем заголовот ответа в формате json
header('Content-Type: text/json; charset=utf-8');
 
// Кодируем данные в формат json и отправляем
echo json_encode($out);
0
1 / 1 / 0
Регистрация: 23.05.2011
Сообщений: 39
28.06.2017, 18:06  [ТС] 3
arava,
я уже пробовал похожим образом.
Сейчас попробовал сделать по этому коду, который Вы прислали. Разницы нет. Изначально блок всё равно пустой.

Теперь по Вашему коду, при вводе данных не происходит с первого раза ничего. Следующий ввод данных выводит предыдущий ввод. Т.е. то, что я ввёл сейчас, записывается на след. ввод.
0
337 / 132 / 70
Регистрация: 30.06.2014
Сообщений: 717
28.06.2017, 18:14 4
Gwai, ну получается что php код это обработчик, который запускается при отправке формы, выносите код выборки в другой сценарий или в блок html
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
<div class="container forma">
            <div class="row">
                <div class="col-xs-5">
                    <form id="Mail" class="form" autocomplete="off">
                        <span>Имя</span><span>&nbsp;*</span>
                        <input type="text" name="name" class="nameField" maxlength="25" required="">
                        <span>E-Mail</span><span>&nbsp;*</span>
                        <input type="text" name="email" class="emailField" maxlength="25" required=""></div>
                        <div class="col-xs-1"></div>
                        <div class="col-xs-6">
                            <span>Комментарий</span><span>&nbsp;*</span>
                            <textarea type="textarea" name="message" class="msgField" required=""></textarea>
                            <input type="submit" class="send" value="Записать" />
                            <p class="msgs"></p></div>
                        </form>
                    </div>
                </div>
            </div>
[PHP]
$mysqli = new Mysqli('localhost', 'root', '', 'fields');
if (mysqli_connect_errno()) { 
printf("Соединение не установлено: %s\n", mysqli_connect_error()); 
exit(); 
}
 
$query2 = $mysqli->query("SELECT * FROM `comments` ORDER BY `id` DESC limit 6");
if($query2 != NULL) : 
    while($row = $query2->fetch_assoc()){
        $comments['id'][] = $row['id'];
        $comments['name'][] = $row['name'];
        $comments['email'][] = $row['email'];
        $comments['message'][] = $row['message'];
    }
endif;
[/PHP]


Главная страничка :
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<div class="container forma">
            <div class="row">
                <div class="col-xs-5">
                    <form id="Mail" class="form" autocomplete="off">
                        <span>Имя</span><span>&nbsp;*</span>
                        <input type="text" name="name" class="nameField" maxlength="25" required="">
                        <span>E-Mail</span><span>&nbsp;*</span>
                        <input type="text" name="email" class="emailField" maxlength="25" required=""></div>
                        <div class="col-xs-1"></div>
                        <div class="col-xs-6">
                            <span>Комментарий</span><span>&nbsp;*</span>
                            <textarea type="textarea" name="message" class="msgField" required=""></textarea>
                            <input type="submit" class="send" value="Записать" />
                            <p class="msgs"></p></div>
                        </form>
                    </div>
                </div>
            </div>
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
$mysqli = new Mysqli('localhost', 'root', '', 'fields');
if (mysqli_connect_errno()) { 
printf("Соединение не установлено: %s\n", mysqli_connect_error()); 
exit(); 
}
 
$query2 = $mysqli->query("SELECT * FROM `comments` ORDER BY `id` DESC limit 6");
if($query2 != NULL) : 
    while($row = $query2->fetch_assoc()){
        $comments['id'][] = $row['id'];
        $comments['name'][] = $row['name'];
        $comments['email'][] = $row['email'];
        $comments['message'][] = $row['message'];
    }
endif;
Обработчик :
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
<?
$mysqli = new Mysqli('localhost', 'root', '', 'fields');
if (mysqli_connect_errno()) { 
printf("Соединение не установлено: %s\n", mysqli_connect_error()); 
exit(); 
}
 
/** Получаем наш ID статьи из запроса */
$name = trim($_REQUEST['name']);
$email = trim($_REQUEST['email']);
$message = trim($_REQUEST['message']);
 
/** Если нам передали ID то обновляем */
if($name && $email && $message){
    //вставляем запись в БД
    /*$query = $mysqli->query("INSERT INTO `comments` VALUES(NULL, '$name', '$email', '$message')");*/
    
    $query = $mysqli->query("INSERT INTO `comments` VALUES(NULL,'$name', '$email', '$message')");
 
    $message2 = 'Все хорошо';
}else{
    $message2 = 'Не удалось записать и извлечь данные';
}
 
 
/** Возвращаем ответ скрипту */
 
// Формируем масив данных для отправки
$out = array(
    'message2' => $message2,
    'comments' => $comments
);
// Устанавливаем заголовот ответа в формате json
header('Content-Type: text/json; charset=utf-8');
 
// Кодируем данные в формат json и отправляем
echo json_encode($out);
header('Location: главная страничка.php');
0
1 / 1 / 0
Регистрация: 23.05.2011
Сообщений: 39
28.06.2017, 18:37  [ТС] 5
arava, так не работает SELECT вообще.

Добавлено через 13 минут
arava, Если убирать обработчик SELECT из того места, где он есть сейчас, то записи добавляются "с опозданием" т.е. через запись.
0
337 / 132 / 70
Регистрация: 30.06.2014
Сообщений: 717
28.06.2017, 19:11 6
Gwai, так, еще раз :

1. Селект добавляем в главную страницу ;
2. Из обработчика добавления комментария убираем селект и в конце добавляем
PHP
1
header('Location: главная страничка.php');
0
1 / 1 / 0
Регистрация: 23.05.2011
Сообщений: 39
28.06.2017, 19:36  [ТС] 7
arava,
уже пробовал так, не работает
я указываю главную страницу когда (index.php), вообще не появляются комментарии.
Мне вообще кажется что надо копать в JS а не в PHP. Но и там почему-то подобная ситуация.
0
337 / 132 / 70
Регистрация: 30.06.2014
Сообщений: 717
28.06.2017, 20:08 8
Gwai, действительно в JS . Давайте выведем просто хтмл и обработчик на селект :
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
<!DOCTYPE html>
<html lang="ru">
<head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE-edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <!-- Первые три мета-тега должны быть обязательными и идти первыми, остальные ниже-->
    <!-- Для сео -->
    <meta name="descritpion" content="Всякое">
    <meta name="keywords" content="Проектное"> 
    <!-- Конец сео -->
    <title>Project</title>
    <!-- Подключение стилей и таблицы Bootstrap-->
    <link rel="stylesheet" href="css/bootstrap.min.css">
    <link rel="stylesheet" href="css/main.css">
    <script src="js/jquery-2.1.1.js"></script>
 
<?
require "for_db.php";
require "script.php";
?>
</head>
<body>
<?php
 
$mysqli = new Mysqli('localhost', 'root', '', 'fields');
if (mysqli_connect_errno()) { 
printf("Соединение не установлено: %s\n", mysqli_connect_error()); 
exit(); 
}
 
$query2 = $mysqli->query("SELECT * FROM `comments` ORDER BY `id` DESC limit 6");
 
    while($row = $query2->fetch_assoc()){
        $comments['id'][] = $row['id'];
        $comments['name'][] = $row['name'];
        $comments['email'][] = $row['email'];
        $comments['message'][] = $row['message'];
    }
 
?>
<section id="main" class="main">
    <article>
        <div class="container">
            <div class="row">
            <div class="col-xs-12">
                <header>
                    <div class="logo">
                        <picture>
                            <source srcset="img/assets/honey.svg">
                            <img src="img/assets/honey.svg" alt="Описание" title="Описание">
                        </picture>
                    </div>
                    <div class="mid">
                        <picture>
                            <source srcset="img/assets/contact.svg">
                            <img src="img/assets/contact.svg" alt="Описание" title="Описание">
                        </picture>
                    </div>
                </header>
            </div>
            </div>
        </div>
        <div class="container forma">
            <div class="row">
                <div class="col-xs-5">
                    <form id="Mail" class="form" autocomplete="off">
                        <span>Имя</span><span>&nbsp;*</span>
                        <input type="text" name="name" class="nameField" maxlength="25" required="">
                        <span>E-Mail</span><span>&nbsp;*</span>
                        <input type="text" name="email" class="emailField" maxlength="25" required=""></div>
                        <div class="col-xs-1"></div>
                        <div class="col-xs-6">
                            <span>Комментарий</span><span>&nbsp;*</span>
                            <textarea type="textarea" name="message" class="msgField" required=""></textarea>
                            <input type="submit" class="send" value="Записать" />
                            <p class="msgs"></p></div>
                        </form>
                    </div>
                </div>
            </div>
        </article>
    </section>
<section id="second">
    <article>
        <div class="container">
            <div class="row">
            <div class="col-xs-12">
                <h1>Выводим комментарии</h1>
            </div>
                <div class="commall col-xs-12">
                </div>
            </div>
        </div>
    </article>
</section>
<section>
    <article>
        <div class="container">
            <div class="row">
                <div class="col-xs-12 footer">
                    
                </div>
            </div>
        </div>
    </article>
</section>
 
 
<script src="js/bootstrap.min.js"></script>
</body>
Добавлено через 12 минут
После отправки формы, данные передаются на JS и ajax отправляет их на for_db.php
Попробуйте в конце JS блока добавить редирект document.location.href = 'index.php'; на страницу с формой после console.log(result);
0
1 / 1 / 0
Регистрация: 23.05.2011
Сообщений: 39
28.06.2017, 20:39  [ТС] 9
arava, не, так тоже не вариант, он делает редирект и всё сбрасывается.
если указывать СЕЛЕКТ где то в ХТМЛ документе - он нигде не работает. Будто с базой не соединяется. НО! Это при выключенном require: for_db.php
Потому что если его объявлять в HEAD, то сразу вылазит ошибка о неизвестных переменных.

Добавлено через 11 минут
arava, проблема то в целом мелочная, я думаю может сделать JS отдельной функцией - одна заводит в базу, вторая всегда выводит

Добавлено через 5 минут
arava, но и в этом есть косяк, если я помещаю весь скрипт в отдельную функцию, и потом пытаюсь её вызвать - скрипт не работает
0
337 / 132 / 70
Регистрация: 30.06.2014
Сообщений: 717
28.06.2017, 20:45 10
Лучший ответ Сообщение было отмечено Gwai как решение

Решение

Gwai,
Цитата Сообщение от Gwai Посмотреть сообщение
сделать JS отдельной функцией - одна заводит в базу, вторая всегда выводит
можно .

пфф, только увидел. Теперь будет вывод на index.php
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?php
 
$mysqli = new Mysqli('localhost', 'root', '', 'fields');
if (mysqli_connect_errno()) { 
printf("Соединение не установлено: %s\n", mysqli_connect_error()); 
exit(); 
}
 
$query2 = $mysqli->query("SELECT * FROM `comments` ORDER BY `id` DESC limit 6");
 
    while($row = $query2->fetch_assoc()){
        echo $row['id'].'<br/>';
        echo $row['name'].'<br/>';
        echo $row['email'].'<br/>';
        echo $row['message'].'<br/>';
    }
 
?>
Добавлено через 54 секунды
там же присвоение было, а не вывод

Добавлено через 1 минуту
наша задача в том чтобы ajax внес коммент в БД и отправил нас на index.php где произойдет вывод самих комментариев
1
1 / 1 / 0
Регистрация: 23.05.2011
Сообщений: 39
28.06.2017, 21:02  [ТС] 11
arava, осталось стилизовать это дело под то, как выводится в блоки
0
337 / 132 / 70
Регистрация: 30.06.2014
Сообщений: 717
28.06.2017, 21:11 12
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<div class="container">
 <div class="row">
    <div class="col-xs-12">
       <h1>Выводим комментарии</h1>
    </div>
   <!-- Обратите внимание на название класса, возможно здесь должно быть comment -->
    <div class="commall col-xs-12">
 
        <?php
 
         $mysqli = new Mysqli('localhost', 'root', '', 'fields');
         if (mysqli_connect_errno()) { 
         printf("Соединение не установлено: %s\n", mysqli_connect_error()); 
         exit(); 
         }
         if($query) :
         $query2 = $mysqli->query("SELECT * FROM `comments` ORDER BY `id` DESC limit 6");
 
         while($row = $query2->fetch_assoc()) {
            echo $row['id'] .' '. $row['name'] .' '. $row['email'].'<br/>';
            echo '<pre>'.$row['message'].'</pre><br/>';
         }
         endif;
       ?>
    </div>
 </div>
</div>
0
1 / 1 / 0
Регистрация: 23.05.2011
Сообщений: 39
28.06.2017, 21:19  [ТС] 13
arava, через цикл IF не работает
стилизацию я уже сделал
0
337 / 132 / 70
Регистрация: 30.06.2014
Сообщений: 717
28.06.2017, 21:32 14
Gwai, я там ошибся с переменной, замените $query на $query2 ,
и if($query) : после $query2 = $mysqli->query("SELECT * FROM `comments` ORDER BY `id` DESC limit 6");

советую все-таки чтобы было if , ибо в случае когда комментариев не будет посыпятся notice

Добавлено через 2 минуты
в общем так :
PHP
1
2
3
4
5
6
7
8
9
         $query2 = $mysqli->query("SELECT * FROM `comments` ORDER BY `id` DESC limit 6");
         
         if($query2) :
 
         while($row = $query2->fetch_assoc()) {
            echo $row['id'] .' '. $row['name'] .' '. $row['email'].'<br/>';
            echo '<pre>'.$row['message'].'</pre><br/>';
         }
         endif;
0
1 / 1 / 0
Регистрация: 23.05.2011
Сообщений: 39
28.06.2017, 22:05  [ТС] 15
arava, спасибо ещё раз
Я пытался уже менять через IF разные значения, и шаманил немного... всё равно по циклу не работает

В итоге получилось так, что PHP (селект) я оставил так или иначе в обработчике (без него не работало)
Дальше я селект так же перенес на место, где формируется база изначальная.
Ну и прибил стилизацию такую же, как и в JS написана (как должна быть по проекту: в блоках div и красиво)

А, всё получилось через цикл Не подумал о том, что я открывал его ДО объявления массива)

Добавлено через 31 минуту
arava, а ещё вопрос, че то не получается сделать проверку (хорошую) вводимых данных

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
<?
$mysqli = new Mysqli('localhost', 'root', '', 'fields');
if (mysqli_connect_errno()) { 
printf("Соединение не установлено: %s\n", mysqli_connect_error()); 
exit(); 
}
/** Получаем наш ID статьи из запроса */
if(isset($_POST["go"])):
$e1 = null;
$name=trim($_POST["name"]);
    if(strlen($name)=="0"):
        $e1.="Заполните поле 'Ваше имя'";
    endif;
$e2=null;
    $email = trim($_REQUEST['email']);
    $email=strip_tags($email);
    $email=htmlspecialchars($email,ENT_QUOTES);
    $email=stripslashes($email);
    if(!filter_var($email, FILTER_VALIDATE_EMAIL)):
        $e2.="Неверное значение";
    endif;
 
$e3=null;
    $message = trim($_REQUEST['message']);
    $message=strip_tags($message);
    $message=htmlspecialchars($message,ENT_QUOTES);
    $message=stripslashes($message);
    if(strlen($message)=="0"):
        $e3.="Заполните поле 'Текст Сообщения'";
    endif;
/** Если нам передали ID то обновляем */
    
    $query = $mysqli->query("INSERT INTO `comments` VALUES(NULL,'$name', '$email', '$message')");
    $query2 = $mysqli->query("SELECT * FROM `comments` ORDER BY `id` DESC limit 6");
 
    while($row = $query2->fetch_assoc()){
        $comments['id'][] = $row['id'];
        $comments['name'][] = $row['name'];
        $comments['email'][] = $row['email'];
        $comments['message'][] = $row['message'];
    }
endif;
 
 
/** Возвращаем ответ скрипту */
 
// Формируем масив данных для отправки
$out = array(
    'message2' => $message2,
    'comments' => $comments
);
// Устанавливаем заголовот ответа в формате json
header('Content-Type: text/json; charset=utf-8');
 
// Кодируем данные в формат json и отправляем
echo json_encode($out);
0
337 / 132 / 70
Регистрация: 30.06.2014
Сообщений: 717
29.06.2017, 00:15 16
Gwai, на счет проверки данных перед отправкой не выдумывайте, сразу читайте про bind_param and prepare_statement MYSQLI или PDO
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
29.06.2017, 00:15

Заказываю контрольные, курсовые, дипломные работы и диссертации здесь.

Вывод информации из xml на сайт с сортировкой
Я никогда раньше не работал c xml, только знаю это что-то типо бд. Мне надо сделать вывод...

Вывод информации для одного объекта по id в net.Core
Здравствуйте, подскажите пожалуйста новичку. После того как фильтрую объекты по категориям, хочу...

Вывод сообщения при входе пользователя в консоль
1) Как поставить вывод файла в приветсвии пользователя? просто прописать в ~/.bashrc? 2)Хочу...

Вывод всей информации из одной таблицы и одного поля из другой
Здравствуйте, подскажите пожалуйста, как сделать запрос на отображение...

Вывод только что добавленного текста
Добрый день. у меня имеется следующее: я отправляю текст в форме и он пишется в файл. затем я...

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


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.