Я получаю 2 параметра из строки запроса в заголовке URL моей страницы. Я хочу использовать эти параметры в качестве критерия даты для запроса, но каждый раз, когда я пытаюсь добавить в мое предложение where, страница возвращает ошибку 500.

Это мой синтаксис, что я должен изменить, чтобы использовать эти две переменные в предложении where?

    <?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
BellHopByDayAmetuerCoderByNigh 28 Фев 2017 в 22:38

2 ответа

Лучший ответ

В вашем предложении WHERE должно быть указано ваше AND. Кроме того, в предложении where сравниваемое поле необходимо сравнивать оба раза.

ГДЕ a> = b И a <= c

$result->where($db->quoteName('registerdate') . " >= '". $begin."' AND ".$db->quoteName('registerdate')." <= '" .$end."'");
0
TopCheese 28 Фев 2017 в 19:55

Кстати, вы можете передать массив "где"

$query->where(array(first thing, second thing, &tc), operator[defaults to "AND"]);
0
Markers 2 Мар 2017 в 12:22