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

Осуществить вывод всей инфы через select

23.05.2024, 16:53. Показов 818. Ответов 9

Студворк — интернет-сервис помощи студентам
Есть студенты, хочу добавить для админа возможность выбрать помимо его курса, который хранится в бд и отображается, как его курс, все возможные курсы, для того, чтоб студент мог переводиться между разными группами!

Подключение к БД, возможно как-то неправильно подключаю
SQL
1
2
3
4
5
6
7
8
9
$courses_query = "SELECT * FROM `courses`";
$courses_result = mysqli_query($induction, $courses_query);
// Query TO GET the student registration DATA
$query = "SELECT * FROM `registration_form_on_courses` AS reg
          JOIN `students_payment` AS pay ON reg.id_student = pay.id_student
          JOIN `students_knowledge` AS know ON reg.id_student = know.id_student
          JOIN `registration_agent` AS agent ON reg.id_student = agent.id_student";
 
$result = mysqli_query($induction, $query);
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
57
58
59
function output_info($result) {
            echo '<table class="table">';
            echo '<thead>';
            echo '<tr>';
            echo '<th scope="col">Unique code</th>';
            echo '<th scope="col">First Name</th>';
            echo '<th scope="col">Last Name</th>';
            echo '<th scope="col">Kennitala</th>';
            echo '<th scope="col">Phone</th>';
            echo '<th scope="col">Email</th>';
            echo '<th scope="col">City</th>';
            echo '<th scope="col">Postal code</th>';
            echo '<th scope="col">Level Course</th>';
            echo '<th scope="col">Start Course</th>';
            echo '<th scope="col">End Course</th>';
            echo '<th scope="col">Payment</th>';
            echo '<th scope="col">Registration Agent</th>';
            echo '<th scope="col">Additional information</th>';
            echo '<th scope="col">Confirmation</th>';
            echo '</tr>';
            echo '</thead>';
            echo '<tbody>';
            while ($fullinfo = mysqli_fetch_assoc($result)) {
                if ($fullinfo['application_status'] == '') {
                echo '<tr>';
                // echo '<td><select name="confirmation_status"><option value="Approved">Approved</option><option value="Not approved">Not Approved</option></select></td>';
                echo '<th scope="row"> <select name="unique_code_courses"><option value="' . $fullinfo['unique_code_courses'] . '">' . $fullinfo['unique_code_courses'] . '</option><option value="' . $fullinfo['unique_code_courses'] . '">' . $fullinfo['unique_code_courses'] . '</option>';
 
                  if ($courses_result) {
                  echo '<select name="unique_code_courses">';
                  while ($course = mysqli_fetch_assoc($courses_result)) {
                    echo '<option value="' . $course['unique_code'] . '">' . $course['unique_code'] . '</option>';
                  }}
 
                echo '</select></th>';
 
 
                echo '<td>' . $fullinfo['first_name_student'] . '</td>';
                echo '<td>' . $fullinfo['last_name_student'] . '</td>';
                echo '<td>' . $fullinfo['student_kennitala'] . '</td>';
                echo '<td>' . $fullinfo['phone_number_student'] . '</td>';
                echo '<td>' . $fullinfo['email_student'] . '</td>';
                echo '<td>' . $fullinfo['city_student'] . '</td>';
                echo '<td>' . $fullinfo['postal_code_student'] . '</td>';
                echo '<td>' . $fullinfo['level_courses'] . '</td>';
                echo '<td>' . $fullinfo['start_date_courses'] . '</td>';
                echo '<td>' . $fullinfo['end_date_courses'] . '</td>';
                echo '<td>' . $fullinfo['payment'] . '</td>';
                echo '<td>' . $fullinfo['registration_agent'] . '</td>';
                echo '<td>' . $fullinfo['additional_information'] . '</td>';
                echo '<td><select name="confirmation_status"><option value="Approved">Approved</option><option value="Not approved">Not Approved</option></select></td>';
 
 
                echo '</tr>';
                }
            }
            echo '</tbody>';
            echo '</table>';
        }

Проверяла на вывод инфы и оно выводит
PHP
1
2
3
4
5
if ($courses_result) {
                  echo '<select name="unique_code_courses">';
                  while ($course = mysqli_fetch_assoc($courses_result)) {
                    echo '<option value="' . $course['unique_code'] . '">' . $course['unique_code'] . '</option>';
                  echo '</select></th>';}}
