Мне нужно искать с несколькими переменными и сортировать - PullRequest
1 голос
/ 08 августа 2011

Я могу искать несколько значений с MySQL. Мне нужно реализовать SORT BY на нем

Это мое кодирование, которое работает идеально

   $conditions = array();
if ($key) {
  $conditions[] = 'job_title LIKE "%'.$key.'%"';
}
if ($category) {
  $conditions[] = 'job_category = "'.$category.'"';
}
if ($location) {
  $conditions[] = 'job_location = "'.$location.'"';
}
if ($country) {
  $conditions[] = 'job_country = "'.$country.'"';
}
if ($salary) {
  $conditions[] = 'job_salary >= "'.$salary.'"';
}


$sqlStatement = 'SELECT * FROM jobs JOIN job_category ON  jobs.job_category=job_category.category_id  '.implode(' AND ', $conditions);

Когда я применяю SORT BY как это

if ($sort) 
{
$conditions[] = 'ORDER BY "'.$sort.'"';
$sqlStatement = 'SELECT * FROM jobs JOIN job_category ON  jobs.job_category=job_category.category_id  '.implode(' AND ', $conditions);
}
else
{
$sqlStatement = 'SELECT * FROM jobs JOIN job_category ON  jobs.job_category=job_category.category_id  '.implode(' AND ', $conditions);
}

результат

Blockquote ВЫБЕРИТЕ * ИЗ РАБОТ ВСТУПИТЬ Предупреждение: mysql_fetch_array () ожидает, что параметр 1 будет ресурсным, логическое значение указано в /Applications/XAMPP/xamppfiles/htdocs/work/mobjob/test.php в строке 41

1 Ответ

3 голосов
/ 08 августа 2011

Вы не должны взорвать свой заказ как условие ... это не одно ..

просто добавьте его в конец следующим образом:

$sqlStatement = 'SELECT * FROM jobs JOIN job_category ON  jobs.job_category=job_category.category_id  ';

if( sizeof($conditions)) {
    $sqlStatement .= ' WHERE ' . implode(' AND ', $conditions);
}



if($sort) {
    $sqlStatement .= ' ORDER BY "'.$sort.'"';
}
...