我有 2 张 table ,即。我的数据库 fyproject 中的 y2011_2012 和 y2012_2013...
现在我用以下代码创建了一个搜索框:
<form action="includes/usn_search.php" method="post">
<input type="search" id="usn_search" name="usn_search">
</form>
现在我尝试使用 php 使用此代码从两个表中检索数据:
//1.Create a database connection
$connection = mysql_connect("127.0.0.1","root",DB_PASS);
if(!$connection)
{
die("Database connection failed: " . mysql_error());
}
//2.Select a database to use
$db_select = mysql_select_db("fyproject",$connection);
if(!$db_select){
die("Database selection failed: " . mysql_error());
}
//load
$usn = strtoupper($_POST["usn_search"]);
if($usn == ($result1= mysql_query("SELECT usn1 OR usn2 OR usn3 OR usn4 FROM y2011_2012 WHERE usn1=\"$usn\" OR usn2=\"$usn\" OR usn3=\"$usn\" OR usn4=\"$usn\"", $connection)))
{
$result1 = mysql_query("SELECT * FROM y2011_2012 WHERE usn1=\"$usn\" OR usn2=\"$usn\" OR usn3=\"$usn\" OR usn4=\"$usn\"", $connection);
if(!$result1){
die("Database query failed: ". mysql_error());
}
while($row = mysql_fetch_array($result1)){
echo "<head><title>".$row["filename"]."</title></head>";
echo "<body>";
echo "<h2><center>".$row["filename"]."</center></h2>";
echo $row["usn1"]." ".$row["name1"]."<br />";
echo $row["usn2"]." ".$row["name2"]."<br />";
echo $row["usn3"]." ".$row["name3"]."<br />";
echo $row["usn4"]." ".$row["name4"]."<br />";
echo "<h3><center>"."Abstract"."</center></h3>"."<br />";
echo $row["content"]."<br />";
echo "</body>";
}
}
else if($usn == ($result2= mysql_query("SELECT usn1 OR usn2 OR usn3 OR usn4 FROM y2012_2013 WHERE usn1=\"$usn\" OR usn2=\"$usn\" OR usn3=\"$usn\" OR usn4=\"$usn\"", $connection)))
{
$result2 = mysql_query("SELECT * FROM y2012_2013 WHERE usn1=\"$usn\" OR usn2=\"$usn\" OR usn3=\"$usn\" OR usn4=\"$usn\"", $connection);
if(!$result2){
die("Database query failed: ". mysql_error());
}
while($row = mysql_fetch_array($result2))
{
echo "<head><title>".$row["filename"]."</title></head>";
echo "<body>";
echo "<h2><center>".$row["filename"]."</center></h2>";
echo $row["usn1"]." ".$row["name1"]."<br />";
echo $row["usn2"]." ".$row["name2"]."<br />";
echo $row["usn3"]." ".$row["name3"]."<br />";
echo $row["usn4"]." ".$row["name4"]."<br />";
echo "<h3><center>"."Abstract"."</center></h3>"."<br />";
echo $row["content"]."<br />";
echo "</body>";
}
}
else {
echo "Not found!";
}
现在,每当我尝试输入第一个表中存在的 USN 时,我都会无缝地获得所需的输出..但是假设如果我将第二个表中存在的值放入其中,我会得到一个空白页..不来自 php 的错误页面或最后一个回显显示“未找到”。我猜该值不会传递给第二个 else if 条件,但我不知道为什么?请帮忙
最佳答案
我真的不明白 if 子句在你的代码中是如何工作的。在 if 子句中,您将一个变量与一个永远不会相同的关联数组进行比较。所以从技术上来说,它不应该起作用。我对你的代码做了一些修改,你可以尝试运行这个
<?php
//1.Create a database connection
$connection = mysql_connect("127.0.0.1","root",DB_PASS);
if(!$connection){
die("Database connection failed: " . mysql_error());
}
//2.Select a database to use
$db_select = mysql_select_db("fyproject",$connection);
if(!$db_select){
die("Database selection failed: " . mysql_error());
}
//load
$usn = strtoupper(mysql_real_escape_string($_POST["usn_search"]));
$result1 = mysql_query("SELECT * FROM y2011_2012 WHERE usn1=\"$usn\" OR usn2=\"$usn\" OR usn3=\"$usn\" OR usn4=\"$usn\"", $connection);
$result2 = mysql_query("SELECT * FROM y2012_2013 WHERE usn1=\"$usn\" OR usn2=\"$usn\" OR usn3=\"$usn\" OR usn4=\"$usn\"", $connection);
if(mysql_num_rows($result1)>0){
while($row = mysql_fetch_array($result1)){
echo "<head><title>".$row["filename"]."</title></head>";
echo "<body>";
echo "<h2><center>".$row["filename"]."</center></h2>";
echo $row["usn1"]." ".$row["name1"]."<br />";
echo $row["usn2"]." ".$row["name2"]."<br />";
echo $row["usn3"]." ".$row["name3"]."<br />";
echo $row["usn4"]." ".$row["name4"]."<br />";
echo "<h3><center>"."Abstract"."</center></h3>"."<br />";
echo $row["content"]."<br />";
echo "</body>";
}
}
else if(mysql_num_rows($result2)>0){
while($row = mysql_fetch_array($result2)){
echo "<head><title>".$row["filename"]."</title></head>";
echo "<body>";
echo "<h2><center>".$row["filename"]."</center></h2>";
echo $row["usn1"]." ".$row["name1"]."<br />";
echo $row["usn2"]." ".$row["name2"]."<br />";
echo $row["usn3"]." ".$row["name3"]."<br />";
echo $row["usn4"]." ".$row["name4"]."<br />";
echo "<h3><center>"."Abstract"."</center></h3>"."<br />";
echo $row["content"]."<br />";
echo "</body>";
}
}else {
echo "Not found!";
}
?>
关于php - 值仅传递到单个数据库或条件。使困惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21837633/