2017-02-28 19 views
0

私のページのurlヘッダーのクエリ文字列から2つのパラメータを受け取りました。私は、これらのparramsをクエリの日付基準として使用したいと思いますが、where句に追加しようとするたびに、ページは500エラーを返します。JDatabaseにWhere句を追加する

これは私の構文です。私はwhere句でこれら2つの変数を使用できるように変更する必要がありますか?

<?php 

    header('Access-Control-Allow-Origin: *'); 

    $begin = $_GET['begin']; 
    $end = $_GET['end']; 

    $option = array(); //prevent problems 

    $option['driver'] = 'mssql';    
    $option['host']  = 'XXX.XXX.XX.XX';  
    $option['user']  = 'user';  
    $option['password'] = 'pass'; 
    $option['database'] = 'database';  
    $option['prefix'] = '';    

    $db = JDatabase::getInstance($option); 
    $result = $db->getQuery(true); 
    $result->select($db->quoteName(array('Teacher', 'student', 'countenrolled', 'countattending'))); 
    $result->from($db->quoteName('[SchoolStuff')); 
    $result->where($db->quoteName('registerdate') . ' >= '. $begin. AND ' <= ' .$end.); 
    $db->setQuery($result); 
    $results = $db->loadObjectList(); 
?> 

<table border="1"> 
    <thead> 
     <tr> 
      <th>Teacher</th> 
      <th>Student</th> 
      <th>Count Enrolled</th> 
      <th>Count Attending</th> 
     </tr> 
    </thead> 
     <tbody> 
     <?php 
      foreach($options as $option) { 
       print "<tr>"; 
       print "<td>".$option->Teacher."</td>"; 
       print "<td>".$option->Student."</td>"; 
       print "<td>".$option->CountEnrolled."</td>"; 
       print "<td>".$option->CountAttending."</td>"; 
       print "</tr>"; 
      } 
      ?> 
    </tbody> 
    </table 

答えて

0

あなたのWHERE句には、引用符を付ける必要があります。また、where句では、比較するフィールドを両方の時間で比較する必要があります。

WHERE> = B、及びちなみに< = C

$result->where($db->quoteName('registerdate') . " >= '". $begin."' AND ".$db->quoteName('registerdate')." <= '" .$end."'"); 
+0

配列を渡すことができます - しかし、オペランド型のclash:dateがintと互換性がありません。私はregisterdateが日付データ型であることを知っています - したがって、私は2つの問題が$ beginand $ endであると仮定します。 – BellHopByDayAmetuerCoderByNigh

+0

これらの2つの変数を出力します。 – TopCheese

+0

begin = 2017-01-02 end = 2017-01-25このビューは、SchoolStuffに基づいています。私はregisterdate = Cast(dateとしてregistration_date)を実行しています – BellHopByDayAmetuerCoderByNigh

0

は、ページをロードするために開始さに "どこで"

$query->where(array(first thing, second thing, &tc), operator[defaults to "AND"]); 
関連する問題