2009-12-14 135 views
1

我想從MySQL訪問一些信息,但得到了警告:mysql_fetch_assoc():提供的參數不是下面第二行代碼的有效MySQL結果資源,任何幫助將不勝感激。php警告mysql_fetch_assoc

$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; 
} 
+0

getmusicfiles()'的定義是什麼? – 2009-12-14 15:16:35

+0

getQuery()的定義是什麼?有沒有在那裏調用mysql_query的地方?如果沒有,你會得到警告,因爲它應該是。 – Piskvor 2009-12-14 15:31:52

+0

是啊有,並且它工作正常,因爲我在我的網站中使用了它很多 – 2009-12-14 15:35:18

回答

1

沒有看到getmusicfiles的代碼,沒有很多我們可以真正幫助你。你應該在該函數中返回一個有效的mysql資源。

0

這取決於究竟是什麼getmusicfiles() does。它必須返回mysql_query()函數調用的結果,那麼它將是「有效的MySQL結果」。

而且您最有可能想要將$mus=mysql_fetch_assoc($musicfiles)一行放入for循環中,以便一個接一個地取出幾行。

5

一般來說,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_fetch_assoc這不是一個MySQL的結果資源(不管它是一個字符串,對象或布爾)時,函數會抱怨它不知道如何處理參數;這正是你所看到的。

一個常見的問題

$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 
1

正如其他人所指出的那樣,你需要返回一個有效的MySQL資源到:如果你傳遞(有效的查詢字符串等)的東西,mysql_query你得到這個警告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)) { 
    ... 
} 
0

我想你需要指定哪些功能getQuery()

$result=getQuery($music,$l); 

確實

0
function getmusicfiles($m_id) { 
$music="select * from music WHERE itemid=".$s_id; 

$m_id != $s_id

相關問題