while循环获取DB行:
while($row = $result->fetch_assoc()){
$metadata_field74[] = $row['field74'];
$metadata_field75[] = $row['field75'];
$metadata_field76[] = $row['field76'];
$metadata_field77[] = $row['field77'];
}
这些行基于另一个DB表。基本上,这个循环应该根据从DB查询接收到的另一个值数组来获取行。
这些值(field74,field75等)存储在数组$ metadata_id_basic []中。 我从这个数组中得到这样的值并插入到while循环中:
while($row = $result->fetch_assoc()){
foreach ($metadata_id_basic as $value){
$ref = '$metadata_'.$value.'[] = $row[\''.$value.'\'];';
echo $ref;
}
}
但是没有看到行数组。如果我打印$ ref,它看起来像:
$metadata_field74[] = $row['field74'];
$metadata_field75[] = $row['field75'];
$metadata_field76[] = $row['field76'];
$metadata_field77[] = $row['field77'];
那么为什么while循环没有正确读取它?
答案 0 :(得分:1)
我不知道该怎么做。
'$metadata_'.$value.'[] = $row[\''.$value.'\'];';
但是,也许它应该是这样的?
$metadata[$value][] = $row[$value];
你应该在某处初始化$metadata = array()
。如果你真的想要这个
'$metadata_'.$value.'[]
我建议这样做。
${'metadata_'.$value}[] = .....
然后它将是您可以正常使用的实际变量。你现在拥有的只是一个字符串或另一种方式,只是单词..
这可能是你想要的,在这种情况下,你仍然想要这个
$ref = '$metadata_'.$value.'[] = '.$row[$value];
我不知道这意味着什么,例如So why does the while loop not read it correctly?
什么是正确的?
另外,如果不知道$metadata_id_basic
是什么或者你想要获得什么作为最终结果,很难说,但如果你只想要$row
的钥匙,你可以在没有外部依赖的情况下这样做。
foreach ($row as $key => $value){
例如
答案 1 :(得分:0)
该行
$ref = '$metadata_'.$value.'[] = $row[\''.$value.'\'];';
将汇总一个字符串而不是初始化变量。
答案 2 :(得分:0)
foreach循环只是回显一个字符串,而不是用数据库中的值填充变量。
另外,我不确定你的代码中是否需要数组中的数据或多个变量,所以这里有两个版本
将数据放入多个单独的变量中:
while($row = $result->fetch_assoc()){
foreach ($metadata_id_basic as $value){
$var_name = metadata_' . $value;
$$var_name = $row[$value];
echo '$' . $var_name . ' : ' . $$var_name;
}
}
这应该创建$metadata_XXXXX
变量。
将数据放入数组中,按$metadata_id_basic
索引:
$metadata = array();
while($row = $result->fetch_assoc()){
foreach ($metadata_id_basic as $value){
$metadata[$value] = $row[$value];
}
}
print_r($metadata);
echo和print_r语句在那里显示已创建的内容。