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

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

    old new  
    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'] == '='){ 
Download in other formats: Original Format