$id=mysql_query("Select customerId from LoginInfo where username='$un'");
$res4=mysql_query("SELECT d.title, dateRented, totalRent
FROM CustomerDvdRental c, DvdInventory d
WHERE c.customerId = '$ID[0]' && d.dvdId = c.dvdId");
如何使用$id
作为我的其他选择查询的输入请帮助我尝试了一切,我猜它不起作用。
答案 0 :(得分:3)
您需要从查询对象中获取一行,因为mysql_query只返回一个资源,并且无法像数组一样访问它。所以第二行包括代码:
$id = mysql_fetch_array($id);
这可以解决您的问题。
但最后我会将代码清理得更简洁。这将使您的代码更易于维护。 e.g。
$resource=mysql_query("Select customerId from LoginInfo where username='$un'");
$loginInfo = mysql_fetch_array($resource);
$res4=mysql_query("SELECT d.title, dateRented, totalRent
FROM CustomerDvdRental c, DvdInventory d
WHERE c.customerId = ".$loginInfo[0]." && d.dvdId = c.dvdId");
参考文献:这将向您展示一些示例,并告诉您该函数的作用:http://us2.php.net/mysql_query
注意:我认为这种做法并不好。您根本没有检查输入,甚至没有转义sql字符。这会打开你的sql注入应用程序。 http://en.wikipedia.org/wiki/SQL_injection 为了避免这种情况,我可能会重写整个代码库以使用mysqli自动转义引号等,然后检查输入到白名单。
答案 1 :(得分:1)
尝试加入
SELECT d.title,.. FROM DvdInventory d 加入CustomerDvdRental c ON d.dvdId = c.dvdId 加入LoginInfo l ON c.customerId = l.customerId AND l.username ='$ un'
答案 2 :(得分:0)
以小写字母尝试$id[0]
。 Php区分大小写。
编辑:像以前的回复一样添加:
$id = mysql_fetch_array($id);
小心这个案子。