2014-07-07 62 views
0

对不起,对于初学者的问题。 我正在寻找大约一个小时,但我不明白为什么我的第二行以外的行不起作用...名称变量只运行$行var不起作用...数组外部虽然不起作用

$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++; 
} 

希望你能帮助我...

+0

什么是“不工作”是什么意思? – deceze

+1

如果'mysql_num_rows($ result)'返回1,那么'$ l> 1'是假的。 – Baalthasarr

+1

如果'$ l'为'0',则不会定义'$ row'变量。 – didierc

回答

0

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

+0

我想为0到7之间的$ i变量(8个变量)和$ 1在1到mysql之间的行数(不同变量) – user3812098

+0

您必须在第二个循环中使用'echo',而不是后面。 – panther

0

在地方,你把:

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

$l值是0,你$l 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++; 
} 
+0

在第一个回声我可以查看代码是在第二个问题...如果我把你的代码我得到了同样的问题 – user3812098

+0

我已经添加了可能的解决方案,我的答案 –