如何使用条件语句将两个搜索结果语句作为一个语句


How can I put two search results statement as one using a conditional statement?

我需要这两个单独的语句成为一个使用条件ifelseif的语句,甚至是任何其他条件语句,它们将执行两个查询中的任何一个并呈现结果。

<?php
require ($_SERVER["DOCUMENT_ROOT"]."/medikconfig/db_medicpharm.php");
$connection = @mysql_connect($db_host, $db_user, $db_password) or die("error connecting");
mysql_select_db($db_name, $connection);
$doctor     = $_GET["txt_doctor"];
$len        = strlen($doctor);
$states     = $_GET["txt_state"];
$specialize = $_GET["txt_specialize"];
if ($len > 0) 
{
    $email    = $_GET["txt_email"];
    $hospital = $_GET["txt_hospital"];
    $state    = $_GET["txt_state"];
    $org      = $_GET["txt_org"];
    $link     = $_GET["txt_web"];
    $query = "INSERT INTO doctor_locator (autoID, `Name of Doctor`, `Email`, `Hospital of Practise`,`State`,`Specialization`, `Professional Organization`, `webpage`)
                    VALUES (NULL,'$doctor','$email','$hospital','$state','$specialize','$org', '$link')";
    mysql_query($query, $connection) or die (mysql_error());
}
?>

第一条语句

<?php
$specialize = $_GET["txt_specialize"]; 
$states     = $_GET["txt_state"]; 
$link       = $_GET["txt_web"];

$sql = "SELECT `autoID`, `Name of Doctor`, `Email`, `Hospital of Practise`, `State`, 
               `Specialization`, `Professional Organization`, `webpage` 
        FROM   `doctor_locator`
        WHERE   state = '$states' AND 
                specialization = '$specialize' ";
$retval = mysql_query( $sql);
if (!$retval) {
    die('Could not get data: ' . mysql_error());
}
while($row = mysql_fetch_array($retval))
{
    echo "{$row['autoID']}.  ".
    "Name of Doctor: <a href = '"{$row['webpage']}'">{$row['Name of Doctor']} </a><br>"
    ."Email: {$row['Email']} <br>". 
    "Hospital of Practise: {$row['Hospital of Practise']}
    <br>". 
    "State:  {$row['State']} <br>" . 
    "Specialization: {$row['Specialization']} <br> ";
}
mysql_free_result($retval);
echo "Fetched data successfully'n.<br/>"; 
echo "<a href=home.php>go back to homepage</a>";
mysql_close($connection);
?>

第二条语句

<?
$specialize = $_GET["txt_specialize"]; 
$states     = $_GET["txt_state"]; 
$link       = $_GET["txt_web"];

$sqldoc = "SELECT `autoID`, `Name of Doctor`, `Email`, `Hospital of Practise`, `State`,
                  `Specialization`, `Professional Organization`, `webpage` 
            FROM  `doctor_locator`
            WHERE `name of doctor` LIKE 'Dr%' AND state = '$states'";

$retvaldoc = mysql_query( $sqldoc);
if (!$retvaldoc)
{
    die('Could not get data: ' . mysql_error());
}
while($row = mysql_fetch_array($retvaldoc))
{
    echo "{$row['autoID']}.  "."Name of Doctor: <a href = '"{$row['webpage']}'">{$row['Name of Doctor']} </a><br>"
    ."Email: {$row['Email']} <br>". "Hospital of Practise: {$row['Hospital of Practise']}
    <br>". "State:  {$row['State']} <br>" . "Specialization: {$row['Specialization']} <br> ";
}
mysql_free_result($retvaldoc);
echo "Fetched data successfully'n.<br/>"; 
echo "<a href=home.php>go back to homepage</a>";
mysql_close($connection);
?>

差异为

$doctor = $_GET["txt_doctor"];

你可以先检查$_GET["txt_doctor"];,然后用下面的代码

if(isset( $_GET["txt_doctor"]))
{
  // second statement
}else
{
// first statement
}

你的问题很难理解格式化您的代码帮助我进一步理解了您的问题,不过。。。

第一次查询

    SELECT `autoID`, `Name of Doctor`, `Email`, `Hospital of Practise`, `State`, 
           `Specialization`, `Professional Organization`, `webpage` 
    FROM   `doctor_locator`
    WHERE   state = '$states' AND 
            specialization = '$specialize'

第二次查询

       SELECT `autoID`, `Name of Doctor`, `Email`, `Hospital of Practise`, `State`,
              `Specialization`, `Professional Organization`, `webpage` 
        FROM  `doctor_locator`
        WHERE `name of doctor` LIKE 'Dr%' AND state = '$states'

这个查询只过滤两件事。其中,医生的姓名以Dr开头,对于$states。这在我看来是错误的……但这是你提供的代码。似乎应该有一个你要过滤的名字。

组合

$sql = "SELECT `autoID`, `Name of Doctor`, `Email`,
               `Hospital of Practise`, `State`, 
               `Specialization`, `Professional Organization`, `webpage` 
        FROM   `doctor_locator`
        WHERE   state = '$states' AND 
                specialization = '$specialize' AND
               `name of doctor` LIKE 'Dr%' 

$states过滤器在那里两次。

问题-您似乎并不真正希望这两个查询连接起来,而是希望它们根据具体情况分别执行。我需要知道是什么决定了运行哪个查询。

  If ($query = "run query 1")  { // run query 1... } 
                          else { // run query 2... }

你在最初的帖子中没有提供足够的信息让我写下这个逻辑。