Php elseif mysql查询问题

Php elseif mysql查询问题,php,if-statement,Php,If Statement,我在使用elseif-MySQL查询搜索数据库时遇到了一些问题,这取决于表单中的选择 它没有返回错误,但没有返回它应该返回的结果,因此我假设第二个elseif查询根本没有运行。第一种方法有效(当然,当做出正确的选择时) 有人能指出我做错了什么吗 <?php $jobtype = $_POST['jobtype']; $country = $_POST['countries']; $city = $_POST['cities']; if ($jobtype=="All Jobs" &

我在使用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)

}
看起来像这样:

elseif ($jobtype=="All Jobs" && (isset($_POST['countries'])) && $jobtype=="Whole Region")
应该是这样的:

elseif ($jobtype=="All Jobs" && (isset($_POST['countries'])) && $city=="Whole Region")
当您对照if中的
$city
进行检查时,您将对照else if中的
$jobtype
进行检查


另外,如果if语句的前两部分相同,您不需要使用elseif
,您只需在一个位置使用else

,您正在为“整个地区”检查
$jobtype
,而在另一个位置您正在为“整个地区”检查
$city
-您是否混淆了变量?

尽管不知道您有什么错误,请允许我更正您的代码

<?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 />";
}

非常感谢Ariel,我还没来得及摆脱字符串,我只是想先让所有东西都工作起来。再次感谢你,DanNote,我已经改变了很多,不仅仅是转义字符串。@locirzak,谢谢你,我愚蠢的疏忽-谢谢你帮我清理了眼睛!丹