Re[4]: отбор записей по отмеченному checkbox в PHP + MySQL
От: zloynik  
Дата: 28.07.08 19:10
Оценка:
Здравствуйте, Mamut, Вы писали:

M>1. Никогда. нет НИКОГДА не формируйте sql в запросе

M>2.

Не буду.

M>$filter = '';


M>foreach($_REQUEST['key'] as $objid)

M>{
M> if(is_numeric($objid))
M> {
M> $filter .= "$objid OR ";
M> }
M>}
M>[/php]

Вот над этим можно поработать. Хотя выдает ошибку Warning: Invalid argument supplied for foreach()
M>После этого изменяем код:

M>
M><script language="JavaScript" type="text/javascript">

    
M>    //  Показать выделенные 
M>    function ShowOffers(print){

M>        // поскипано
M>        if ( idobj.length < 1 ) {
M>            document.prev_frm.print_now.value = 0;    
M>            alert('Ни одно предложение не отмечено!');
M>            return false;
M>        }else{
M>                        // НИКОГДА не формируйте sql запросы на клиенте
M>            //document.prev_frm.idobj.value = idobj.join('+OR+');    
M>            document.prev_frm.submit();
M>        }
M>    }    


M></script>
M>


Не работает. НЕ реагирует на нажатие на ссылку.

M>if ($_GET['idobj']<>""){
M>    $idobj=$_GET['idobj'];

M>    $sFilter = "zag_objects.idobj = $idobj";
M>} else {
M>    $sFilter = "";
M>}
M>



M>Там дальше формируется SQL-запрос. Ошибка, видимо, в SQL-запросе


Вот так выглядит запрос в моем варианте:

Failed to execute SQL: SELECT photo.small, photo.big, photo.pos, zag_objects.idnaznacheniya, zag_objects.idnaspunkt, 
zag_objects.idrajon, zag_objects.idregion, zag_objects.idnapravleniya, zag_objects.idshosse, zag_objects.udalennost, 
zag_objects.idedismudalennosti, zag_objects.obschaya, zag_objects.idedizmploschady, zag_objects.ploschaducastka, 
zag_objects.idedizmploschady2, zag_objects.idvidasdelky, zag_objects.cena, zag_objects.idedizmceny, zag_objects.telephon1,
zag_objects.telephon2, zag_objects.fiosotrudnika, zag_objects.datavneseniya, zag_objects.mestoraspologenie, 
zag_objects.techinfo, zag_objects.terrainfo, zag_objects.prochee, zag_objects.napervuyu, zag_objects.publicate, 
zag_objects.gilaya, zag_objects.kuhnya, zag_objects.etagnost, zag_objects.idtipdoma, zag_objects.komnat, 
zag_objects.pokomnatam, zag_objects.idobj FROM photo LEFT OUTER JOIN zag_objects ON (photo.idobj = zag_objects.idobj) 
WHERE ((zag_objects.publicate = -1) AND (photo.pos = 1)) AND (zag_objects.idobj = 29 OR 34) 
AND (((zag_objects.idnaznacheniya = 55)))) GROUP BY idobj. Error: 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 ') 
GROUP BY idobj' at line 1

Базовая часть строки SQL формируется в конфигурации, а на клиенте собирается Where в зависимости от выбора клиента.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.