对于PHP我是新手,但是我不明白我的语法在这个语句中是错误的,或者我如何从我的MySQL服务器中获取一个int。
我知道我的服务器凭据工作正常。我如何修复此语句以给我返回userinfo表中的评论数量的整数?
$numberofpreviousreviews = mysql_query("SELECT `number_of_reviews` FROM `userinfo`") or die(mysql_error()); //Check to see how many reviews user has previously created
$amountofreviews = $numberofpreviousreviews + 1;
$query2 = mysql_query("ALTER TABLE userinfo ADD `amountofreviews` VARCHAR(10000)") or die(mysql_error()); //Make another column in database for the new review
答案 0 :(得分:2)
运行查询后,您需要获取结果。有几种方法可以做到这一点,但使用mysql_fetch_assoc()
将对您有用。
$numberofpreviousreviews = mysql_query("SELECT `number_of_reviews` FROM `userinfo`") or die(mysql_error()); //Check to see how many reviews user has previously created
$row = mysql_fetch_assoc($numberofpreviousreviews);
$amountofreviews = $row['number_of_reviews'] + 1;
仅供参考,您不应再使用mysql_*
功能了。它们已被弃用并消失。您应该使用mysqli
或PDO
。
答案 1 :(得分:1)
假设您有一个表userinfo
,它具有以下结构和数据:
情景#1 :
如果您想要检索所有number_of_reviews
,请执行此操作,
$query = "SELECT `number_of_reviews` FROM `userinfo`";
$result = mysqli_query($db,$query);
while ($row = mysqli_fetch_assoc($result)) {
echo "Number of reviews : " . $row['number_of_reviews'] . "<br/>";
}
它会给你,
Number of reviews : 20
Number of reviews : 40
因为结果有很多行,所以会显示如上所示。
情景#2 :
如果您只想检索特定number_of_reviews
的某个用户ID(这是唯一的)。我以id
为1
作为示例。那就好了,
$query2 = "SELECT `number_of_reviews` FROM `userinfo` WHERE `id` = 1";
$result2 = mysqli_query($db,$query2);
while ($row2 = mysqli_fetch_assoc($result2)) {
echo $row2['number_of_reviews'] . "<br/>";
}
这将打印,
20.
因为number_of_reviews
1 id
为20。