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()
我刚开始学习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()