Но именно забиндить для select все возможные курсы не могу
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
23.05.2024, 16:53
Ответы с готовыми решениями:

добавление инфы из БД в список select
Добрый день, тут вот должно добавлять данные из БД в список &lt;select&gt; чтоб они там отображались, но что то не работает, как можно...

HTML SELECT вывод через echo
Чёт совсем запутался .. нужно вывести что передаю . &lt;form method=post &gt; &lt;select name=&quot;&quot; class=&quot;input1&quot; &gt; ...

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

9
 Аватар для sad67man
2603 / 1507 / 689
Регистрация: 23.08.2015
Сообщений: 3,813
23.05.2024, 17:49
Lo1ms, Функция output_info() не видит переменную $courses_result из-за области видимости.
Включите вывод ошибок, включая уровень Notice
https://karashchuk.com/PHP/err... up_errors/
1
1 / 1 / 0
Регистрация: 17.05.2024
Сообщений: 36
23.05.2024, 18:25  [ТС]
Цитата Сообщение от sad67man Посмотреть сообщение
Включите вывод ошибок, включая уровень Notice
https://karashchuk.com/PHP/err... up_errors/
вставила вначале своего кода
ini_set('error_reporting', E_ALL);
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);

но никаких ошибок не выдает!
0
 Аватар для sad67man
2603 / 1507 / 689
Регистрация: 23.08.2015
Сообщений: 3,813
23.05.2024, 18:36
Цитата Сообщение от Lo1ms Посмотреть сообщение
но никаких ошибок не выдает!
Скорее всего выдает, просто так как он находится внутри select, браузер их не рисует... Надо смотреть исходный код (в хроме ctrl + U, или правой клавишей мыши + "Просмотр кода страницы")

