gpt4 book ai didi

php - 使用 PHP 和 HTML5 从 SQL 表检索数据

转载 作者:行者123 更新时间:2023-11-30 00:20:32 25 4
gpt4 key购买 nike

我制作了一个玩具库网站,使用 HTML5、CSS3 作为主页,并使用 SQL 来维护服务器上的数据库。主页上有两种表格。一种是将可用的玩具出租,当添加数据时,实际数据将添加到服务器上的 SQL 数据库中。问题是当我需要从 SQL 获取数据时,表单上有四个下拉选项。城市、玩具类型、年龄组和可用性。用户可以选择 4 个选项的任意组合。如果匹配的玩具可用,则应显示数据。

我有以下代码

try
{
$dbh = new PDO("mysql:host=localhost; dbname=***", "***", "***");
}
catch (Exception $e)
{
die('<p style="color:red">Could not connect to DB: ' . $e->getMessage() . '</p></body></html>');
}

if (isset($_POST["ownercity"]))
{
$city = $_POST["ownercity"]; //Asker's preferable city
$command = "SELECT * FROM Toys WHERE City=?";
$stmt = $dbh->prepare($command);
$stmt->execute(array($city));

if (isset($_POST["ownertoytype"]))
{
$type = $_POST["ownertoytype"]; //Asker's preferable toy type
$command = "SELECT * FROM Toys WHERE City=? AND Type=?";
$stmt = $dbh->prepare($command);
$stmt->execute(array($city,$type));

if (isset($_POST["agegroup"]))
{
$goodage = $_POST["agegroup"]; //Asker's age group preference
$command = "SELECT * FROM Toys WHERE City=? AND Type=? AND Agegroup=?";
$stmt = $dbh->prepare($command);
$stmt->execute(array($city,$type,$goodage));

if (isset($_POST["ownerweek"]))
{
$availability = $_POST["ownerweek"];//Asker's preference for availability
$command = "SELECT * FROM Toys WHERE City=? AND Type=? AND Agegroup=? AND Availability=?";
$stmt = $dbh->prepare($command);
$stmt->execute(array($city,$type,$goodage,$availability));
}
}
}
}


$row1 = $stmt->fetch();
if($row1)
{
while($row1 = $stmt->fetch())
{
echo "<h2 id='general'>"."Congratulations! Matching toys are available, Contact owners directly!"."</h2>";
echo "<table class='toy' id='available'><tr><th>City</th><th>Type</th>
<th>Age Group</th><th>Name</th><th>Email</th><th>Phone</th>
</tr>";
echo "<tr><td>".($row1['City'])."</td>";
echo "<td>".($row1['Type'])."</td>";
echo "<td>".($row1['Agegroup'])."</td>";
echo "<td><b>".($row1['Name'])."</b></td>";
echo "<td><b>".($row1['Email'])."</b></td>";
echo "<td><b>".($row1['Phone'])."</b></td></tr>";
echo "</table>";
}
}
else
{
echo "<h2 id='general'>"."Sorry! No matching toys are available, please try again later"."</h2>";
}

现在无论设置什么选择,即使有,也显示没有匹配的玩具可用。

我的代码有什么问题?

谢谢

最佳答案

首先,正如 Ollie 所说,在查询中您必须使用 ANDOR 而不是 ,。代码本身也有问题。这些字段将始终被设置,因此您应该检查 if 语句中它们是否为空。

if (isset($_POST['fieldname']) && trim($_POST['fieldname']))

关于php - 使用 PHP 和 HTML5 从 SQL 表检索数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23280788/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com