developer.jelix.org is not used any more and exists only for history. Post new tickets on the Github account.
developer.jelix.org n'est plus utilisée, et existe uniquement pour son historique. Postez les nouveaux tickets sur le compte github.

Ticket #572: 572-jDaoConditions-in-notin.diff

File 572-jDaoConditions-in-notin.diff, 1.3 KB (added by Julien, 12 years ago)
  • lib/jelix/dao/jDaoFactoryBase.class.php

     
    362362                $prefixNoCondition = $prop['fieldName'];
    363363
    364364            $prefix = $prefixNoCondition.' '.$cond['operator'].' '; // ' ' for LIKE..
    365 
    366             if (!is_array ($cond['value'])){
     365           
     366            if(strtoupper($cond['operator']) == 'IN' || strtoupper($cond['operator']) == 'NOT IN'){
     367                $values = array();
     368                if(is_array($cond['value'])){
     369                    foreach($cond['value'] as $value)
     370                        $values[] = $this->_prepareValue($value,$prop['datatype']);
     371                    $values = join(',', $values);
     372                }
     373                else
     374                    $values = $cond['value'];
     375                   
     376                if($values !== '')
     377                    $r .= $prefix.'('.$values.')';
     378            }
     379            else if (!is_array ($cond['value'])){
    367380                $value = $this->_prepareValue($cond['value'],$prop['datatype']);
    368381                if ($value === 'NULL'){
    369382                    if($cond['operator'] == '='){