PHP for循环变量

时间:2015-04-22 07:29:51

标签: php mysql

我已经使这个for循环获得从数据库中选择的可变数量的列。当我正在运行时,我收到一个错误说:

  

注意:未定义的变量:kolom_1
  注意:未定义的变量:kolom_2
  注意:未定义的变量:kolom_3
  注意:未定义的变量:kolom_4
  注意:未定义的变量:kolom_5
  注意:未定义的变量:kolom_6

但我把它全部置于for循环中,为什​​么他不认识它们?我没有得到我做错的事。

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;
        }
    }

1 个答案:

答案 0 :(得分:2)

当您在$ kolom_中初始化/填充数据时,您正在创建一个&#39;数组而不是你(正确)预期的一系列不同变量。

$kolom_[$i] <--- ARRAY

然后降低你要调用的一系列变量$ kolom_1,因为你创建了一个变量而不存在。数组而不是一系列变量。

为避免错误,您只需更改

即可
$kolom_1
$kolom_2 (and so on)

调用

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

你应该去。