2015-04-22 3 views
-1

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

Примечание: Undefined переменной: kolom_1
Примечание: Undefined переменной: kolom_2
Примечание: Undefined переменной: kolom_3
Примечание: Undefined переменной: kolom_4
Примечание: Undefined переменной: kolom_5
Примечание: Undefined переменной: kolom_6

Но у меня есть все, что помещается в цикле, почему он не признает их? Я не понимаю, что я делаю неправильно.

function lijst_ophalen($data, $from){ 

     $totaal = count($data); 

     for ($i=1; $i<$totaal; $i++){ 
      $kolom_[$i] = $this->mysqli->real_escape_string($data['kolom_' . $i . '']); 
      if($kolom_[$i]!="") $kolom_[$i] = "{$kolom_[$i]},"; else $kolom_[$i]=""; 

      if($kolom_[$i]==$totaal) $kolom_[$i] = "{$kolom_[$i]}"; 

     }  

     $from_table = ""; 
     $categorie = ""; 

     if($from == "bv"){ 
      $from_table = "klanten_algemene_gegevens_bv"; 
      $categorie = ""; 
     } 

     if(($from == "1manszaak") || ($from == "vof")){ 
      $from_table = "klanten_algemene_gegevens_vof_1manszaak"; 
      if($from == "1manszaak"){ 
       $categorie = "1manszaak"; 
      } 
      if($from == "vof"){ 
       $categorie = "vof"; 
      } 

      $categorie = "WHERE soort_onderneming = '{$categorie}'"; 
     } 

     if($from == "ib"){ 
      $from_table = "klanten_ib"; 
      $categorie = ""; 
     } 

     $result = $this->mysqli->query(
<<<EOT 
      SELECT 
      {$kolom_1} 
      {$kolom_2} 
      {$kolom_3} 
      {$kolom_4} 
      {$kolom_5} 
      {$kolom_6} 
      FROM {$from_table} 
      {$categorie} 
EOT 
     ); 
     if($result){ 
       $waardes = array(); 
       while ($row = $result->fetch_assoc()) { 
       $waardes[]=$row; 
      } 
      return $waardes; 
     } 
    } 
+7

Это потому, что $ kolom_1 и $ kolom_ [1] - это две разные вещи, вы создаете «массив» $ kolom_, и вы пытаетесь вызвать переменную с именем $ kolom_1 – Epodax

+2

, которую вы размещаете в массиве, не имеющем переменной , существует разница между '$ kolom_ [1]' и '$ kolom_1'. –

+1

@Epodax, почему бы вам не опубликовать это как ответ? – Voitcus

ответ

2

При инициализации/заполнении данных в $ kolom_ вы создаете массив»вместо того, чтобы ваш (должным образом) предназначен ряд различных переменных.

$kolom_[$i] <--- ARRAY 

И пониже вы вызываете ряд переменных $ kolom_1, что не существует, потому что вы создали»массив, а не ряд переменных.

Чтобы избежать ошибки, вы можете просто изменить

$kolom_1 
$kolom_2 (and so on) 

звонки в

$kolom_[1] 
$kolom_[2] (and so on) 

и вы должны быть установлены, чтобы идти.

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