еще вопрос MySQL запрос - PullRequest
       2

еще вопрос MySQL запрос

0 голосов
/ 27 июля 2011

У меня небольшие проблемы с запросом MySQL elseif, который я использую для поиска в моей базе данных в зависимости от того, какой выбор сделан в форме.

Он не возвращает ошибку, но не возвращает результаты, которые он должен, поэтому я предполагаю, что второй запрос 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)

}

Ответы [ 3 ]

1 голос
/ 27 июля 2011

Несмотря на то, что вы не знаете, какая у вас ошибка, позвольте мне исправить ваш код.

<?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 голос
/ 27 июля 2011

выглядит так:

elseif ($jobtype=="All Jobs" && (isset($_POST['countries'])) && $jobtype=="Whole Region")

Должно быть так:

elseif ($jobtype=="All Jobs" && (isset($_POST['countries'])) && $city=="Whole Region")

Вы проверяете против $jobtype в остальном, если когда вы проверяете это против $city в if

Также, если первые 2 части оператора if одинаковы, вам не нужен elseif, здесь вы можете просто использовать else

0 голосов
/ 27 июля 2011

В одном месте вы проверяете $jobtype для «Целого региона», в другом вы проверяете $city для «Целого региона» - перепутали ли вы переменные?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...