Php 一次从两个表中获取信息?

Php 一次从两个表中获取信息?,php,mysql,Php,Mysql,我需要在一个查询中从两个表中获取信息,我在谷歌上搜索它,它找到了连接? 我有这个密码 mysql_query("SELECT code, url FROM apilinks, links WHERE apilinks.code='$code' and links.code='$code'"); 但它似乎不起作用,它输出了这个mysql错误 Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resou

我需要在一个查询中从两个表中获取信息,我在谷歌上搜索它,它找到了连接? 我有这个密码

mysql_query("SELECT code, url FROM apilinks, links WHERE apilinks.code='$code' and links.code='$code'");
但它似乎不起作用,它输出了这个mysql错误

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /home/codyl/public_html/projects/tests/tirl/code.php on line 18
我需要让它在links表和apilinks表中查找url和代码,因为url有一个get变量,“apilinks”的设置与“links”不同
因此,它将具有相同的url外观,但必须检查两个表

我不认为您的错误来自SQL查询,但无论如何:

SQL查询生成笛卡尔乘积。apilinks中的每一行都与links中的每一行联接。这很少是你想要的。您需要向WHERE子句添加一个
JOIN
条件

根据您的查询,我猜
code
是您想要加入的列

SELECT links.code, url 
FROM apilinks, links 
WHERE apilinks.code=links.code
AND links.code='$code'
或者使用显式联接,这对您来说可能更明显:

SELECT links.code, url 
FROM apilinks INNER JOIN links ON apilinks.code=links.code
WHERE links.code='$code'

我认为您需要指定所需的
code
列:

SELECT links.code, links.url 
FROM   apilinks, links 
WHERE  apilinks.code='$code' 
AND    links.code='$code'
另一种语法:

mysql_query("SELECT a.code, l.url FROM apilinks a, links l WHERE a.code='$code' and l.code='$code'");

请注意,我假设url字段在links表中。

该错误似乎与查询本身无关……使用
mysql\u error()
可以获得更好的错误消息!这个问题很好。你需要发布你的代码。
mysql\u query(“query HERE”)或die(mysql\u error())
非常适合调试。我需要它来检查链接和apilinks中的代码和url。你已经在检查这两个链接了。如果您想同时选择两者,可以使用
select links.code,apilinks.code
SELECT a.code, a.url 
FROM apilinks a, links l 
ON ( a.code = l.code )
WHERE a.code = "$code";