2010-01-24 63 views
1

我試圖從數據庫中提取一些結果,但我想我今天有點腦殘。在解析MySQL的結果時遇到麻煩php

$castquery = "SELECT * FROM cast " . 
    "WHERE player_id = '" . $userid ."' "; 
$castresult = mysql_query($castquery) or die(mysql_error()); 
$castrow = mysql_fetch_array($castresult); 

...

foreach($castrow['cast_id'] as $caster) 
{ 
    echo "<p>"; 
    if ($caster['avatar_url']!='') echo "<img src=\"".$caster['avatar_url']."\" alt=\"".$caster['name']."\">"; 
    echo "<a href=\"?edit=".$caster['cast_id']."\">".$caster['name']."</a></p>"; 
} 

當然我在這裏可以俯瞰東西明顯。

+0

怎樣的劇本會失敗,什麼結果是你想獲得? – Matchu 2010-01-24 19:07:12

回答

4

不知道你的數據庫結構是什麼,但$castrow['cast_id']是一個字段,而不是一個數組。你大概的意思是:

while ($castrow = mysql_fetch_array($castresult)) { 
    // use $castrow array here 
} 

foreach

+0

'castrow'在技術上應該叫做'castrows',因爲它是一組行,而不是一行。 – 2010-01-24 20:11:11

+0

嗯,從技術上講,每次你調用mysql_fetch_array()時,你會得到*一行*,而不是很多。 – 2010-01-24 20:48:11

+0

謝謝,我知道這是簡單而愚蠢的事情。 – aslum 2010-01-24 22:41:47

1

首先的,而不是,你的代碼將只取一排,因爲它是現在。

$castrow = mysql_fetch_array($castresult); 

foreach($castrow['cast_id'] as $caster) 
{ 

應該

while ($castrow = mysql_fetch_array($castresult)) { 

    $caster = $castrow['cast_id']; 
    ....