PHP CRUD 应用程序:动态提供数组索引

问题描述 投票:0回答:2

我正在使用 mysqli 制作员工 CRUD 应用程序。

我有一个员工 HTML 表,显示来自名为“users”的数据库表的用户,如下所示(模板文件是 users.php):

All Employees are listed in this table

我想单击第一个用户右侧的查看用户链接(那个眼睛图标)来显示他的个人资料。考虑到我有一个包含所有用户数据的

$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?)

php ajax mysqli crud
2个回答
2
投票

取决于您想要什么,如果您希望它动态加载或在另一个页面中加载。如果您想在另一个页面中,您可以使用类似于第一个答案的内容:

  • 在查看按钮上添加链接:/user.php?id=#(自动填写用户 ID)
  • 在functions.php中创建一个函数,以仅获取一个用户
    get_user($id)
    ,您可以在其中编写SQL并返回所有数据。
  • 调用 get_users 函数并将其设置为一个数组以包含您的所有信息
    $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/


1
投票

您可以:

/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 这样的框架,它提供了使您的生活更轻松所需的所有必要工具,并且能够专注于您的业务逻辑,而不是重新发明轮子。

© www.soinside.com 2019 - 2024. All rights reserved.