2012-07-22 101 views
0
for($i=0;$cast_row = mysql_fetch_array($res);$i++) 
{ 
    $cast['id'][] = $cast_row['user_id']; 
    $cast['role'][] = $cast_row['role']; 
    $cast['role_name'][] = $cast_row['role_name']; 
    $cast['is_approved'][] = $cast_row['is_approved']; 
    $cast['movie_id'][] = $cast_row['movie_id']; 
} 
for($i=0;$i<count($cast['id']);$i++) //LINE 31 
{ 
    $output .= "<tr>"; 
    $mname = getMovieNameById($m_id); 
    $output .= "<td><a href='single.php?id=$m_id'>$mname</a></td>"; 

    $aname = getArtistNameById($cast['id'][$i]); 
    $output .= "<td><a href=project.php?id={$cast['id'][$i]}>$aname</a></td>"; 
} 

此代碼工作正常在Web服務器,但引發錯誤(通知)當本地主機上執行PHP代碼炒菜,但拋出的錯誤在本地主機

注意:未定義指數:ID在C:\ wamp \ www \ Tinyflick \ managemovie.php 31行

可能是什麼問題?其餘的代碼似乎工作得很好

+4

這可能是您的錯誤報告級別與本地主機相比,Web服務器不同。 – gunnx 2012-07-22 10:13:18

+0

可能是這樣,但是您是否檢查過本地數據庫是否包含所有列? – 2012-07-22 10:14:55

+0

你確定你已經在localhost上正確設置了mysql嗎? – madfriend 2012-07-22 10:15:13

回答

1

它是一種愚蠢的錯誤。 它解決了。感謝nico的意見

localhost中的錯誤報告級別與服務器上的錯誤報告級別不同。 改變這一點會有所斬獲。 下面的代碼會顯示所有

error_reporting(E_ALL) 

警告通常是在生產服務器上禁用的錯誤和警告。欲瞭解更多信息,請參考documentation of the said function

0

我猜mysql結果只是空的! :) 嘗試傾銷你回來的行的內容。

順便說一句,你可以做這樣的事情improove代碼:

while($row = mysql_fetch_array($res)) { // iterates as long there is content 
    //do something with the $row... like your second for block! ;) 
} 
+0

不,結果正在檢索並回顯,但我收到警告 – Abhijith 2012-07-22 10:23:11

0

事實證明,$cast array是空的,因爲你沒有正確地獲取從數據庫中的數據。

如果在您的服務器中關閉錯誤報告,那麼您將看不到任何錯誤。

而不是for循環使用while循環來迭代從數據庫中獲取的數據。

$cast = array(); 
while($row = mysql_fetch_array($res)) { 
    $cast['id'][] = $row['user_id']; 
    $cast['role'][] = $row['role']; 
    $cast['role_name'][] = $row['role_name']; 
    $cast['is_approved'][] = $row['is_approved']; 
    $cast['movie_id'][] = $row['movie_id']; 
} 

然後你可以運行for循環。

+1

正在從數據庫中提取數據並正確回顯數據。警告正在困擾我 – Abhijith 2012-07-22 10:24:11

+0

你可以做'var_dump($ cast)'並顯示正在打印的內容嗎? – 2012-07-22 10:25:05

+0

陣列 'ID'=> 陣列 0 =>串 '1'(長度= 1) '角色'=> 陣列 0 =>串 '操作'(長度= 6) 'ROLE_NAME'=> 陣列 0 =>字符串 'MAN'(長度= 3) 'is_approved'=> 陣列 0 =>串 '0'(長度= 1) 'movie_id'=> 陣列 0 =>字符串' 252YZ5gY34'(長度= 10) – Abhijith 2012-07-22 10:30:01

0

我想,如果你想剿上述通知書,循環之前添加以下行:

$cast = array('id'=>array(), 'role'=>array(), 'role_name'=>array(), 'is_approved'=>array(), 'movie_id'=>array()); 

初始化變量。

相關問題