2016-09-21 5 views
1

в этом случае, например,
У меня есть строка из массива person_code => 1,2,3
, тогда я хочу изменить эту строку на другую строку из массива person_nama => name1, name2 , name3
я есть попробовать с моим кодом:
PHP переписать массив в строку,

public function Person_name($person_code) 
    { 
     $code= explode(',', $person_code); 
     $name=array(); 
     for($i=0; $i<count($code); $i++){ 
      $sql= Yii::app()->db->createCommand('select nm_person from tbl_person where kd_person="'.$code[$i].'";'); 
      $name=$sql->queryRow(); 
     } 
     $namearray= implode(',',$name); 
     return $namaarray; 
    } 


но результат только вернуть фамилию человека в массиве,
кто может мне помочь ?? спасибо

+1

вы перезаписью, '$ имя [] =', нажмите постоянно, и почему бы не просто использовать 'WHERE IN', я уверен, что 'Yii' уже имеет это где-то, использует API, который принимает метод WHERE IN', а также принимает массив целых чисел – Ghost

ответ

1

Я бы просто ответил на это, просто используя решение для групповой помощи, просто обычным нажатием результатов в массив. Ваш текущий код просто переписывается $name.

$name[] = $sql->queryRow(); 

Но.

Не следует напрямую интерполировать переменные в строку запроса. Просто прекратите это, вы уже используете хорошую структуру с полезным построителем запросов.

Вместо того, чтобы выполнять каждый запрос для каждого идентификатора, почему бы не использовать вкус предложения WHERE IN вместе с застройщиком.

Намного лучше непроверенной Основная идея:

public function Person_name($person_code) 
{ 
    $persons = array(); 
    $person_code = explode(',', $person_code); 

    if(!empty($person_code)) { 
     $result = Yii::app()->db->createCommand() 
     ->setFetchMode(PDO::FETCH_COLUMN, 0) 
     ->select('nm_person') 
     ->from('tbl_person') 
     ->where(array('IN', 'kd_person', $person_code) 
     ->queryAll(); 

     $persons = implode(', ', $result); 
    } 

    return $persons; 
} 

на основе чтения manual

+0

спасибо за отзыв, это хорошая идея, у меня есть попробуйте свой код, но любая ошибка в Array Helper.php, я думаю, это потому, что я использую Yii 1.xx –

+0

@YanuarIhsan oh okay, поэтому я изменил его на версия, которую вы используете, i'v eedited it – Ghost

+0

это работает, отличная идея ... спасибо @Ghost –

Смежные вопросы