Но вообще вам нужно прокинуть переменную
PHP
1
function output_info($result, $courses_result) {
И передать при вызове
0
1 / 1 / 0
Регистрация: 17.05.2024
Сообщений: 36
24.05.2024, 13:24  [ТС]
Цитата Сообщение от sad67man Посмотреть сообщение
function output_info($result, $courses_result) {
И передать при вызове
Сделала, как сказали. Никаких ошибок нет, а всё равно не отрисовывает.
Гляньте код, пожалуйста

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
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
112
113
114
115
116
function output_info($result, $courses_result) {
        echo '<form method="post">';
        echo '<table class="table">';
        echo '<thead>';
        echo '<tr>';
        echo '<th scope="col">Unique code</th>';
        echo '<th scope="col">ID</th>';
        echo '<th scope="col">First Name</th>';
        echo '<th scope="col">Last Name</th>';
        echo '<th scope="col">Kennitala</th>';
        echo '<th scope="col">Phone</th>';
        echo '<th scope="col">Email</th>';
        echo '<th scope="col">City</th>';
        echo '<th scope="col">Postal code</th>';
        echo '<th scope="col">Level Course</th>';
        echo '<th scope="col">Start Course</th>';
        echo '<th scope="col">End Course</th>';
        echo '<th scope="col">Payment</th>';
        echo '<th scope="col">Registration Agent</th>';
        echo '<th scope="col">Additional information</th>';
        echo '<th scope="col">Confirmation</th>';
        echo '</tr>';
        echo '</thead>';
        echo '<tbody>';
 
        // Выводим данные для каждого студента
        while ($fullinfo = mysqli_fetch_assoc($result)) {
            if ($fullinfo['application_status'] == '') {
                echo '<tr>';
                echo '<th scope="row"> <select name="unique_code_courses"><option value="' . $fullinfo['unique_code_courses'] . '">' . $fullinfo['unique_code_courses'] . '</option><option value="' . $fullinfo['unique_code_courses'] . '">' . $fullinfo['unique_code_courses'] . '</option>';
 
                  if ($courses_result) {
                  echo '<select name="unique_code_courses">';
                  while ($course = mysqli_fetch_assoc($courses_result)) {
                    echo '<option value="' . $course['unique_code'] . '">' . $course['unique_code'] . '</option>';
                  }}
 
                echo '</select></th>';
                echo '<td>' . $fullinfo['id_student'] . '</td>';
 
                echo '<td>' . $fullinfo['first_name_student'] . '</td>';
                echo '<td>' . $fullinfo['last_name_student'] . '</td>';
                echo '<td>' . $fullinfo['student_kennitala'] . '</td>';
                echo '<td>' . $fullinfo['phone_number_student'] . '</td>';
                echo '<td>' . $fullinfo['email_student'] . '</td>';
                echo '<td>' . $fullinfo['city_student'] . '</td>';
                echo '<td>' . $fullinfo['postal_code_student'] . '</td>';
                echo '<td>' . $fullinfo['level_courses'] . '</td>';
                echo '<td>' . $fullinfo['start_date_courses'] . '</td>';
                echo '<td>' . $fullinfo['end_date_courses'] . '</td>';
                echo '<td>' . $fullinfo['payment'] . '</td>';
                echo '<td>' . $fullinfo['registration_agent'] . '</td>';
                echo '<td>' . $fullinfo['additional_information'] . '</td>';
                echo '<input type="hidden" name="student_id" value="' . $fullinfo['id_student'] . '">';
                echo '<td><select name="confirmation_status"><option value="Approved">Approved</option><option value="Not approved">Not Approved</option></select></td>';
                echo '</tr>';
            }
        }
 
        echo '</tbody>';
        echo '</table>';
        echo '<input type="submit" name="update_confirmation" value="Update Confirmation" class="btn btn-primary">';
        echo '</form>';
    }
 
//реализация поиска по студентам
        $action = isset($_POST['submit']) ? 'search' : (isset($_POST['clean']) ? 'clean' : 'display');
 
        switch ($action) {
            case 'search':
                $search = isset($_POST['search']) ? explode(' ', $_POST['search']) : array();
                $count = count($search);
                $array = array();
                $i = 0;
                foreach ($search as $key) {
                    $i++;
                    $array[] = "CONCAT(`first_name_student`, `last_name_student`, `student_kennitala`) LIKE '%" . $key . "%'" . ($i < $count ? " OR " : "");
                }
                $sql = "SELECT * FROM `registration_form_on_courses`";
                if (!empty($array)) {
                    $sql .= " WHERE " . implode("", $array);
                }
                $result = mysqli_query($induction, $sql);
                if ($result) {
                    if (mysqli_num_rows($result) > 0) {
                        output_info($result, $courses_result);
                    } else {
                        echo "Users not found";
                    }
                } else {
                    echo "Ошибка выполнения запроса: " . mysqli_error($induction);
                }
                break;
 
            case 'clean':
                // Очистка поиска и отображение всех сотрудников
                $sql = "SELECT * FROM `registration_form_on_courses`";
                $result = mysqli_query($induction, $sql);
                if ($result) {
                    output_info($result, $courses_result);
                } else {
                    echo "Ошибка выполнения запроса: " . mysqli_error($induction);
                }
                break;
 
            case 'display':
            default:
                $sql = "SELECT * FROM `registration_form_on_courses`";
                $result = mysqli_query($induction, $sql);
                if ($result) {
                    output_info($result);
                } else {
                    echo "Ошибка выполнения запроса: " . mysqli_error($induction);
                }
                break;
        }
0
 Аватар для sad67man
2603 / 1507 / 689
Регистрация: 23.08.2015
Сообщений: 3,813
24.05.2024, 14:20
Цитата Сообщение от Lo1ms Посмотреть сообщение
Никаких ошибок нет, а всё равно не отрисовывает.
А что в исходном коде получается? Вы его смотрели? Мне что-то смущает, что вы дважды select выводите.

case default: - не передали $courses_result, тут ошибка должна быть.
0
1 / 1 / 0
Регистрация: 17.05.2024
Сообщений: 36
24.05.2024, 14:22  [ТС]
Цитата Сообщение от sad67man Посмотреть сообщение
А что в исходном коде получается?
У меня получилось, нужно было сделать так
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
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
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
    foreach ($_POST as $key => $value) {
        if (strpos($key, 'update_confirmation_') === 0) {
            // Получаем ID студента из имени кнопки
            $student_id = str_replace('update_confirmation_', '', $key);
            $confirmation_status = $_POST['confirmation_status_' . $student_id];
 
            $sql = "UPDATE `registration_form_on_courses` SET application_status = '$confirmation_status' WHERE id_student = '$student_id'";
 
            // Выполнение запроса
            if (mysqli_query($induction, $sql)) {
                echo "Record updated successfully for student ID: $student_id with status: $confirmation_status<br>";
            } else {
                echo "Error updating record for student ID: $student_id: " . mysqli_error($induction) . "<br>";
            }
        }
    }
}
 
function output_info($result, $courses_result) {
        echo '<form method="post">';
        echo '<table class="table">';
        echo '<thead>';
        echo '<tr>';
        echo '<th scope="col">Unique code</th>';
        echo '<th scope="col">ID</th>';
        echo '<th scope="col">First Name</th>';
        echo '<th scope="col">Last Name</th>';
        echo '<th scope="col">Kennitala</th>';
        echo '<th scope="col">Phone</th>';
        echo '<th scope="col">Email</th>';
        echo '<th scope="col">City</th>';
        echo '<th scope="col">Postal code</th>';
        echo '<th scope="col">Level Course</th>';
        echo '<th scope="col">Start Course</th>';
        echo '<th scope="col">End Course</th>';
        echo '<th scope="col">Payment</th>';
        echo '<th scope="col">Registration Agent</th>';
        echo '<th scope="col">Additional information</th>';
        echo '<th scope="col">Confirmation</th>';
        echo '<th scope="col"></th>';
 
        echo '</tr>';
        echo '</thead>';
        echo '<tbody>';
 
        // Выводим данные для каждого студента
        while ($fullinfo = mysqli_fetch_assoc($result)) {
        if ($fullinfo['application_status'] == '') {
            $student_id = $fullinfo['id_student'];
            echo '<tr>';
            echo '<th scope="row">';
            echo '<select name="unique_code_courses_' . $student_id . '">';
            echo '<option value="' . $fullinfo['unique_code_courses'] . '">' . $fullinfo['unique_code_courses'] . '</option>';
 
            if ($courses_result) {
                mysqli_data_seek($courses_result, 0); // Reset pointer to beginning
                while ($course = mysqli_fetch_assoc($courses_result)) {
                    echo '<option value="' . $course['unique_code'] . '">' . $course['unique_code'] . '</option>';
                }
            }
 
            echo '</select></th>';
            echo '<td>' . $fullinfo['id_student'] . '</td>';
            echo '<td>' . $fullinfo['first_name_student'] . '</td>';
            echo '<td>' . $fullinfo['last_name_student'] . '</td>';
            echo '<td>' . $fullinfo['student_kennitala'] . '</td>';
            echo '<td>' . $fullinfo['phone_number_student'] . '</td>';
            echo '<td>' . $fullinfo['email_student'] . '</td>';
            echo '<td>' . $fullinfo['city_student'] . '</td>';
            echo '<td>' . $fullinfo['postal_code_student'] . '</td>';
 
 
            echo '<td>' . $fullinfo['level_courses'] . '</td>';
            echo '<td>' . $fullinfo['start_date_courses'] . '</td>';
            echo '<td>' . $fullinfo['end_date_courses'] . '</td>';
 
            echo '<td>' . $fullinfo['payment'] . '</td>';
            echo '<td>' . $fullinfo['registration_agent'] . '</td>';
            echo '<td>' . $fullinfo['additional_information'] . '</td>';
            echo '<input type="hidden" name="student_id_' . $student_id . '" value="' . $student_id . '">';
            echo '<td><select name="confirmation_status_' . $student_id . '">';
            echo '<option value="Approved">Approved</option>';
            echo '<option value="Not approved">Not Approved</option>';
            echo '</select></td>';
            echo '<td><input type="submit" name="update_confirmation_' . $student_id . '" value="Update Confirmation" class="btn btn-primary"></td>';
            echo '</tr>';
        }
    }
 
        echo '</tbody>';
        echo '</table>';
        echo '</form>';
    }
Не знаю насколько гавнокод, но работает, хз как улучшить
0
 Аватар для sad67man
2603 / 1507 / 689
Регистрация: 23.08.2015
Сообщений: 3,813
24.05.2024, 15:11
Лучший ответ Сообщение было отмечено Lo1ms как решение

Решение

Цитата Сообщение от Lo1ms Посмотреть сообщение
Не знаю насколько гавнокод, но работает, хз как улучшить
Могу дать пару советов.
1) для БД можно написать отдельную функцию Причем так, чтоб при первом вызове происходило подключение, а при повторном возвращалось старое соединение. Mysqli используйте в ООП стиле.

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
function getDb(): mysqli
{
    static $mysqli;
 
    if (!$mysqli) {
        /* Требуется включить отчёт об ошибках для модуля mysqli, перед попыткой установить соединение */
        mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
 
        $mysqli = new mysqli('localhost', 'my_user', 'my_password', 'my_db');
 
        /* Установите желаемую кодировку после установления соединения */
        $mysqli->set_charset('utf8mb4');
    }
 
    return $mysqli;
}
По сути это реализация singleton. Не придется прокидывать соединение в каждую функцию..

