Php mysql更新和刷新页面
我遇到了一个问题,页面刷新速度比查询执行速度快 我使用更新查询用字段中的一些值更新数据库。我在一个按钮下得到了这个。但当我按下这个按钮(这将刷新我的网站)时,它仍然在我的字段中显示旧值 当我再次刷新页面时,它会显示我填写的值。为了更好的解释,我添加了一个图像 我立即在php代码中执行查询以获取表的信息:Php mysql更新和刷新页面,php,html,mysql,Php,Html,Mysql,我遇到了一个问题,页面刷新速度比查询执行速度快 我使用更新查询用字段中的一些值更新数据库。我在一个按钮下得到了这个。但当我按下这个按钮(这将刷新我的网站)时,它仍然在我的字段中显示旧值 当我再次刷新页面时,它会显示我填写的值。为了更好的解释,我添加了一个图像 我立即在php代码中执行查询以获取表的信息: $dates = getStartAndEndTime($currentWeek, $currentYear); $Query = "SELECT * FROM Productielijn1
$dates = getStartAndEndTime($currentWeek, $currentYear);
$Query = "SELECT * FROM Productielijn1 WHERE Datum BETWEEN ? AND ? ORDER BY Datum";
if($stmt = $dbCon->prepare($Query))
{
$stmt->bind_param('ss', $dates[0], $dates[1]);
if( $stmt->execute() === TRUE)
{
$Result = $stmt->get_result();
while($row = $Result->fetch_assoc())
{
$ArrayGegevens[] = $row;
}
}
}
当我按下按钮时,我会这样做:
//First edit button
if(isset($_POST['btnEdit1']))
{
$date = strip_tags($_POST['Datum1']);
$tempo = strip_tags($_POST['Tempo1']);
$proddescrip = strip_tags($_POST['Productomshrijving1']);
$amount = strip_tags($_POST['Aantal1']);
$displayDate = date("d-m-Y", strtotime($date));
$Query = "UPDATE productielijn1 SET Tempo= ?, Productomschrijving= ?, Aantal= ? WHERE Datum = ?";
if($stmt = $dbCon->prepare($Query))
{
$stmt->bind_param('isis', $tempo, $proddescrip, $amount, $date);
if( $stmt->execute() === TRUE)
{
$Message2 = "De waardes van " . $displayDate ." zijn aangepast.";
$MessageColor2 = "green";
}
else
{
$Message2 = "Het aanpassen is niet gelukt!";
$MessageColor2 = "red";
}
}
}
我创建的表格如下所示:
<table class ="PlanningTable">
<tr>
<th colspan='5'>Planning aanpassen voor huidige week (<?php echo $currentWeek ?>)</th>
</tr>
<tr>
<th>Datum</th>
<th>Tempo</th>
<th>Product omschrijving</th>
<th>Aantal/Volume</th>
<th>Aanpassen</th>
</tr>
<?php
if (count($ArrayGegevens) != 0)
{
for ($k = 1; $k < count($ArrayGegevens)+1; $k++)
{
echo "<tr>";
echo "<td><input type='date' name='Datum".$k."' value='".$ArrayGegevens[$k-1]['Datum']."'readonly></td>";
echo "<td><input type='number' name='Tempo".$k."' value= '" .$ArrayGegevens[$k-1]['Tempo'] . "'></td>";
echo "<td><input type='text' name='Productomshrijving".$k."' value ='". $ArrayGegevens[$k-1]['Productomschrijving'] ."'></td>";
echo "<td><input type='number' name='Aantal".$k."' value='" . $ArrayGegevens[$k-1]['Aantal'] . "'></td>";
echo "<td><input type='submit' name='btnEdit".$k."' value='Aanpassen'></td>";
echo "</tr>";
}
}
else
{
echo"<tr>";
echo "<td colspan='5' style='color: red;'>Voor deze week is er nog geen planning!</td>";
echo "</tr>";
}
?>
<tr>
<td colspan=5><p class="Message" style='color: <?php echo $MessageColor2 ?>;'><?php echo $Message2 ?></p></td>
</tr>
</table>
规划aanpassen voor huidige周()
资料
速度
产品包装
安塔尔/体积
安帕森
那么有没有一种方法可以让它立即更新我的html值呢 将代码更改为:
<!-- language: lang-html -->
if(isset($_POST['btnEdit1']))
{
$date = strip_tags($_POST['Datum1']);
$tempo = strip_tags($_POST['Tempo1']);
$proddescrip = strip_tags($_POST['Productomshrijving1']);
$amount = strip_tags($_POST['Aantal1']);
$displayDate = date("d-m-Y", strtotime($date));
$Query = "UPDATE productielijn1 SET Tempo= ?, Productomschrijving= ?, Aantal= ? WHERE Datum = ?";
if($stmt = $dbCon->prepare($Query))
{
$stmt->bind_param('isis', $tempo, $proddescrip, $amount, $date);
if( $stmt->execute() === TRUE)
{
$Message2 = "De waardes van " . $displayDate ." zijn aangepast.";
$MessageColor2 = "green";
}
else
{
$Message2 = "Het aanpassen is niet gelukt!";
$MessageColor2 = "red";
}
}
echo "<script>
setTimeout(function(){
location.reload();
}, 300);
</script>";
}
如果(isset($_POST['btnEdit1']))
{
$date=strip_标签($_POST['Datum1']);
$tempo=strip_标签($_POST['Tempo1']);
$PRODSCRIPP=strip_标签($_POST['Productomshrijving1']);
$amount=strip_标签($_POST['Aantal1']);
$displayDate=日期(“d-m-Y”,标准时间($date));
$Query=“更新productielijn1 SET Tempo=?,Productomschrijving=?,Aantal=?其中DATAM=?”;
如果($stmt=$dbCon->prepare($Query))
{
$stmt->bind_param('isis',$tempo,$prodscriptp,$amount,$date);
如果($stmt->execute()==TRUE)
{
$Message2=“De waardes van”。$displayDate。“zijn aangepass。”;
$MessageColor2=“绿色”;
}
其他的
{
$Message2=“他是尼特·格鲁克!”;
$MessageColor2=“红色”;
}
}
回声“
setTimeout(函数(){
location.reload();
}, 300);
";
}
添加js代码。“页面刷新速度快于查询执行速度的地方”-我看不到任何重定向。你这到底是什么意思?也许吧??你在使用AJAX吗?如果是,其中一个关键是异步部分。我认为这就是问题所在,因为SELECT查询从我的数据库获取信息,但它获取我的旧信息。(即使是在我第一次执行更新查询时)。很难说您的所有代码是在同一个文件中还是在不同的文件中。使用标题而不是元刷新或js,因为我不知道刷新按钮的作用。正如@JayBlanchard提到的,这可能只是一个缓存问题。然后考虑一下,您要做的第一件事是从数据库中选择并将结果存储在数组中。然后你更新数据库亲爱的火箭科学家,我应该在从卡纳维拉尔角发射之前还是之后进行太空行走???不起作用,因为它将每隔300毫秒刷新我的页面,而且我无法在第一次编辑后填写我的信息更新数据库后,你的页面会刷新,但你看不到你所做的更改,然后必须立即进行第二次刷新,以在输入中显示更新的信息。我在我的应用程序中使用此解决方案。