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

时间:2017-01-18 21:55:30

标签: php ajax mysqli crud

我正在使用mysqli创建一个Employees CRUD应用程序。

我有一个Employees 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] => 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']); ?>

显示第一个用户的名字 - 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]其中index的值从0到用户总数减去1。

那么最快,最安全的方法是什么? (AJAX?)

2 个答案:

答案 0 :(得分:1)

你可以:

/view_user.php?id=3

其中:

$user_id = $_GET['id'];

$sql = "SELECT * FROM `users` WHERE `user_id` = " . (int)$user_id;

编辑:

你应该能够在你的功能中使用$ _GET [&#39; id&#39;]。

$sql = "SELECT * FROM `users` WHERE `user_id` = " . (int)$_GET['id'];

但请记住,出于多种原因,这种做法非常错误。

您应该开始阅读并使用像Laravel这样的框架,它提供了让您的生活更轻松所需的所有必要工具,并且能够专注于您的业务逻辑,而不是重新发明轮子。

答案 1 :(得分:1)

取决于您想要什么,如果您想要动态加载或在其他页面中加载。如果你想在另一个页面中,你可以使用第一个答案:

  • 在您的视图按钮上添加一个链接:/ user.php?id =#(自动填充用户ID)
  • 在functions.php中创建一个函数,只让一个用户get_user($id)编写SQL并返回所有数据。
  • 调用get_users函数并将其设置为一个数组,以包含所有信息$user = get_user($_GET["id"])并在任何需要的地方使用它。

如果您想要ajax,可以在灯箱中加载此内容,或者在内容中附加div。我通常使用jquery-confirm.js来加载灯箱中的内容。您可以将其设置为具有dinamycally内容并返回user.php数据。您可以使用与非ajax版本相同的文件。对于标题,如果要保持简单,则需要另一个文件。 简短的例子:

$.dialog({
    title: /user-title.php?id=#,
    content: /user.php?id=#,
});

这里有关于插件的更多信息:https://craftpip.github.io/jquery-confirm/