0

在我的网站上,我改变了这个:

$genre_result = mysql_query
(
"       SELECT  g.genre_id, g.genre_name
    FROM    genres as g;"
);
$game_result = mysql_query
(
"       SELECT  g.genre_id, g.game_id, g.game_name
    FROM    games as g;"
);
$genre_array    = array();
$game_array = array();

while ($genre_row = mysql_fetch_row($genre_result))
{
    $genre_index = $genre_row[0] - 1;
    $genre_array[$genre_index] = $genre_row[1];
    $game_array[$genre_index] = array();
    $game_array[$genre_index][] = array();
    $game_array[$genre_index][] = array();
}
while ($game_row = mysql_fetch_row($game_result))
{
    $genre_index = $game_row[0] - 1;
    $game_array[$genre_index][0][] = $game_row[1];
    $game_array[$genre_index][1][] = $game_row[2];
}

为此(我将 SELECT 块复制到两个新过程中):

$genre_result = mysql_query
(
    "CALL get_genres();"
);
$game_result = mysql_query
(
    "CALL get_games();"
);
$genre_array    = array();
$game_array = array();

while ($genre_row = mysql_fetch_row($genre_result))
{
    $genre_index = $genre_row[0] - 1;
    $genre_array[$genre_index] = $genre_row[1];
    $game_array[$genre_index] = array();
    $game_array[$genre_index][] = array();
    $game_array[$genre_index][] = array();
}
while ($game_row = mysql_fetch_row($game_result))       // line #61
{
    $genre_index = $game_row[0] - 1;
    $game_array[$genre_index][0][] = $game_row[1];
    $game_array[$genre_index][1][] = $game_row[2];
}

现在我收到第 61 行的 PHP 错误(我已在上面的代码中标记):

警告:mysql_fetch_row() 期望参数 1 是资源,布尔值在第 61 行的 /home2/isometr1/public_html/keyboard/keyboard.php 中给出

get_genres() 和 get_games() 过程在 phpmyadmin 中正常工作,返回正确的值。我做错了什么以至于我的代码不起作用?

此外,phpmyadmin 发出此投诉,但我不知道它是否相关:

您正在使用 PHP 已弃用的 'mysql' 扩展,它不能处理多个查询。某些存储例程的执行可能会失败!请使用改进的“mysqli”扩展名以避免任何问题。

[编辑 1]

我像这样尝试了 mysql_error() :

$genre_result = mysql_query("CALL get_genres();", $con);
echo mysql_errno($con) . ": " . mysql_error($con) . "\n";
$game_result = mysql_query("CALL get_games();", $con);
echo mysql_errno($con) . ": " . mysql_error($con) . "\n";

并得到这个错误:

0:2014:命令不同步;你现在不能运行这个命令

这是我的版本号:

MySQL version 5.1.70-cll
phpMyAdmin version 3.5.8
cpanel version 11
PHP version 5.3.22

[编辑 2]

根据 GolezTrol 的建议,我也尝试了这个,但没有任何改进:

// genres & games
$genre_array    = array();
$game_array = array();
$genre_result = mysql_query("CALL get_genres();", $con);
while ($genre_row = mysql_fetch_row($genre_result))
{
    $genre_index = $genre_row[0] - 1;
    $genre_array[$genre_index] = $genre_row[1];
    $game_array[$genre_index] = array();
    $game_array[$genre_index][] = array();
    $game_array[$genre_index][] = array();
}
$game_result = mysql_query("CALL get_games();", $con);
while ($game_row = mysql_fetch_row($game_result))
{
    $genre_index = $game_row[0] - 1;
    $game_array[$genre_index][0][] = $game_row[1];
    $game_array[$genre_index][1][] = $game_row[2];
}
4

0 回答 0