基于用户信息获取用户数据


Getting User Data Based on Their Information

第一个字段是web访问者在"cardname"点击提交中输入的位置,然后被引导到另一个页面(dashboard2.php),在那里只显示他或她的内容。

Enter your cardname to access your content<br>
<form action='dashboard2.php'>
<input type='text' name='cardname'/><input type='submit' value='retrieve card'/>
</form>
</body>

下面的页面是用户在第一个输入字段中输入"cardname"后指向的页面。但是,我只希望第二页显示基于输入的卡名的信息。现在,它显示了表格中的每一个卡片名称、问题和答案。

    <?php
$servername = "localhost";
$username = "root";
$password = "root";
$dbname = "flashcards";
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
     die("Connection failed: " . $conn->connect_error);
} 
$sql = "SELECT cardname, questionone, answerone FROM cards";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
     // output data of each row
     while($row = $result->fetch_assoc()) {
         echo "<br> ". $row["cardname"]. "  ". $row["questionone"]. " " . $row["answerswerone"] . "<br>";
     }
} else {
     echo "0 results";
}
$conn->close();
?>

您必须修改查询才能接受WHERE子句。例如,WHERE cardname = mysqli_real_escape_string($conn, $_GET['cardname'])除非指定method="post",否则任何表单的默认方法都是GET。)。

您应该了解为MySQLi准备的语句,也许可以考虑使用PDO,这真的不难。

您似乎想要执行搜索而不是显示所有记录。通常,搜索会返回与某个字段匹配的记录,除非在搜索中输入了特定的ID或唯一值。我不确定是不是这样。

我把这个组合起来有点快,但希望它能有所帮助。。。

<?php
$servername = "localhost";
$username = "root";
$password = "root";
$dbname = "flashcards";
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// escape the string to avoid SQL injections
$searchEscaped = $conn->real_escape_string($_POST['cardname']);
// Check connection
if ($conn->connect_error) {
     die("Connection failed: " . $conn->connect_error);
} 
$sql = "SELECT cardname, questionone, answerone FROM cards WHERE cardname = '$searchEscaped' ";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
    if($result->num_rows == 1){
        // only one result found, show just that
        $row = $result->fetch_assoc()
        echo "<br> ". $row["cardname"]. "  ". $row["questionone"]. " " . $row["answerswerone"] . "<br>"; 
    }else{
        // multiple rows found, show them all
        while($row = $result->fetch_assoc()) {
             echo "<br> ". $row["cardname"]. "  ". $row["questionone"]. " " . $row["answerswerone"] . "<br>";
         }
    }
} else {
     echo "0 results";
}
$conn->close();
?>