外面的数组虽然不起作用

时间:2014-07-07 10:57:57

标签: php mysql arrays

抱歉初学者问题。 我搜索了大约一个小时,但我无法理解为什么我的$ row在第二个时间以外的行不起作用...名称变量只运行$ row var doesn&t; t功能...

$i = 0;
while($i < 8)
{
    $str = "SELECT * FROM `$name[$i]`";
    $result = mysql_query($str, $connessione);
    $l = mysql_num_rows($result);

    while($l > 1)
    {
        $strs = "SELECT * FROM `$name[$i]` WHERE `Livello` = '$l'";
        $results = mysql_query($strs, $connessione);
        $row[$i][$l] = mysql_fetch_array($results);

            if I put here the echo I can view the mysql variable 
            echo $row[$i][$l]['var'];

        $l--;
    }
        if I put here echo $row[$i][$l]['var']; he send me the error " Undefined offset"
    $i++;
}

希望你能帮助我......

2 个答案:

答案 0 :(得分:0)

当您尝试使用echo$i = 8$l = 1时。这些键不存在于您的数组中。

答案 1 :(得分:0)

在您放置的地方:

echo $row[$i][$l]['var']; 

$l值为0,您将$l的$ row值从1设置为mysql_num_rows($result)

如果你放在那里:

echo $row[$i][1]['var'];

假设mysql_num_rows($result)超过1个元素,它应该可以正常工作。

您的代码可能如下所示:

$i = 0;
while($i < 8)
{
    $str = "SELECT * FROM `$name[$i]`";
    $result = mysql_query($str, $connessione);
    $l = mysql_num_rows($result);

    while($l > 0) // changed 1 to 0
    {
        $strs = "SELECT * FROM `$name[$i]` WHERE `Livello` = '$l'";
        $results = mysql_query($strs, $connessione);
        $row[$i][$l] = mysql_fetch_array($results);

            if i put here the echo i can view the mysql variable 
            echo $row[$i][$l]['var'];

        $l--;
    }

    // added extra loop to display array values
    $whileIndex = 0;
    while (true) {
      if (!isset($row[$i][$whileIndex]['var']) {
         break;
      }
      echo $row[$i][$whileIndex]['var']; // should work
      ++$whileIndex;
    }


    $i++;
}