我正在使用 mysqli 制作员工 CRUD 应用程序。
我有一个员工 HTML 表,显示来自名为“users”的数据库表的用户,如下所示(模板文件是 users.php):
我想单击第一个用户右侧的查看用户链接(那个眼睛图标)来显示他的个人资料。考虑到我有一个包含所有用户数据的
$get_users
数组,我应该使用什么方法:
<pre><?php print_r ($get_users); ?></pre>
显示
Array
(
[0] => Array
(
[id] => 1
[first_name] => Alex
[last_name] => Smith
[email] => [email protected]
[telefon] => 0743127315
[oras] => London
[adresa] => 5th Shaftesbury Ave.
)
[1] => Array
(
[id] => 5
[first_name] => Doe
[last_name] => John
[email] => [email protected]
[telefon] => 0743127315
[oras] => London
[adresa] => 5th King's Road
)
)
当然还有
<?php print ($get_users[0]['first_name']); ?>
显示第一个用户的名字 - Alex。但我不能只为数据库中的每个用户硬编码一个 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?)
取决于您想要什么,如果您希望它动态加载或在另一个页面中加载。如果您想在另一个页面中,您可以使用类似于第一个答案的内容:
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/
您可以:
/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 这样的框架,它提供了使您的生活更轻松所需的所有必要工具,并且能够专注于您的业务逻辑,而不是重新发明轮子。