PHP - 从同一行的主键获取第二列值

时间:2012-10-12 21:28:50

标签: php mysql database select

我在一个数据库中有两个表。

id | title
---------           // table name is tableone
1  |  a
2  |  b
3  |  c
4  |  d
5  |  a
6  |  b
7  |  c
8  |  d

对于第一个表,主键是ID列。从这个表我使用PHP来创建一个工作正常的HTML表。

第二张表

id | version
---------
a  |  1
b  |  3
c  |  6
d  |  7

在第一个表的while循环中,我已将标题值预定义为

$title = $id['title'];

在while循环中我正在使用另一个while循环但是这次我尝试使用预定义的标题来访问第二个表上匹配的id对应的版本行值:

mysql_query("SELECT version FROM tableone WHERE ID=".$title)

然而我暗示了错误

  

未知栏' a'在' where子句'

问题是什么?我该如何解决?

2 个答案:

答案 0 :(得分:2)

您必须将$ title括在引号中,如下所示:

mysql_query("SELECT version FROM tableone WHERE ID='".$title."'")

如果您有用户提供的输入,则应确保您的代码在所有情况下都是安全的。

在这篇文章中有一些关于它的好信息:https://stackoverflow.com/questions/3714107/php-mysql-security-checklist-the-definitive-practical-guide

答案 1 :(得分:1)

不是在循环中进行单独的查询,而是使用连接通过一个查询获取所有信息可能更好:

SELECT t1.id AS id, title, version
FROM tableone t1
JOIN tabletwo t2 ON t1.title = t2.id