2012-07-22 61 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()); 

初始化变量。