for循环从数据库中获取信息

时间:2014-04-29 18:35:34

标签: php mysql

我正在尝试从表格中的多个列获取图像路径。在$ 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

2 个答案:

答案 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 />";
}