Добавлено через 20 минут
Lo1ms, 2) при выводе данных в html нужно учесть, что в значениях могут находиться символы, которые могут поломать верстку. К примеру

PHP
1
2
$fullinfo['first_name_student']  = '<b onclick="alert(123)">Ва</b>ся</body> <img src ="';
echo '<td>' . $fullinfo['first_name_student'] . '</td>';
;
Особенно если подставляете значения в аттрибуты. такие как
PHP
1
2
$course['unique_code'] = 'my"code';
echo '<option value="' . $course['unique_code'] . '">' . $course['unique_code'] . '</option>';
Если содержатся кавычки, то верска полетит.

Это уязвимость XSS-инъекция. Чтоб такого не было всегда при выводе используйте htmlspecialchars

Для удобства можно вынести в отдельную функцию-helper

PHP
1
2
3
4
function e($str): string
{
    return htmlspecialchars($str, ENT_QUOTES | ENT_SUBSTITUTE);
}
Просто используйте ее всегда, кроме тех случаев, когда в переменной находится html, и вы хотите, чтоб оно так и выводилось в сыром виде.

Добавлено через 5 минут
3) для того, чтоб не писать кучу подобных функций, как output_info, содержащий логику формирования html, можно написать одну общую

PHP
1
2
3
4
5
6
7
8
9
10
11
12
function render($view, $data = []): string
{
    ob_start();
    extract($data);
    $file = dirname(__DIR__) . '/views/' . $view . '.php';
    if (!file_exists($file)) {
        throw new Exception('view file not found: ' . $file);
    }
 
    require $file;
    return ob_get_clean();
}
Используем буферизацию вывода и распаковываем массив в переменные.

