我正在尝试从表格中的多个列获取图像路径。在$ fileArray中标识。 循环如何运行但只返回一个字符串。其他六次尝试也会返回一个空字符串。列DO存在并且循环运行一次后退第一个路径但未能检索其余路径。我迷失了这个错误。提前致谢。
include 'Adds/add.php';
$fileArray = array('Bags', 'Balls', 'Clubs', 'Gloves', 'Promos', 'Putts', 'Tees');
for($i = 0; $i < 7; $i++){
$query = "SELECT " . $fileArray[$i] . " FROM images";
$result = mysql_query($query);
if (!$result)
{
echo "Database query Failed" . $result; // -------------------ERROR MESSAGE
}
$row_count = mysql_num_rows($result);
if ($row_count == 0)
{
echo '<p style="color:red;">There are no images available</p>'; // ------------ERROR MESSAGE
}elseif ($result)
{
$files = array();
while ($row = mysql_fetch_array($result))
{
$files[] = $row[$fileArray[$i]];
}
}else echo "query failed"; // ------------------------------------------------------ERROR MESSAGE
echo $files[$i] . "<br />";
}
echo count($files);
数据库结构: T恤俱乐部Promos Putts球手套袋 1.jpg 2.jpg 1.jpg 1.jpg 1.jpg 1.jpg 1.jpg
答案 0 :(得分:1)
elseif ($result)
{
$files = array();
...
$ files数组可以在下一次迭代后重新创建,并可以删除以前的值。
while ($row = mysql_fetch_array($result))
{
$files[] = $row[$fileArray[$i]];
}
在这里填写$ files数组。此数组大小可能非常大。 之后你回复$ files [$ i]; $ i从0到7.这是正确的吗?
我认为这是不正确的逻辑。
答案 1 :(得分:1)
在while循环$files = array();
被覆盖之前,返回空数组。
请在$files = array();
之前声明for loop
试试这个它工作正常,只是为了我循环时删除的例子。
$fileArray = array('Bags', 'Balls', 'Clubs', 'Gloves', 'Promos', 'Putts', 'Tees');
$files=array();
for($i=0;$i<count($fileArray);$i++){
$files[] = $fileArray[$i];
echo $files[$i] . "<br />";
}