我已经四处寻找并找不到类似的东西,但听起来应该很容易......
我有一个搜索查询,搜索特定的用户ID并显示该用户的信息。但是,我有一个字段(让我们称之为"最喜欢的颜色"对于这个例子)需要经常手动更新。所以,我想通过userID搜索,显示结果,以某种方式重新使用原始用户ID,并更新"喜欢的颜色"通过用户输入。我无法弄清楚的部分是如何存储/重新使用userID。
我能让它发挥作用的唯一方法是 - > 搜索用户ID,显示结果,并使用原始用户ID和#34;喜欢的颜色"填充两个新的文本表单字段。要通过新的UPDATE查询再次提交。但我不希望userID成为文本表单字段,我只想存储变量再次使用它。 那有意义吗? =)
以下是我当前代码的示例。顺便说一句,它现在以这种方式100%工作,只需要弄清楚如何存储变量而不是在我提交UPDATE查询的文本框中再次使用它。
<div class="searchBox">
<form method="POST" name="search" action="filter-update.php" class="form-wrapper cf">
<input type="text" name="querySearch" placeholder="User ID" required>
<button type="submit">Search</button>
</form>
</div>
<div id="results">
<?php
if (isset($_POST['querySearch'])){
$query = $_POST['querySearch'];
$min_length = 8;
if(strlen($query) >= $min_length){
$query = htmlspecialchars($query);
$query = mysqli_real_escape_string($conn, $query);
$sql = "SELECT * FROM sites WHERE userID = $query";
$raw_results = mysqli_query ($conn, $sql) or die ('error getting data from database');
if(mysqli_num_rows($raw_results) > 0){
while ($results = mysqli_fetch_array($raw_results)) {
echo "<div class='title'>User ID:</div><div class='info'>".$results['userID']."</div>";
echo "<div class='title'>Name:</div><div class='info'>".$results['name']."</div>";
echo "<div class='title'>Fav Color:</div><div class='info'>".$results['favColor']."</div>";
$userID = $results['userID'];
}
}
else { // if there is no matching rows do following
echo "No results";
}
}
else{ // if query length is less than minimum
echo "<br>Minimum length is ".$min_length;
}
}
?>
</div>
<div class="searchBox">
<form method="POST" name="filterUpdate" action="filter-update.php" class="form-wrapper cf">
<input type="text" name="UserID" value="<?php echo $userID;?>" required><br><br><br>
<input type="text" name="favColor" placeholder="New favColor here..." required>
<button type="submit">Update</button>
</form>
</div>
<div id="results">
<?php
if (isset($_POST['filterUpdate'])){
$queryFilter = $_POST['filterUpdate'];
$userID = $_POST['userID'];
$min_length = 1;
if(strlen($queryFilter) >= $min_length){
$queryFilter = htmlspecialchars($queryFilter);
$userID = htmlspecialchars($userID);
$queryFilter = mysqli_real_escape_string($conn, $queryFilter);
$userID = mysqli_real_escape_string($conn, $userID);
$sql = "UPDATE sites SET favColor = '$queryFilter' WHERE userID = '$userID'";
$raw_results = mysqli_query ($conn, $sql) or die ('error getting data from database');
}
else{ // if query length is less than minimum
echo "<br>Minimum length is ".$min_length;
}
}
?>
</div>
答案 0 :(得分:0)
您可以尝试以下任何一项:
隐藏字段:
<input type="hidden" name="UserID" value="<?php echo $userID;?>">
<强>会话强>
$_SESSION['userID'] = $userID;
不知道这是否有效,但您可以将$userID
置于所有代码之上(如全局变量)。