php警告mysql_fetch_assoc

php警告mysql_fetch_assoc,php,mysql,Php,Mysql,我试图从mysql访问一些信息,但得到警告:mysql\u fetch\u assoc():对于下面的第二行代码,提供的参数不是有效的mysql结果资源,请提供任何帮助 $musicfiles=getmusicfiles($records['m_id']); $mus=mysql_fetch_assoc($musicfiles); for($j=0;$j<2;$j++) { if(file_exists($mus['musicpath'])) { echo '<a href=

我试图从mysql访问一些信息,但得到警告:mysql\u fetch\u assoc():对于下面的第二行代码,提供的参数不是有效的mysql结果资源,请提供任何帮助

$musicfiles=getmusicfiles($records['m_id']);
$mus=mysql_fetch_assoc($musicfiles);
for($j=0;$j<2;$j++)
{
 if(file_exists($mus['musicpath']))
 {
  echo '<a href="'.$mus['musicpath'].'">'.$mus['musicname'].'</a>';       
 }
 else
 {
  echo 'Hello world';     
 }
}

function getmusicfiles($m_id)
{
$music="select * from music WHERE itemid=".$s_id;
$result=getQuery($music,$l);
return $result;
}
$musicfiles=getmusicfiles($records['m_id']);
$mus=mysql\u fetch\u assoc($muscfiles);

对于($j=0;$j如果看不到getmusicfiles的代码,我们就无法真正帮助您。您应该在该函数中返回有效的mysql资源。

如果看不到getmusicfiles的代码,我们就无法真正帮助您。您应该在该函数中返回有效的mysql资源。

这取决于什么正是
getmusicfiles()所做的
。它必须返回
mysql\u query()
函数调用的结果,然后它将是“有效的mysql结果”


你很可能想把
$mus=mysql\u fetch\u assoc($musicfiles)
这一行放在
循环的
中,以便一行一行地获取多行。

这取决于
getmusicfiles()的具体功能。
它必须返回
mysql\u query()
函数调用的结果,然后它将是一个“有效的mysql结果”


您很可能希望将行
$mus=mysql\u fetch\u assoc($musicfiles)
放在
中,以便
循环一个接一个地获取多行。

通常,mysql\u*函数的使用方式如下:

$id = 1234;
$query = 'SELECT name, genre FROM sometable WHERE id=' . $id;
// $query is a string with the MySQL query
$resource = mysql_query($query);
// $resource is a *MySQL result resource* - a mere link to the result set
while ($row = mysql_fetch_assoc($resource)) { 
    // $row is an associative array from the result set
    print_r($row);
    // do something with $row
}
如果您向mysql\u fetch\u assoc传递的不是mysql结果资源(无论是字符串、对象还是布尔值),函数将抱怨它不知道如何处理参数;这正是您所看到的

常见问题:如果将某个内容(有效查询字符串除外)传递给
mysql\u查询
,则会收到此警告:

$id = null;
$query = 'SELECT name, genre FROM sometable WHERE id=' . $id;
$res = mysql_query($query); 
// $res === FALSE because the query was invalid
// ( "SELECT name, genre FROM sometable WHERE id=" is not a valid query )
mysql_fetch_assoc($res); 
// Warning: don't know what to do with FALSE, as it's not a MySQL result resource

通常,mysql_*函数的使用方式如下:

$id = 1234;
$query = 'SELECT name, genre FROM sometable WHERE id=' . $id;
// $query is a string with the MySQL query
$resource = mysql_query($query);
// $resource is a *MySQL result resource* - a mere link to the result set
while ($row = mysql_fetch_assoc($resource)) { 
    // $row is an associative array from the result set
    print_r($row);
    // do something with $row
}
如果您向mysql\u fetch\u assoc传递的不是mysql结果资源(无论是字符串、对象还是布尔值),函数将抱怨它不知道如何处理参数;这正是您所看到的

常见问题:如果将某个内容(有效查询字符串除外)传递给
mysql\u查询
,则会收到此警告:

$id = null;
$query = 'SELECT name, genre FROM sometable WHERE id=' . $id;
$res = mysql_query($query); 
// $res === FALSE because the query was invalid
// ( "SELECT name, genre FROM sometable WHERE id=" is not a valid query )
mysql_fetch_assoc($res); 
// Warning: don't know what to do with FALSE, as it's not a MySQL result resource

正如其他人所指出的,您需要将有效的mysql资源返回到mysql_fetch_assoc函数中以检索下一行。例如:

$sql = "select * from table";

$resultSet = mysql_query($sql) or die("Couldn't query the database.");
echo "Num Rows: " . mysql_num_rows($resultSet);

while ($resultRowArr = mysql_fetch_assoc($resultSet)) {
    ...
}

正如其他人所指出的,您需要将有效的mysql资源返回到mysql_fetch_assoc函数中以检索下一行。例如:

$sql = "select * from table";

$resultSet = mysql_query($sql) or die("Couldn't query the database.");
echo "Num Rows: " . mysql_num_rows($resultSet);

while ($resultRowArr = mysql_fetch_assoc($resultSet)) {
    ...
}

我认为您需要指定函数
getQuery()


我认为您需要指定函数
getQuery()

$m\u id!=$s\u id


$m\u id!=$s\u id

getmusicfiles()的定义是什么?getQuery()的定义是什么?有调用mysql_查询的功能吗?如果没有,你会得到警告,这是应该的。是的,它可以正常工作,因为我在我的系统中经常使用它site@death孩子:如果它工作正常,你就不会问这个问题;)我们能看到它吗?注意你的参数($m_id)与您试图附加到SQL查询中的值($s_id)不同-也许这是您的问题?getmusicfiles()的定义是什么?getQuery()的定义是什么?有调用mysql_查询的功能吗?如果没有,你会得到警告,这是应该的。是的,它可以正常工作,因为我在我的系统中经常使用它site@death孩子:如果它工作正常,你就不会问这个问题;)我们能看到它吗?注意你的参数($m_id)与您试图附加到SQL查询中的值($s_id)不一样-也许这是您的问题?