从两个表上的JOIN查询检索到的数组上的错误

时间:2014-08-06 20:38:06

标签: php arrays join

希望我的头衔清楚。我试图从两个表中检索结果。 所以我想从名为'albums'的表中获取所有内容(因此*)。 而且我只希望所有匹配(使用album_id)结果来自表'贡献者'。

$result = mysql_query("SELECT * FROM albums LEFT JOIN contributors ON albums.album_id = 
contributors.album_id ORDER BY albums.datum DESC; ") or die(mysql_error());

$aantal_rijen = mysql_num_rows($result);

if ($aantal_rijen > 0) {

for ($i = 0; $i < $aantal_rijen; $i++){


$contributors[] = mysql_result($result, $i, 'contributors');}

但是我得到了类似错误的列表:

  在MySQL结果索引中找不到

贡献者......

加入两个表对我来说是全新的,也许这不是可行的方法,但也许这只是一个简单的错误,无论如何,我被困在这里,

欢迎所有帮助 thx S

1 个答案:

答案 0 :(得分:0)

http://php.net/manual/en/function.mysql-result.php

  

字段

     

要检索的字段的名称或偏移量。

     

它可以是字段的偏移量,字段的名称或字段的表点字段   name(tablename.fieldname)。如果列名称有   别名('select foo as bar from ...'),使用别名代替   列名称。如果未定义,则检索第一个字段。

您只是使用表名贡献者,因此您需要指定一个字段或将您的选择限制为只有您想要的字段

$contributors[] = mysql_result($result, $i, 'contributors.name');

OR

$result = mysql_query("
    SELECT contributors.* 
    FROM albums 
    LEFT JOIN contributors ON albums.album_id = contributors.album_id 
    ORDER BY albums.datum DESC; 
") or die(mysql_error());