Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 19.04.2014
Сообщений: 15
1

Построение запроса

16.02.2018, 14:56. Показов 362. Ответов 10
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Уважаемые знатоки, пожалуйста помогите разобраться в двух вопросах. Я только начал изучать php.

Страница имеет два div блока. Имеется таблица stable в бд mysql с полями id, fname, name и history. У поле history тип TEXT и состоит из 15-20 строк. В первый div выводится все записи таблицы stable, при клике на строку таблицы выводится значения поля history во второй div (id=’loader’). Использую следующее:

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
<?php
$conn1 = mysqli_connect("localhost", "root", "", "my_mt");
$result1=mysqli_query($conn1, "SELECT * FROM stable");
$row=mysqli_fetch_assoc($result1);
 
    echo("<table class='nogap'>");
        echo("<th>");
                echo("Фамилия");
        echo("</th>");
        echo("<th>");
                echo("Имя");
        echo("</th>");
        echo("</tr>");
        while ($row=mysqli_fetch_array($result1))
            {
        echo("<tbody>");
?>
        <tr class='lovelyrow' id='<?php echo $row['id'];?>'>
            <td class='stroka_table'><input type="checkbox"></td>
            <td class='stroka_table' style='text-align: center;'><?php echo $row['i_o']?></td>
<?php
            echo("<td class='stroka_table'>".$row['fname']."</a></td>");                 
            echo("<td class='stroka_table'>".$row['name']."</td>");
        echo("</tr>");
        echo("</tbody>");
            }
    echo("</table>");
 
 
<script>
$(document).ready(function(){
    $('tr').click(function(){
        var rno = $(this).attr("id");
        $.ajax({
            url: "school.php",
            method: "post",
            data: {rno:rno},
            success:function(data){
            $('#loader').html(data);
            }
        });
    });
});
</script>
?>
Файл school.php
PHP
1
2
3
4
5
6
<?php
$conn = mysqli_connect("localhost", "root", "", "my_mt");
$result=mysqli_query($conn, "SELECT history FROM stable where id='".$_POST['rno']."'");
$row=mysqli_fetch_assoc($result);
echo $row['history'];
?>
Все отлично работает. Но, мне кажется это не самое лучшее решение. Пожалуйста,не пинайте!
1. Правильно ли я делаю? Можно ли обойтись без второго запроса? Или каким путем лучше предпринять?

2. Как PHP построит запрос SELECT если пользователь на форме поиска некоторые поля для ввода оставил пустыми? Т.е. в строке SELECT невведенные значения отсутствовали.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
16.02.2018, 14:56
Ответы с готовыми решениями:

Как результат запроса другого результата запроса запихнуть в массив?
Как результат запроса другого результата запроса запихнуть в массив? Здравствуйте, у меня такая вот...

Как сделать запрос наличия в форме поискового запроса запроса на поиск одноразовым?
Здравствуйте. У меня проблема. Я PHP изучаю всего несколько месяцев и делаю по совместительству...

Построение запроса
Всем привет! Помогите построить запрос по заданию. Задание: Построить запрос, который...

Построение запроса
Имеется 2 таблицы: clientis(главная), communication(зависимая). Нужно выбрать всех клиентов,у...

10
21 / 44 / 11
Регистрация: 08.02.2018
Сообщений: 443
16.02.2018, 17:13 2
Для начинающего я бы сказал можно было бы получше, вполне можно обойтись и с одним запросом)
0
209 / 191 / 49
Регистрация: 15.03.2016
Сообщений: 1,211
16.02.2018, 19:01 3
вот так таблица выводится:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
while ($row=mysqli_fetch_array($result1)) {
    $TR[] = "<tr class='lovelyrow stroka_table' id='".$row['tr_id']."'>
\t<td><input type='checkbox'></td>
\t<td align=center>".$row['i_o']."</td>
\t<td>".$row['fname']."</td>                 
\t<td>".$row['name']."</td>
</tr>"
}
 
