gpt4 book ai didi

php - 需要更新数据库中的一行

转载 作者:行者123 更新时间:2023-11-29 11:47:13 24 4
gpt4 key购买 nike

我正在制作一个应用程序,只需更新数据库中的一行。我构建应用程序的方式会更新数据库中的所有行。有人可以查看我的脚本并告诉我如何更新一行吗?

我知道我需要用 id 做一些事情,但我不知道该怎么做..

这是页面的脚本,用户可以在其中更改数据库中的数据。这样每条记录都会更新。

        <section>
<?php
$sql = "SELECT naam, plaats.plaats, type.type, status FROM devices, type, plaats, status
WHERE devices.type_id = type.type_id
AND plaats.plaats_id = devices.plaats_id
AND status.status_id = devices.status_id
AND plaats.plaats ='benedenverdieping'";
$result = $con->query($sql);
if ($result->num_rows > 0) {
echo '<table><tr><td>Naam</td><td>Plaats</td><td>Type</td><td>Status</td><td>open/dicht</td><td>Submit</td></tr>';

while($row = $result->fetch_assoc()) {

echo '<tr>';
echo '<td>' .$row['naam']. '</td>';
echo '<td>' .$row['plaats']. '</td>';
echo '<td>' .$row['type']. '</td>';
echo '<td>' .$row['status']. '</td>';
echo '<td>';?>
<form action="opendicht.php" method="post">
<select name="opendicht">
<option name="open" value="1">open</option>
<option name="dicht" value="2">dicht</option>
</select>
<?php '</td>';
echo '<td>'?>
<input type="submit" value="Doorvoeren" name="submit">
</form>
<?php '</td>';
}
echo '</table>';
}
?>
</section>

这是执行用户输入的脚本。由于 sql 查询的原因,它不适用于仅一条记录。现在的工作方式是查询使用 status_id 1 或 2 更新每条记录。在数据库中,1 代表打开,2 代表关闭。我找不到一种方法让查询只更新一行数据。

<?php
session_start();
$naam = $_SESSION['username'];
echo $naam;

include '../dbconnect.php';

date_default_timezone_set("Europe/Amsterdam");
$t=time();
$aanpassing = date("d-m-y h:i",$t);

$sel_device_id = ("SELECT device_id FROM devices");
$run_device_id = mysqli_query($con, $sel_device_id);

if(isset($_POST['submit']))
{ // Fetching variables of the form which travels in URL
$opendicht = $_POST['opendicht'];
if($opendicht =='1')
{
//UPDATE devices SET status_id = $opendicht, username = (SELECT user_id FROM users WHERE username = '$naam'), timestamp = '$timestamp' WHERE status_id = '2'
mysqli_query($con,"UPDATE devices SET status_id = $opendicht, username = '$naam', tijd = '$aanpassing' WHERE status_id = 2");
}
else
{
mysqli_query($con,"UPDATE devices SET status_id = $opendicht, username = '$naam', tijd = '$aanpassing' WHERE status_id = 1");
}

}
else{
echo "er is iets fout gegaan";
}

mysqli_close($con); // Closing Connection with Server
header( "refresh:0;url=index.php" );
?>

最佳答案

这些是您的更新查询:

mysqli_query($con,"UPDATE devices SET status_id = $opendicht, username = '$naam', tijd = '$aanpassing' WHERE status_id = 1");
mysqli_query($con,"UPDATE devices SET status_id = $opendicht, username = '$naam', tijd = '$aanpassing' WHERE status_id = 2");

您正在更新 status_id12 的所有行。

您需要添加 AND 条件来标识要更新的唯一行标识符。

关于php - 需要更新数据库中的一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34721715/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com