首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >elseif查询问题

elseif查询问题
EN

Stack Overflow用户
提问于 2011-07-27 21:25:30
回答 3查看 296关注 0票数 0

我在使用一个elseif MySQL查询时遇到了一些问题,我使用它来搜索我的数据库,这取决于表单中所做的选择。

它没有返回错误,但它没有返回它应该返回的结果,所以我假设第二个elseif查询根本没有运行。第一个是有效的(当然是在做出正确选择的情况下)。

谁能指出我做错了什么?

代码语言:javascript
复制
<?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)

}
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-07-27 21:28:15

看起来像这样:

代码语言:javascript
复制
elseif ($jobtype=="All Jobs" && (isset($_POST['countries'])) && $jobtype=="Whole Region")

应该是这样:

代码语言:javascript
复制
elseif ($jobtype=="All Jobs" && (isset($_POST['countries'])) && $city=="Whole Region")

当您在if中对照$jobtype进行检查时,您正在与else if中的$city进行对比。

另外,如果if语句的前两部分是相同的,那么在这里不需要elseif,只需使用else

票数 1
EN

Stack Overflow用户

发布于 2011-07-27 21:33:16

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

代码语言:javascript
复制
<?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 />";
}

这是一种更好的构建代码结构的方法。

票数 1
EN

Stack Overflow用户

发布于 2011-07-27 21:30:23

在一个地方,你检查“整个区域”的$jobtype,在另一个地方,你检查“整个区域”的$city -你把变量弄混了吗?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6845073

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档