我在使用elseif MySQL查询时遇到一点麻烦,我根据在表单中做出的选择来搜索我的数据库。
它没有返回错误,但它没有返回它应该返回的结果,所以我假设第二个elseif查询根本没有运行。第一个是有效的(当然是正确的选择)。
有谁可以指出我做错了什么?
<?php
$jobtype = $_POST['jobtype'];
$country = $_POST['countries'];
$city = $_POST['cities'];
if ($jobtype=="All Jobs" && (isset($_POST['countries'])) && $city !="Whole Region")
{
$result = mysql_query(
"SELECT *
FROM jobinformation
WHERE country = '$country' AND county = '$city'
ORDER BY job_id DESC");
if (!$result)
{
die('Invalid query: ' . mysql_error());
}
$rows=mysql_num_rows($result);
for ($j = 0; $j < $rows ; ++$j)
{
$row = mysql_fetch_row($result);
echo 'jobtitle: ' . $row[3] .'<br />';
echo 'Company: ' . $row[2] .'<br />';
}
}
elseif ($jobtype=="All Jobs" && (isset($_POST['countries'])) && $jobtype=="Whole Region")
{
$result = mysql_query(
"SELECT *
FROM jobinformation
WHERE country = '$country'
ORDER BY job_id DESC");
etc etc (same as above)
}
答案 0 :(得分:1)
看起来像这样:
elseif ($jobtype=="All Jobs" && (isset($_POST['countries'])) && $jobtype=="Whole Region")
应该是这样的:
elseif ($jobtype=="All Jobs" && (isset($_POST['countries'])) && $city=="Whole Region")
如果您在if
中对$jobtype
进行核对,则会检查其中的$city
此外,如果if语句的前两部分相同,则此处不需要elseif
,您只需使用其他
答案 1 :(得分:1)
尽管不知道您有什么错误,但请允许我更正您的代码。
<?php
$jobtype = $_POST['jobtype'];
$country = $_POST['countries'];
$city = $_POST['cities'];
if ($jobtype=="All Jobs" && (isset($_POST['countries'])) && $city !="Whole Region") {
$sql = "SELECT *
FROM jobinformation
WHERE country = '" . mysql_real_escape_string($country) . "' AND county = '" . mysql_real_escape_string($city) . "'
ORDER BY job_id DESC";
} elseif ($jobtype=="All Jobs" && (isset($_POST['countries'])) && $jobtype=="Whole Region") {
$sql = "SELECT *
FROM jobinformation
WHERE country = '" . mysql_real_escape_string($country) . "'
ORDER BY job_id DESC");
}
$result = mysql_query($sql) or die('Invalid query: ' . mysql_error());
while($row = mysql_fetch_assoc($result)) {
echo "jobtitle: {$row['jobtitle']}<br />";
echo "Company: {$row['company']<br />";
}
这是构建代码的更好方法。
答案 2 :(得分:0)
在一个地方你正在检查$jobtype
是否为“整个地区”,另一个你正在检查$city
是否为“整个地区” - 你是否已将变量混淆了?