第一个字段是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();
?>