在新查询中使用php / MySQL结果

时间:2017-03-28 04:12:32

标签: php mysql

我已经四处寻找并找不到类似的东西,但听起来应该很容易......

我有一个搜索查询,搜索特定的用户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>

1 个答案:

答案 0 :(得分:0)

您可以尝试以下任何一项:

隐藏字段:

<input type="hidden" name="UserID" value="<?php echo $userID;?>">

<强>会话

$_SESSION['userID'] = $userID;

不知道这是否有效,但您可以将$userID置于所有代码之上(如全局变量)。