脚本:
<?php
include("connect.php");
?>
<?php
/*
* SELECT THE ROW BY THE "THREAD_ID"
*/
$tqs = "SELECT * FROM `thread` WHERE `id` = '" . $_GET['thread_id'] . "'";
$tqr = mysqli_query($dbc, $tqs) or die(mysqli_error($dbc));
$row = mysqli_fetch_assoc($tqr);
?>
<?php
/*
* FETCH HASHTAG NAMES
* PRINT HASHTAG NAMES INSIDE THE INPUT FIELDS
*/
// Store the hashtag ID numbers inside an array.
$explode_hashtags = explode(", ", $row['hashtag_id']);
// Fetch the hashtag names from the table.
// And store the hashtag names inside the array "$fetch_array_hashtags".
$fetch_array_hashtags = array();
for($i = 0; $i < count($explode_hashtags); $i++){
$tqs_hashtags = "SELECT `hashtag` FROM `hashtags` WHERE `id` = '" . $explode_hashtags[$i] . "'";
$tqr_hashtags = mysqli_query($dbc, $tqs_hashtags) or die(mysqli_error($dbc));
$row_hashtags = mysqli_fetch_array($tqr_hashtags);
$fetch_array_hashtags[] = $row_hashtags['hashtag'];
}
?>
<?php
echo "<form method='POST' action='" . $_SERVER['PHP_SELF'] . "'>";
echo "<input type='hidden' name='thread_id' value='" . $_GET['thread_id'] . "' />";
for ($i = 0; $i < count($fetch_array_hashtags); $i++) {
echo "<input type='checkbox' name='hashtag_modify_checkbox[]' value='" . $explode_hashtags[$i] . "' />";
echo "Modify";
echo "<input type='text' name='hashtag[]' value='" . $fetch_array_hashtags[$i] . "' />";
}
echo "<input type='submit' name='submit' />";
echo "</form>";
?>
<?php
if(isset($_POST['submit'])){
$tqs = "SELECT `hashtag_id` FROM `thread` WHERE `id` = '" . $_POST['thread_id'] . "'";
$tqr = mysqli_query($dbc, $tqs) or die(mysqli_error($dbc));
$row = mysqli_fetch_assoc($tqr);
// Store the hashtag ID numbers inside an array.
$explode_hashtags = explode(", ", $row['hashtag_id']);
// Store the hashtag names inside an array.
$hashtags = array();
for($i = 0; $i < count($_POST['hashtag']); $i++) {
if (!empty($_POST['hashtag'][$i])) {
$hashtags[] = $_POST['hashtag'][$i];
}
}
for($i = 0; $i < count($explode_hashtags); $i++){
$tqs_hashtags_update = "UPDATE `hashtags` SET `hashtag` = '" . $hashtags[$i] . "' WHERE `id` = '" . $explode_hashtags[$i] . "'";
//$tqs_hashtags_update = "UPDATE `hashtags` SET `hashtag` = '#blue_topy' WHERE `id` = '116'";
$tqr_hashtags_update = mysqli_query($dbc, $tqs_hashtags_update) or die(mysqli_error($dbc));
}
}
?>
这适用于管理面板。
输入字段包含&#34; hashtags&#34;在它们内部,可以对它们进行编辑,并且可以更新表格。
我的问题是:当 没有编辑 对&#34; hashtags&#34;然后,SQL查询仍然更新&#34; hashtags&#34;的 所有 到桌子。 基本上,如果我只编辑 一个 &#34;#标签&#34;我只想要 一个 &#34;#标签&#34;要更新到MySQL中的表和其他&#34; hashtags&#34;不
我想过使用输入字段旁边的复选框。我可以在哪里查看&#34;修改复选框&#34;然后编辑&#34;#标签&#34;和 然后 &#34; hashtags& #34;选中 &#34;复选框&#34; 应存储在数组中,因此使用该数组可以更新表格。
我的问题是,如何在数组中只存储 那些 主题标签(来自输入字段) 选中复选框的位置 ?所以我可以使用该数组来更新表格,只需 那些 &#34; hashtags&#34;, 实际上 已经编辑过。
答案 0 :(得分:0)
将复选框结果存储为与哈希标记具有相同顺序的数组,然后为更新添加条件。
for($i = 0; $i < count($explode_hashtags); $i++){
if ($checkArray[$i] === true){
$tqs_hashtags_update = "UPDATE `hashtags` SET `hashtag` = '" . $hashtags[$i] . "' WHERE `id` = '" . $explode_hashtags[$i] . "'";
//$tqs_hashtags_update = "UPDATE `hashtags` SET `hashtag` = '#blue_topy' WHERE `id` = '116'";
$tqr_hashtags_update = mysqli_query($dbc, $tqs_hashtags_update) or die(mysqli_error($dbc));
}
}
然后它只会更新复选框已标记为
的哈希标记答案 1 :(得分:0)
我认为最好为旧主题标签添加隐藏值以检查它们是否已更改。然后只需更新已更改的主题标签。
for($i = 0; $i < count($fetch_array_hashtags); $i++) {
echo "<input type='hidden' name='hashtag_old[]' value='".$fetch_array_hashtags[$i]."' />";
echo "Modify";
echo "<input type='text' name='hashtag[]' value='".$fetch_array_hashtags[$i]."' />";
}
# ... some more code ...
$hashtags = array();
for($i = 0; $i < count($_POST['hashtag']); $i++) {
if (!empty($_POST['hashtag'][$i]) and $_POST['hashtag'][$i]<>$_POST['hashtag_old'][$i]) {
$hashtags[] = $_POST['hashtag'][$i];
}
}