И уже писать полноценные вьюшки

PHP/HTML
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
<?php
 
//views/students/list.php
 
/**
 * @var array $students
 * @var array $courses
 */
 
?>
 
<form method="post">
<table class="table">
<thead>
    <tr>
        <th scope="col">Unique code</th>
        <th scope="col">ID</th>
        <th scope="col">First Name</th>
        <th scope="col">Last Name</th>
        <th scope="col">Kennitala</th>
        <th scope="col">Phone</th>
        <th scope="col">Email</th>
        <th scope="col">City</th>
        <th scope="col">Postal code</th>
        <th scope="col">Level Course</th>
        <th scope="col">Start Course</th>
        <th scope="col">End Course</th>
        <th scope="col">Payment</th>
        <th scope="col">Registration Agent</th>
        <th scope="col">Additional information</th>
        <th scope="col">Confirmation</th>
    </tr>
</thead>
<tbody>
    <?php foreach ($students as $student): ?>
        <tr>
           <th scope="row">
               <select name="unique_code_courses">
                   <option value="<?= e($student['unique_code_courses']) ?>"><?= e($student['unique_code_courses']) ?></option>
 
                   <?php foreach ($courses as $course): ?>
                       <option value="<?= e($course['unique_code']) ?>"><?=  e($student['unique_code']) ?></option>
                   <?php endforeach ?>
                </select>
           </th>
           <td><?= e($student['id_student']) ?></td>
           <td><?= e($student['first_name_student']) ?></td>
           <td><?= e($student['last_name_student']) ?></td>
           <td><?= e($student['student_kennitala']) ?></td>
           <td><?= e($student['phone_number_student']) ?></td>
           <td><?= e($student['email_student']) ?></td>
           <td><?= e($student['city_student']) ?></td>
           <td><?= e($student['postal_code_student']) ?></td>
           <td><?= e($student['level_courses']) ?></td>
           <td><?= e($student['start_date_courses']) ?></td>
           <td><?= e($student['end_date_courses']) ?></td>
           <td><?= e($student['payment']) ?></td>
           <td><?= e($student['registration_agent']) ?></td>
           <td><?= e($student['additional_information']) ?></td>
           <input type="hidden" name="student_id" value="<?= e($student['id_student']) ?>">
           <td>
               <select name="confirmation_status">
                   <option value="Approved">Approved</option>
                   <option value="Not approved">Not Approved</option>
               </select>
           </td>
           </tr>
    <?php endforeach ?>
    </tbody>
    </table>
    <input type="submit" name="update_confirmation" value="Update Confirmation" class="btn btn-primary">
