php - 值仅传递到单个数据库或条件。使困惑

标签 php mysql

我有 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"]."&nbsp;&nbsp;&nbsp;".$row["name1"]."<br />";
                echo $row["usn2"]."&nbsp;&nbsp;&nbsp;".$row["name2"]."<br />";
                echo $row["usn3"]."&nbsp;&nbsp;&nbsp;".$row["name3"]."<br />";
                echo $row["usn4"]."&nbsp;&nbsp;&nbsp;".$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"]."&nbsp;&nbsp;&nbsp;".$row["name1"]."<br />";
                echo $row["usn2"]."&nbsp;&nbsp;&nbsp;".$row["name2"]."<br />";
                echo $row["usn3"]."&nbsp;&nbsp;&nbsp;".$row["name3"]."<br />";
                echo $row["usn4"]."&nbsp;&nbsp;&nbsp;".$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"]."&nbsp;&nbsp;&nbsp;".$row["name1"]."<br />";
                echo $row["usn2"]."&nbsp;&nbsp;&nbsp;".$row["name2"]."<br />";
                echo $row["usn3"]."&nbsp;&nbsp;&nbsp;".$row["name3"]."<br />";
                echo $row["usn4"]."&nbsp;&nbsp;&nbsp;".$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"]."&nbsp;&nbsp;&nbsp;".$row["name1"]."<br />";
                echo $row["usn2"]."&nbsp;&nbsp;&nbsp;".$row["name2"]."<br />";
                echo $row["usn3"]."&nbsp;&nbsp;&nbsp;".$row["name3"]."<br />";
                echo $row["usn4"]."&nbsp;&nbsp;&nbsp;".$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/

相关文章:

php - Zend Framework 2 模型中的转换器

php - 试图调用方法 : undefined function error

php - 如何使用 jquery ajax .submit 表单而不发布 post

mysql - 如何在 MySQL 中获取多个最大记录

python - 为什么我不能为 python 使用已安装的模块?

Go 中的 php json_encode

MySQL select with IN (include) and NOT IN (exclude)

mysql - 我应该使用 DISTINCT 吗?

php - 在 php mysql 中使用带有 max 的 innerjoin 时不列出用户

php - 使用这样的表达式而不是使用普通表达式的好处