我需要这两个单独的语句成为一个使用条件if
或elseif
的语句,甚至是任何其他条件语句,它们将执行两个查询中的任何一个并呈现结果。
<?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... }
你在最初的帖子中没有提供足够的信息让我写下这个逻辑。