2014-07-07 103 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

我已經添加了可能的解決方案,我的答案 –