Php mysql更新和刷新页面

Php mysql更新和刷新页面,php,html,mysql,Php,Html,Mysql,我遇到了一个问题,页面刷新速度比查询执行速度快 我使用更新查询用字段中的一些值更新数据库。我在一个按钮下得到了这个。但当我按下这个按钮(这将刷新我的网站)时,它仍然在我的字段中显示旧值 当我再次刷新页面时,它会显示我填写的值。为了更好的解释,我添加了一个图像 我立即在php代码中执行查询以获取表的信息: $dates = getStartAndEndTime($currentWeek, $currentYear); $Query = "SELECT * FROM Productielijn1

我遇到了一个问题,页面刷新速度比查询执行速度快

我使用更新查询用字段中的一些值更新数据库。我在一个按钮下得到了这个。但当我按下这个按钮(这将刷新我的网站)时,它仍然在我的字段中显示旧值

当我再次刷新页面时,它会显示我填写的值。为了更好的解释,我添加了一个图像

我立即在php代码中执行查询以获取表的信息:

$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毫秒刷新我的页面,而且我无法在第一次编辑后填写我的信息更新数据库后,你的页面会刷新,但你看不到你所做的更改,然后必须立即进行第二次刷新,以在输入中显示更新的信息。我在我的应用程序中使用此解决方案。