2014-12-29 2 views
1

У меня есть этот запрос в моей view.phpyii2: неопределенная переменная определена в Еогеасп

<?php 
    $packageq= Yii::$app->db->createCommand 
     ("SELECT p.package_name,p.`total_charges` 
      as 'package_charges' 
      FROM `package` p, estimate e,patient_detail pd 
      where pd.package=p.id 
      and e.ipd_patient_id=pd.ipd_patient_id 
      and e.id=$model->id"); 
    $packages= $packageq->queryAll(); 
    //var_dump($packages);exit; 
    echo '<table class="table table-striped table-bordered table-hover">'; 
    echo "<tr><th>Package Name</th><th>Amount</th></tr>"; 
    if (![$packages]==''){ 
    foreach($packages as $package){ 
    echo "<tr><td>"; 
    echo $package['package_name']; 
    echo "</td><td>"; 
    $d= $package['package_charges']; 
    echo $d; 

     echo "</td></tr>"; 
    } 
    }else{ 
     $d=0; 
    } 
    var_dump($d);exit; 
    echo "<tr><td>"; 
    echo 'Total D'; 
    echo "</td><td>"; 

    echo "<tr><td>"; 
    echo 'Total A+B+C+D'; 
    echo "</td><td>"; 
    echo ($a+$b+$c+$d); 
    echo "</table>"; 
    ?> 

Когда я делаю var_dump за $ пакетов, я получаю

array (size=0) 
    empty 

Когда я делаю var_dump для $ d Я получаю ошибку переменная d не определена любая конкретная причина для этого или я делаю что-то неправильно здесь. Спасибо за предложение.

ответ

1

Относительно $packages, $packageq->queryAll() ничего не должен возвращать. Что касается $ d, вы выгружаете его за пределы области, в пределах которой определяется $d. $ d должен быть определен за пределами if/else, если вы хотите иметь доступ к $ d в области, где у вас есть var_dump. Если вы объявляете $ d вне if/else с $d; или определяете $d как пустое значение (например, $d = 0;), вы сможете установить его в if/else и по-прежнему иметь доступ к нему в родительской области. Если вы определили $d = 0 до условия, вы можете удалить else { $d = 0; } все вместе.

Кроме того, если $ пакетов является массивом, и вы хотите, чтобы проверить, если он заполнен, вы могли бы рассмотреть

if(!empty($packages)) { 
    ... 
} 

Вместо

if(![$packages] == '') { 
    ... 
} 
+0

Спасибо @superultranova. Я действительно забываю использовать 'if (! Empty)'. Огромное спасибо. и ваше предложение положить $ d перед условием, когда-то тоже отлично работает. – Pawan

+0

@ Паван, пожалуйста! – superultranova

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