我已经使这个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;
}
}
答案 0 :(得分:2)
当您在$ kolom_中初始化/填充数据时,您正在创建一个&#39;数组而不是你(正确)预期的一系列不同变量。
$kolom_[$i] <--- ARRAY
然后降低你要调用的一系列变量$ kolom_1,因为你创建了一个变量而不存在。数组而不是一系列变量。
为避免错误,您只需更改
即可$kolom_1
$kolom_2 (and so on)
调用
$kolom_[1]
$kolom_[2] (and so on)
你应该去。