[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: array \ array_merge \ implode
okapo
код

$sql_fh = mysql_query("SELECT `type`,`itemID` FROM `tb_favhid` WHERE `loginID`='".$mres['id']."'");
$fids = array();
$hids = array();
while($fas = mysql_fetch_assoc($sql_fh))
{
if ($fas['type'] == 'favorit') $fids[] = $fas['itemID'];
if ($fas['type'] == 'hide') $hids[] = $fas['itemID'];
}
$sqlw = mysql_query("SELECT `itemID`,`status` FROM `tb_checks` WHERE `type`='task' AND `loginID`='".$mres['id']."'");
$wpids = array();
$wwids = array();
$woids = array();
$wfids = array();
while($wes = mysql_fetch_assoc($sqlw))
{
if ($wes['status'] == 'pending') $wpids[] = $wes['itemID'];
if ($wes['status'] == 'wait') $wwids[] = $wes['itemID'];
if ($wes['status'] == 'ok') $woids[] = $wes['itemID'];
if ($wes['status'] == 'fail') $wfids[] = $wes['itemID'];
}


$ids_not = array_merge($hids, $woids, $wfids);


вот данный запрос работает правельно когда есть значения в array но дает ошибку когда там нет значений
Цитата
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 ')

SELECT * FROM `tb_tasks` `t` WHERE `t`.`id` NOT IN (".implode(", ", $ids_not).")


а вот этот наоборот работает
SELECT * FROM `tb_tasks` `t` WHERE `t`.`id` NOT IN ('".implode(", ", $ids_not)."')


как сними быть ?



Спустя 2 минуты, 12 секунд (17.03.2012 - 16:15) nugle написал(а):
последнюю запятую удаляешь?

Спустя 1 минута, 15 секунд (17.03.2012 - 16:16) okapo написал(а):
nugle
откуда ?

Спустя 1 час, 6 минут, 43 секунды (17.03.2012 - 17:23) nugle написал(а):
после Implode

Спустя 17 часов, 16 минут, 8 секунд (18.03.2012 - 10:39) okapo написал(а):
какая запятая ? после implode нету запятую

Спустя 12 минут, 46 секунд (18.03.2012 - 10:52) twin написал(а):
Нужно инициализировать переменную с нужным типом. Вначале кода поставь так:
$ids_not = array();

А вообще включи все ошибки, так будет проще. Интерпретатор ошибок тебе не враг, он помошник. А ты ему рот затыкаешь.

UPD
А, там запрос))) Ну не делай запрос, если $ids_not пустая, да и все.

Спустя 23 минуты, 25 секунд (18.03.2012 - 11:15) okapo написал(а):
twin
добавил изменений нет, а как узнать если масив пуст ?

ошибки если включаю то там страшно что тварится, скрипт не мой попросили помочь

Спустя 43 минуты, 15 секунд (18.03.2012 - 11:58) twin написал(а):
Ну так:
if(!empty($ids_not))
// тут запрос

Спустя 19 минут, 32 секунды (18.03.2012 - 12:18) okapo написал(а):
вот то сделал вроде работает для остальных сделал так
$sort .= ($_GET['status'] == 4) ? ((!empty($hids)) ? " AND `t`.`id` IN (".implode(', ', $hids).")" : " AND `t`.`id` IN ('".implode(', ', $hids)."')") : '';


вопрос в том ? правельно ли я делаю ?
так работает как надо

Спустя 18 минут, 43 секунды (18.03.2012 - 12:37) twin написал(а):
((!empty($hids)) ? " AND `t`.`id` IN (".implode(', ', $hids).")" : " AND `t`.`id` IN ('".implode(', ', $hids)."')")
в чем тут сакраментальный смысл... Что то ускользает от меня.

Спустя 1 минута, 30 секунд (18.03.2012 - 12:38) okapo написал(а):
в скобках ' '

Спустя 52 минуты, 1 секунда (18.03.2012 - 13:30) twin написал(а):
Нет, именно в этом выражении. Если пустая, то
" AND `t`.`id` IN (".implode(', ', $hids).")" 

а если не пустая, то
" AND `t`.`id` IN (".implode(', ', $hids).")" 

В чем смысл? Они же идентичны.

Спустя 19 минут, 5 секунд (18.03.2012 - 13:49) okapo написал(а):
`t`.`id` IN (".implode(', ', $hids).")
`t`.`id` IN ('".implode(', ', $hids)."')


наверное ты не замечаешь

Спустя 30 минут, 34 секунды (18.03.2012 - 14:20) twin написал(а):
Ага. Тоесть ты хочешь сказать, что запрос
`t`.`id` IN ('')
не вызовет ошибки. А смысл вообще делать запрос?

Спустя 48 минут, 13 секунд (18.03.2012 - 15:08) okapo написал(а):
да не вызывает ошибки.
если вообще не делать так он все записи вытаскивать будет, можно по другому как то ?

Спустя 2 часа, 23 минуты, 41 секунда (18.03.2012 - 17:32) twin написал(а):
Я же написал чуть выше. Не нужен там тернарник, нужно простое условие.
Быстрый ответ:

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