[英]Waiting for UPDATE to finish before refreshing page
我有一個HTML表單,用於更新MySQL中的表。 不幸的是,我的頁面重新加載了來自MySQL的預更新數據。 有沒有辦法告訴PHP中的mysqli在重新加載(並再次執行SELECT)頁面之前等待UPDATE完成?
謝謝!
(編輯:添加部分代碼)
$mysql = mysqli_connect($host,$username,$password,$dbname);
$series_mysql = $mysql->query("SELECT Name, Path, Language FROM subtitles_config");
$series_list = array();
while($serie = mysqli_fetch_array($series_mysql))
{
array_push($series_list,array($serie["Name"],$serie["Path"],$serie["Language"]));
}
sort($series_list);
if ($series_list != Null)
{
echo "<form action='?' method='post'><table><tr><th>Nom</th><th>Sous-titres</th></tr>\n\r";
foreach ($series_list as $serie)
{
echo "<tr><td><input type=text size=40 readonly name='row[]' value='" . htmlspecialchars($serie[0], ENT_QUOTES) . "'><input type='hidden' name='row[]' value='" . htmlspecialchars($serie[1], ENT_QUOTES) . "'</td><td>";?>
<select name='row[]'>
<option value="aucun"<?php if ($serie[2] == "aucun"): ?> selected="selected"<?php endif; ?>>aucun</option>
<option value="fr"<?php if ($serie[2] == "fr"): ?> selected="selected"<?php endif; ?>>fr</option>
<option value="en"<?php if ($serie[2] == "en"): ?> selected="selected"<?php endif; ?>>en</option>
<option value="fr,en"<?php if ($serie[2] == "fr,en"): ?> selected="selected"<?php endif; ?>>fr,en</option>
</select><?php
echo "</td></tr>\n\r";
}
echo "</table><input type='submit' name='update' value='Mettre à jour' /></form>\n\r";
}
if ( isset( $_POST['update']))
{
foreach (array_chunk($_POST['row'],3) as $serie)
{
$mysql->query("UPDATE subtitles_config SET Language='" . $serie[2] . "' WHERE Path='" . addslashes($serie[1]) . "'");
}
}
<?php
$mysql = mysqli_connect($host,$username,$password,$dbname);
if ( isset( $_POST['update'])) {
foreach (array_chunk($_POST['row'],3) as $serie) {
$mysql->query("UPDATE subtitles_config SET Language='" . $serie[2] . "' WHERE Path='" . addslashes($serie[1]) . "'");
}
}
$series_mysql = $mysql->query("SELECT Name, Path, Language FROM subtitles_config");
$series_list = array();
while($serie = mysqli_fetch_array($series_mysql)) {
array_push($series_list,array($serie["Name"],$serie["Path"],$serie["Language"]));
}
sort($series_list);
if ($series_list != Null) {
echo "<form action='?' method='post'><table><tr><th>Nom</th><th>Sous-titres</th></tr>\n\r";
foreach ($series_list as $serie) {
echo "<tr><td><input type=text size=40 readonly name='row[]' value='" . htmlspecialchars($serie[0], ENT_QUOTES) . "'><input type='hidden' name='row[]' value='" . htmlspecialchars($serie[1], ENT_QUOTES) . "'</td><td>";
?>
<select name='row[]'>
<option value="aucun"<?php if ($serie[2] == "aucun"): ?> selected="selected"<?php endif; ?>>aucun</option>
<option value="fr"<?php if ($serie[2] == "fr"): ?> selected="selected"<?php endif; ?>>fr</option>
<option value="en"<?php if ($serie[2] == "en"): ?> selected="selected"<?php endif; ?>>en</option>
<option value="fr,en"<?php if ($serie[2] == "fr,en"): ?> selected="selected"<?php endif; ?>>fr,en</option>
</select>
<?php
echo "</td></tr>\n\r";
}
echo "</table><input type='submit' name='update' value='Mettre à jour' /></form>\n\r";
}
試試看
您的問題是,在提取字段數據之后,您正在更新所有內容。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.