PHP MySQL 如何获取在 while 循环中创建的变量

PHP MySQL How to get variable created in while loop

我刚开始学习php,我还有很长的路要走,但我真的需要帮助。

所以我有一个页面,登录用户可以在其中创建任务,并且该用户可以 select 任务所在的用户。我需要执行插入查询,其中我需要登录用户 selected 的人的 ID。

这是我 HTML 上面的代码:

$userId = $_SESSION['id'];

$Users = "SELECT * FROM users";
$Result2 = $db->query($Users);

if(isset($_POST['submit'])){
$project = $_POST['Project'];
$task = $_POST['task'];
$user = $_POST['User'];
$date = $_POST['date'];

    $query = "INSERT INTO events (projectId, userId, name, date)
              VALUES ('','', '$task', '$date')";

    $result = $database->query($query);
    echo "it worked";



}

这是我的 HTML select 标签中的代码,其中登录用户可以 select 这个人。

<?php

while ($row2 = mysqli_fetch_assoc($Result2)) {
       $uid = $row2['id'];
       $name = $row2['name'];
       $lastName = $row2['lastname'];

       echo "<option>" . $name . " " . $lastName . " " . $uid . "</option>";
         }


 ?>

问题是我需要将 $uid 变量放入我的 HTML select 元素的 whileloop 中,在 [=25 上方的第一个 if 语句中=].我已经尝试了一切,但我似乎无法弄清楚如何。它完美地显示了所有用户及其 ID 号,我只需要抓住它们并将它们放入我的 if 语句中。

您的 <option> 标签肯定在 <select> 标签中。您必须为您的 select 命名,该名称将是您可以在 PHP 服务器端代码中使用的 POST 参数名称。 此外,您必须为每个选项分配一个值属性。

您的 HTML 打印程序变为

<?php

echo '<select name="uid">';
while ($row2 = mysqli_fetch_assoc($Result2)) {
       $uid = $row2['id'];
       $name = $row2['name'];
       $lastName = $row2['lastname'];

       echo "<option value='".$uid."'>" . $name . " " . $lastName . " " . $uid . "</option>";
         }
echo '</select>';  

 ?>

而你PHP服务器端代码变成

$userId = $_SESSION['id'];

$Users = "SELECT * FROM users";
$Result2 = $db->query($Users);

if(isset($_POST['submit'])){
$project = $_POST['Project'];
$task = $_POST['task'];
$user = $_POST['User'];
$date = $_POST['date'];

$uid = $_POST["uid"];

$query = "INSERT INTO events (projectId, userId, name, date) VALUES ('','', '$task', '$date')";
$result = $database->query($query);
echo "it worked";
}

如果您正在学习 PHP,我建议您从正确开始。切勿在未清理输入的情况下直接访问超全局参数 $_GET 和 $_POST。使用一些函数,例如 filter_input()