Я делаю CRUD-приложение Employees, используя mysqli.
У меня есть HTML-таблица Employees, отображающая пользователей из таблицы базы данных с именем «users», как показано ниже (файл шаблона — users.php):
Я хотел щелкнуть ссылку просмотра пользователя справа от первого пользователя (значок глаза), чтобы отобразить его профиль. Какой метод я должен использовать, учитывая, что у меня есть $get_users
массив, содержащий все данные пользователей, так что:
<pre><?php print_r ($get_users); ?></pre>
дисплеи
Array
(
[0] => Array
(
[id] => 1
[first_name] => Alex
[last_name] => Smith
[email] => alex.smith@gmail.com
[telefon] => 0743127315
[oras] => London
[adresa] => 5th Shaftesbury Ave.
)
[1] => Array
(
[id] => 5
[first_name] => Doe
[last_name] => John
[email] => jdoe80@yahoo.com
[telefon] => 0743127315
[oras] => London
[adresa] => 5th King's Road
)
)
и конечно <?php print ($get_users[0]['first_name']); ?>
отображает имя первого пользователя — Алекс. Но я не могу просто жестко view_user.php страница для каждого пользователя в базе данных.
Мой файл view_user.php (шаблон) содержит эту таблицу HTML:
<table id="single_user" class="table table-striped table-bordered">
<tbody>
<tr>
<td>First name</td>
<td><?php echo $get_users[0]['first_name']; ?></td>
</tr>
<tr>
<td>Last name</td>
<td><?php echo $get_users[0]['last_name']; ?></td>
</tr>
<tr>
<td>Email</td>
<td><a href="mailto:<?php echo $get_users[0]['email']; ?>"><?php echo $get_users[0]['email']; ?></a></td>
</tr>
<tr>
<td>Phone</td>
<td><?php echo $get_users[0]['telefon']; ?></td>
</tr>
<tr>
<td>City</td>
<td><?php echo $get_users[0]['oras']; ?></td>
</tr>
<tr>
<td>Address</td>
<td><?php echo $get_users[0]['adresa']; ?></td>
</tr>
</tbody>
</table>
я нуждаюсь в этом $get_users
индексы массива генерируются динамически: $get_users[index]
где индекс принимает значения от 0 до общего числа пользователей минус один.
Так какой же самый быстрый и безопасный способ сделать это? (AJAX?)
Вы можете:
/view_user.php?id=3
где:
$user_id = $_GET['id'];
$sql = "SELECT * FROM `users` WHERE `user_id` = " . (int)$user_id;
РЕДАКТИРОВАТЬ:
Ну, вы должны быть в состоянии использовать $ _GET [‘id’] просто отлично в своей функции.
$sql = "SELECT * FROM `users` WHERE `user_id` = " . (int)$_GET['id'];
Но имейте в виду, что этот подход очень неправильный по многим причинам.
Вы должны начать читать о и использовать такие рамки, как Laravel который предоставляет все необходимые инструменты, необходимые для облегчения вашей жизни и просто для того, чтобы сконцентрироваться на вашей бизнес-логике, а не изобретать велосипед.
Зависит от того, что вы хотите, если вы хотите, чтобы он загружался динамически или на другой странице. Если вы хотите на другой странице, вы можете использовать что-то вроде первого ответа:
get_user($id)
где вы пишете свой SQL и возвращаете все свои данные.$user = get_user($_GET["id"])
и используйте его там, где вам нужно.Если вы хотите ajax, вы загружаете этот контент либо в лайтбокс, либо добавляете div к своему контенту. Я обычно использую jquery-confirm.js
загрузить контент в лайтбокс. Вы можете настроить его на динамическое содержание и вернуть свой user.php
данные. Вы можете использовать тот же файл, что и в не-Ajax-версии. Для заголовка вам нужен другой файл, если вы хотите, чтобы он был простым.
Краткий пример:
$.dialog({
title: /user-title.php?id=#,
content: /user.php?id=#,
});
Более подробная информация о плагине здесь: https://craftpip.github.io/jquery-confirm/