[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Ошибка SQL
RCuPeR
Что может означать данная ошибка:
No valid database connection You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'AND `item_buy` = 1 AND `item_house` = 1 AND item_title_ru != '' AND item_activ' at line 3 SQL=SELECT * FROM `immo_items` a LEFT JOIN `immo_cityindex` b ON a.item_cityindex_id = city_id WHERE AND `item_buy` = 1 AND `item_house` = 1 AND item_title_ru != '' AND item_active = 1 ORDER BY `item_created` ASC LIMIT 0 , 15;
No valid database connection You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'AND `item_house` = 1 AND `item_buy` = 1 AND item_title_ru != '' AND item_active' at line 3 SQL=SELECT COUNT(*) FROM `immo_items` a LEFT JOIN `immo_cityindex` b ON a.item_cityindex_id = city_id WHERE AND `item_house` = 1 AND `item_buy` = 1 AND item_title_ru != '' AND item_active = 1




Спустя 7 минут, 22 секунды (22.12.2010 - 15:44) ИНСИ написал(а):
:) надо показывать весь запрос, где ошибка :)

Причина тут:
"AND item_title_ru !="


Знак неравенства в sql вот такой <>. Получится так:
"AND item_title_ru <>"

Спустя 2 минуты, 2 секунды (22.12.2010 - 15:46) RCuPeR написал(а):
	 function getObjectList($type = 'house', $lang='de', $buy = null, $city = null, $page = 1, $number = 15, $order = 'created'){
$limit = $number;
$offset = ($page-1)*15;

//$orders = array('created','modified','rooms','price','area','area2','area3','buildyear');
//$types= array('house', 'apartment', 'gewerbe', 'grundstuck', 'projekt', 'rendite', 'verkauft');

//if ($page == null || !is_int($page)) $page = 1;
//if ($number == null || !is_int($number)) $number =15;
//if ($order == '' || !in_array($order, $orders)) $order = 'created';
//if ($type == '' || !in_array($type, $types)) $type = 'house';


if ($buy != null) $buy = "AND `item_$buy` = 1 "; else $buy ='';

if ($city != null && is_string($city) && strlen($city)<20) {
$select = array(
'pforzheim' => "`item_buero_ort` LIKE 'Pforzheim'",
'muhlacker' => "`item_buero_ort` LIKE 'Mьhlacker' OR `item_buero_ort` = 'M'",
'stuttgart' => "`item_buero_ort` LIKE 'Stuttgart'",
'baden-baden' =>"`item_buero_ort` LIKE 'Baden-Baden'",
'bad-wildbad'=>"`item_buero_ort` LIKE 'Bad-Wildbad'",
'karlsruhe' =>"`item_buero_ort` LIKE 'Karlsruhe'",
'other' =>"`item_buero_ort` = '' ",
'spain' =>"`city_country` LIKE 'ESP'",
'france' =>"`city_country` LIKE 'FRA'",
'russia' =>"`city_country` LIKE 'RUS'",
'greece' =>"`city_country` LIKE 'GRE'",
'italien' =>"`city_country` LIKE 'ITA'",
'monaco' =>"`city_country` LIKE 'MCO'",
'croatia' =>"`city_country` LIKE 'HRV'",
'egypt' =>"`city_country` LIKE 'EGY'"
);

$query = 'SELECT * FROM `immo_items` a
LEFT JOIN `immo_cityindex` b ON a.item_cityindex_id = city_id
WHERE '
.$select[$city].' '.$buy.' AND `item_'.$type.'` = 1 AND item_title_'.$lang.' != \'\' AND item_active = 1
ORDER BY `item_'
.$order.'` ASC
LIMIT '
.$offset.' , '.$limit.';';
$count = 'SELECT COUNT(*) FROM `immo_items` a
LEFT JOIN `immo_cityindex` b ON a.item_cityindex_id = city_id
WHERE '
.$select[$city].' AND `item_'.$type.'` = 1 '.$buy.' AND item_title_'.$lang.' != \'\' AND item_active = 1';

}else{
$query = 'SELECT * FROM `immo_items` a LEFT JOIN `immo_cityindex` b ON a.item_cityindex_id = b.city_id
WHERE item_'
.$type.' = 1 '.$buy.' AND item_title_'.$lang.' != \'\' AND item_active = 1
ORDER BY `item_'
.$order.'` ASC
LIMIT '
.$offset.' , '.$limit.';';
$count = 'SELECT COUNT(*) FROM `immo_items` a LEFT JOIN `immo_cityindex` b ON a.item_cityindex_id = b.city_id
WHERE item_'
.$type.' = 1 '.$buy.' AND item_title_'.$lang.' != \'\' AND item_active = 1';

}
$this->_db->setQuery($query);
$result = $this->_db->loadAssocList();
$this->_db->setQuery($count);
$result['number'] = $this->_db->loadResult();
if (is_array($result[0])){
$i=0;$id = array();
while ($result[$i]['item_id']){
$id[] = $result[$i]['item_id'];
$i++;
}

$query = 'SELECT * FROM immo_images
LEFT OUTER JOIN immo_imgdesc ON img_imgdesc_id = desc_id
WHERE img_item_id IN ('
.implode(',',$id).') AND img_sort = 1';
$this->_db->setQuery($query);

$result['img'] = $this->_db->loadAssocList();
}



return $result;
}

function getCountry($lang='de', $city = null, $page = 1, $number = 15, $order = 'created'){
$limit = $number;
$offset = ($page-1)*15;


$select = array(
'pforzheim' => "`item_buero_ort` LIKE 'Pforzheim'",
'muhlacker' => "`item_buero_ort` LIKE 'Mьhlacker' OR `item_buero_ort` = 'M'",
'stuttgart' => "`item_buero_ort` LIKE 'Stuttgart'",
'baden-baden' =>"`item_buero_ort` LIKE 'Baden-Baden'",
'bad-wildbad'=>"`item_buero_ort` LIKE 'Bad-Wildbad'",
'karlsruhe' =>"`item_buero_ort` LIKE 'Karlsruhe'",
'other' =>"`item_buero_ort` = '' ",
'spain' =>"`city_country` LIKE 'ESP'",
'france' =>"`city_country` LIKE 'FRA'",
'russia' =>"`city_country` LIKE 'RUS'",
'greece' =>"`city_country` LIKE 'GRE'",
'italien' =>"`city_country` LIKE 'ITA'",
'monaco' =>"`city_country` LIKE 'MCO'",
'croatia' => "`city_country` LIKE 'HRV'",
'egypt' =>"`city_country` LIKE 'EGY'"
);

$query = 'SELECT * FROM `immo_items` a LEFT JOIN `immo_cityindex` b ON a.item_cityindex_id = b.city_id
WHERE '
.$select[$city].' AND item_title_'.$lang.' != \'\' AND item_active = 1
ORDER BY `item_'
.$order.'` ASC
LIMIT '
.$offset.' , '.$limit.';';
$count = 'SELECT COUNT(*) FROM `immo_items` a LEFT JOIN `immo_cityindex` b ON a.item_cityindex_id = b.city_id
WHERE '
.$select[$city].' AND item_title_'.$lang.' != \'\' AND item_active = 1';


$this->_db->setQuery($query);
$result = $this->_db->loadAssocList();
$this->_db->setQuery($count);

$result['number'] = $this->_db->loadResult();
if (is_array($result[0])){
$i=0;$id = array();
while ($result[$i]['item_id']){
$id[] = $result[$i]['item_id'];
$i++;
}

$query = 'SELECT * FROM immo_images
LEFT OUTER JOIN immo_imgdesc ON img_imgdesc_id = desc_id
WHERE img_item_id IN ('
.implode(',',$id).') AND img_sort = 1';
$this->_db->setQuery($query);

$result['img'] = $this->_db->loadAssocList();
}



return $result;
}

function getObject($obj_id){
$query = 'SELECT * FROM `immo_items` LEFT OUTER JOIN immo_cityindex
ON item_cityindex_id = city_id
WHERE `item_id` = '
.$obj_id.';';
$this->_db->setQuery($query);
$obj['info'] = $this->_db->loadAssoc();




$query = "SELECT * FROM `immo_langvalues`
INNER JOIN `immo_langlabels` ON value_langlabels_id = label_id
WHERE `value_active` = 1
AND `value_items_id` =
$obj_id";
$this->_db->setQuery($query);
$obj['properties'] = $this->_db->loadAssocList();


$query = "SELECT * FROM immo_images a LEFT JOIN immo_imgdesc b ON a.img_imgdesc_id = b.desc_id
WHERE img_item_id =
$obj_id ";


$this->_db->setQuery($query);

$obj['images'] = $this->_db->loadAssocList();

$buro = $obj['info']['item_buero_ort'];

$select = array(
'Pforzheim' => 1,
'Mьhlacker' =>6,
'M' => 6,
'Stuttgart' =>2,
'Baden-Baden' =>4,
'Karlsruhe'=>5);
$query = "SELECT * FROM `immo_bueros` WHERE `b_id` = '".$select[$buro]."'";
$this->_db->setQuery($query);
$obj['contact'] = $this->_db->loadAssocList();
return $obj;
}

Спустя 1 минута, 19 секунд (22.12.2010 - 15:47) RCuPeR написал(а):
Где точно я не знаю...
Это самописный модуль джумлы, вчера просил помочь, но... Пришлось самому, половину сделал, а на половине вылазит та противная ошибка.

Спустя 45 секунд (22.12.2010 - 15:48) inpost написал(а):
welbox2
Или я туплю, или что, но у меня != всегда работало =)

Спустя 3 минуты, 6 секунд (22.12.2010 - 15:51) RCuPeR написал(а):
Ошибка где-то либо в массивах, либо в запросах после них.

Спустя 1 минута, 18 секунд (22.12.2010 - 15:52) alex12060 написал(а):
Цитата
WHERE AND`item_buy` = 1 AND `item_house` = 1 AND item_title_ru != '' AND item_active = 1 ORDER BY `item_created` ASC LIMIT 0 , 15;

Спустя 2 минуты, 1 секунда (22.12.2010 - 15:54) ИНСИ написал(а):
inpost я точно не туплю smile.gif Вот:
Цитата
В языке SQL оператор неравенства записывается в виде <> (знак меньше чем объединен со знаком больше чем). Условие возвращает значение TRUE, если при его проверке имеет место неравенство; если установлено, что соответствующие значения совпадают..


RCuPeR если честно, тебе весь файл стоит переписать. Там у тебя обрамления в запросах + все запросы в одинарных кавычках ....

Спустя 17 минут, 24 секунды (22.12.2010 - 16:12) RCuPeR написал(а):
Не, переписывать точно не буду, сделаю ещё хуже чем есть!

Спустя 58 минут, 6 секунд (22.12.2010 - 17:10) RCuPeR написал(а):
Ошибка найдена и обезврежена.
Всё было элементарно: в базе не было нужных полей =)

В самом коде много ошибок, точнее он построен неправильно, но переписывать...на это нет времени и возможностей.


_____________
Гнусный социопат с комплексом Бога.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.