如果我的问题可能显得很愚蠢,我很抱歉,但是我真的很困惑我从数组中输出文件名时遇到的错误。
首先,我使用数据库中的列名填充数组。这是代码:
$AddNews = "SELECT * FROM picture_names";
$result = mysql_query( $AddNews, $IVE_Connection ) or die('ERROR: '.mysql_error());
for($i = 0; $i < mysql_num_fields($result); $i++){
$field_info = mysql_fetch_field($result, $i);
$name_array[] = $field_info->name;
}
for($i = 0; $i < sizeof($name_array); $i++){
echo "<input type='file' name='".$name_array[$i]."' id='".$name_array[$i]."' value=''>";
echo "</span><br />";
echo "</div>";
}
那个阶段没有问题。但是当我努力的时候。我可以正常输出。当我尝试使用相同的数组打印条件时,问题就出现了:
for($i = 0; $i < sizeof($name_array); $i++){
echo "if($_FILES['".$name_array[$i]."']['tmp_name'] != ''){";// the problem ocures here
...some code here
echo "}";
}
这里我总是有一个错误unexpected '' (T_ENCAPSED_AND_WHITESPACE)
Itried将其字符串化,但仍然有相同的错误。如果只输出$_FILES
逻辑之外的数组,则没有问题。
如果有人能指出我做错了什么,我将不胜感激。
答案 0 :(得分:1)
试试这个
for($i = 0; $i < sizeof($name_array); $i++){
if(isset($_FILES[$name_array[$i]]['tmp_name'])){
//your code
}
}
答案 1 :(得分:0)
这不是正确的代码:
for($i = 0; $i < sizeof($name_array); $i++){
echo "if($_FILES['".$name_array[$i]."']['tmp_name'] != ''){";// the problem ocures here
...some code here
echo "}";
}
只需从代码中删除回声
即可for($i = 0; $i < sizeof($name_array); $i++){
if($_FILES[$name_array[$i]]['tmp_name'] != ''){
echo "Text";
};
}