echo "<table class='tbl_nogap'>
<tr class='tr1'>
\t<td>Чекбокс</td>
\t<td>i_o</td>
\t<td>Фамилия</td>
\t<td>Имя</td>
</tr>\n\n"
.implode("\n", $TR)
."</table>\n\n";
зы: id в БД должен всегда означать только AUTO_INCREMENT (либо ручную нумерацию)
если надо id для <tr>, придумайте другое название для колонки
1
0 / 0 / 0
Регистрация: 19.04.2014
Сообщений: 15
17.02.2018, 08:41  [ТС] 4
извините в коде опечатка.
было:
PHP
1
 <td class='stroka_table' style='text-align: center;'><?php echo $row['i_o']?></td>
правильный вариант:
PHP
1
<td class='stroka_table' style='text-align: center;'><?php echo $row['id']?></td>
полудух,
спасибо за отклик. На 8 строке вашего кода выдает сообщение об синтаксической ошибке.
0
209 / 191 / 49
Регистрация: 15.03.2016
Сообщений: 1,211
17.02.2018, 14:50 5
там ; надо
0
21 / 44 / 11
Регистрация: 08.02.2018
Сообщений: 443
17.02.2018, 20:18 6
Цитата Сообщение от полудух Посмотреть сообщение
hile ($row=mysqli_fetch_array($result1)) {
* * $TR[] = "<tr class='lovelyrow stroka_table' id='".$row['tr_id']."'>
\t<td><input type='checkbox'></td>
\t<td align=center>".$row['i_o']."</td>
\t<td>".$row['fname']."</td> * * * * * * * *
\t<td>".$row['name']."</td>
</tr>"
}
echo "<table class='tbl_nogap'>
<tr class='tr1'>
\t<td>Чекбокс</td>
\t<td>i_o</td>
\t<td>Фамилия</td>
\t<td>Имя</td>
</tr>\n\n"
.implode("\n", $TR)
."</table>\n\n";

И это код эксперта
0
0 / 0 / 0
Регистрация: 19.04.2014
Сообщений: 15
19.02.2018, 11:36  [ТС] 7
Цитата Сообщение от полудух Посмотреть сообщение
id='".$row['tr_id']."'
Что такое "tr_id" и как его связать с таблицей?

Добавлено через 17 часов 57 минут
Неужели никто не сталкивался с такой задачей?
0
209 / 191 / 49
Регистрация: 15.03.2016
Сообщений: 1,211
19.02.2018, 12:28 8
да уже всё разжевали и в рот положили, что непонятно то
не можете готовое использовать, значит не надо оно вам, займитесь другим
0
0 / 0 / 0
Регистрация: 19.04.2014
Сообщений: 15
19.02.2018, 13:08  [ТС] 9
полудух
Спасибо Вам за ваши отклики на мое сообщение и за ваш код.

Но, вопрос все еще открыть.
0
andyyy
19.02.2018, 14:29
  #10

Не по теме:

:beach:

0
0 / 0 / 0
Регистрация: 19.04.2014
Сообщений: 15
22.02.2018, 10:57  [ТС] 11
Со вторым вопросом разобрался.
Подскажите пожалуйста решение первого вопроса.
0
22.02.2018, 10:57
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
22.02.2018, 10:57
Помогаю со студенческими работами здесь

Построение запроса
Есть таблица Product. maker model type A 1232 PC A 1233 PC A 1276 Printer A 1298 Laptop...

Построение запроса
Здравствуйте, у меня в отчёте и в запросе, на основе которого построен отчёт, не выводит &quot;№...

Построение запроса
Ребята, подскажите какую-нибудь книгу или книги о том как правильно строить запросы в oracle. А то...

Построение запроса
Доброго дня всем. Нужна ваша помощь в построении запроса. Есть таблица, скрин прикреплен. Я хочу...

Построение запроса SQL
Как построить запрос SQL так, чтобы формировалось дополнительное поле содержащее сумму двух полей....

Построение запроса ADOQuery
Здравствуйте, нужна помощь в построении запроса ADOQuery. Была поставлена такая задача: в таблице...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru