$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作为其他select查询的输入请帮助我尝试了所有我认为不起作用的内容。

最佳答案

您需要从查询对象中获取一行,因为mysql_query只返回一个资源,不能像数组一样访问它。所以第二行包括代码:

$id = mysql_fetch_array($id);

这应该能解决你的问题。
但最后我会把代码整理得更简洁。这将使您的代码更易于维护。例如
$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自动转义引号之类的内容,然后检查白名单中的输入。

关于php - Select查询的输出将用作php中其他查询的输入,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20181606/

10-11 01:39