</form>
Добавлено через 11 минут
При таком подходе во вьюшку лучше передавать только простые, готовые данные для вывода в виде массива.

И вы как бы разбиваете на 2 этапа. Сначала формируете массив, затем его подставляете в html

К примеру

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
function getCoursesDropDown() {
    $db = getDb();
    $result = $db->query("SELECT id, unique_code FROM `courses`");
    return $result->fetch_all(MYSQLI_ASSOC);
}
 
function searchUsers($searchString = '')
{
    $induction = getDb();
 
    $search = explode(' ', $searchString);
    $count = count($search);
    $array = array();
    $i = 0;
    foreach ($search as $key) {
        $i++;
        $array[] = "CONCAT(`first_name_student`, `last_name_student`, `student_kennitala`) LIKE '%" . $key . "%'" . ($i < $count ? " OR " : "");
    }
    $sql = "SELECT * FROM `registration_form_on_courses`";
    if (!empty($array)) {
        $sql .= " WHERE " . implode("", $array);
    }
    $result = $induction->query($sql);
 
    return $result->fetch_all(MYSQLI_ASSOC);
}
PHP
1
2
3
4
5
6
7
8
9
10
switch ($action) {
    case 'search':
 
        echo render('students/list', [
            'students' => searchUsers($_POST['search'] ?? ''),
            'courses' => getCoursesDropDown(),
        ]);
 
        break;
//...
Добавлено через 3 минуты
Lo1ms, Вот какие у меня мысли, и что можно улучшить в первую очередь. Может быть вы захотите, какие-то тяжелые запросы закешировать и т.д. бьете на 2 этапа - формируете данные, подставляете в html (либо отдаете в любом другом формате). Тогда и легче дебажить, так как вы можете через var_dump вывести все данные. еще до формирования html
1
1 / 1 / 0
Регистрация: 17.05.2024
Сообщений: 36
24.05.2024, 16:41  [ТС]
Цитата Сообщение от sad67man Посмотреть сообщение
case default: - не передали $courses_result, тут ошибка должна быть.
Действительно, не заметила. Но ошибку почему-то не выдает
Цитата Сообщение от sad67man Посмотреть сообщение
Вот какие у меня мысли, и что можно улучшить в первую очередь. Может быть вы захотите, какие-то тяжелые запросы закешировать и т.д. бьете на 2 этапа - формируете данные, подставляете в html (либо отдаете в любом другом формате). Тогда и легче дебажить, так как вы можете через var_dump вывести все данные. еще до формирования html
Как интересно и ничего не понятно еще учиться и учиться
0
377 / 319 / 73
Регистрация: 15.09.2017
Сообщений: 1,436
24.05.2024, 17:15
Lo1ms, не видите разницы даже в способе вывода HTML? Если бы убрали кучу эхо и добавили бы переводы строк внутрь текста (HTML-кода), уже бы существенно увеличили вероятность обнаружения левого select в этом тексте самостоятельно. А вам говорят, что и с обычными строками в кавычках могут быть проблемы (хотя при использовании двойных кавычек в одинарных "риск" минимален; переменные добавляете путем перечисления или конкатенации), поэтому лучше использовать специально предназначенные для этого методы: heredoc или встроенный язык шаблонизации (т.н. альтернативный синтаксис).
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
24.05.2024, 17:15
Помогаю со студенческими работами здесь

Select всей таблицы
Здравствуйте, есть таблица товаров, состоящая из нескольких полей, примарикей - id для экспорта в яндексмаркет требуется вытащить...

Как осуществить поиск по всей книге (по всем листам сразу)?
Очень нужно!

Есть программа,нужно ввод осуществить через массив text box , вывод на другой форме
В данной программе ввода нет,а массив создается в коде,вывод через Print. Нужно на форме создать массив Text Box для ввода,а вывод...

вывод инфы из БД
Всем Добрый Вечер. У меня возникла такая ситуация, есть БД с определёнными людьми живущими в N-ой комнате. Как сделать строку с выбором...

вывод инфы
Необходимо вывести студентов у которых оценка меньше 4? Что я делаю не так? #include &quot;stdafx.h&quot; #include &lt;stdio.h&gt; ...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка. Рецензия / Мнение/ Перевод Сайт называется reddit: The Thinkpad X220 Tablet is the best budget school laptop period. Это. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru