Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > цикл огранич. запроса


Автор: GodEatGod 19.10.2007, 12:32
Код


if ($_GET['id_page']==1)  
    { 
$title='Заголовок 1'; 
$limit='where not date_z is null'; 
         }   

 if ($_GET['id_page']==2) 
    
 { 
$title='Заголовок 2'; 
$limit='where date_z is null'; 
        } 

 if ($_GET['id_page']==3) //[условие1] 
    
{ 
       $title='Заголовок3'; 
      $limit='  ';// ?  
       } 

if ($_GET['day']==0) $limday='   '; //[условие2] 
if ($_GET['day']=="today") $limday='convert(varchar(10), getdate()-1,104)=convert(varchar(10), date,104)'; 
if ($_GET['day']=="yesterday") $limday='convert(varchar(10), getdate()-2,104)=convert(varchar(10), date,104)'; 
if ($_GET['day']=="thismonth") $limday='convert(varchar(7), getdate(),102)=convert(varchar(7), date,102)'; 
if ($_GET['day']=="monthbefore") $limday='convert(varchar(7), dateadd(mm,datediff(mm,0,getdate())-1,0),102)=convert(varchar(7), date,102)'; 
if ($_GET['day']=="thisyear") $limday='convert(varchar(4), getdate(),102)=convert(varchar(4), date,102)'; 
if ($_GET['day']=="yearbefore") $limday='convert(varchar(4), dateadd(yy,datediff(yy,0,getdate())-1,0),102)=convert(varchar(4), date,102)'; 
 


$sql="SELECT name, count(id) as kol, sum(cost) as amount  from table1  $limit and $limday group by name $orderstr";// $orderstr- сортировка 
 



Если выполняется [условие1] или [условие2] запрос не выполняется из-за and(‘ ‘ and ‘ ‘ ).
Как можно исправить условия?[
  
  

Автор: Папараццы 19.10.2007, 14:15
Была такая тема кажется... 
 Желательно elseif ставить или switch/case 
 после кажлого уловия строй запрос  например 
 
Код

$sql="SELECT name, count(id) as kol, sum(cost) as amount  from table1  $limit";
if($something=$something_1) 
{
$sql.=" and limit2"; //и т.д. и т.п.
}

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)