Php Mysql选择地点和订购方式
我有一个积分系统,人们可以升级到[PRO1]用户。everyones权限(pro1、pro2、user)存储在my mysql users表中。但我想制作一个小提要,显示升级到[PRO1]的最新提要。升级代码:Php Mysql选择地点和订购方式,php,mysql,database,syntax,Php,Mysql,Database,Syntax,我有一个积分系统,人们可以升级到[PRO1]用户。everyones权限(pro1、pro2、user)存储在my mysql users表中。但我想制作一个小提要,显示升级到[PRO1]的最新提要。升级代码: $insert = "UPDATE `users` SET `points` = (`points`-50) WHERE `username` = '".$username."' and points > 50"; mysql_query($insert); if (mysql_
$insert = "UPDATE `users` SET `points` = (`points`-50) WHERE `username` = '".$username."' and points > 50";
mysql_query($insert);
if (mysql_affected_rows() > 0)
{
// other codes
$insert = "UPDATE users SET rights=' [PRO1]' WHERE `username` = '".$username."'";
mysql_query($insert);
header('location: succesupgrade.php');
}else{
echo "You don't have enough points";
}
?>
升级代码工作正常(以防我需要添加时间/日期。我希望“'username'不是最后一个升级到[PRO1]”的代码在此代码中:
<?php
require("dbc.php");
$query = mysql_query("select * from users WHERE rights='[PRO1]' order by right DESC limit 1") or die(mysql_error());
while($array = mysql_fetch_array($query)) {
echo "{$array['username']}<br>";
}
?>was the last to upgrade to:
<?php
require("dbc.php");
$query = mysql_query("select * from users WHERE rights='[PRO1]' order by rights DESC limit 1") or die(mysql_error());
while($array = mysql_fetch_array($query)) {
echo "{$array['rights']}<br>";
}
?>
原因是因为right
是一个使用过的关键字,您需要一个回击来解决此问题:
比如:
select * from `users` WHERE rights='[PRO1]' order by `rights` DESC limit 1
在第二个代码块的第一个查询中,orderbyrights
必须是orderbyrights
。该查询不会告诉您最后一个升级到rights='的用户是谁。[PRO1]“
。这只是一个字符串字段。您需要某种类型的datetime/timestamp字段,该字段在用户权限更改时更新,您可以使用它进行排序
您也不需要执行两个查询,您有两个查询执行完全相同的操作
只要做:
SELECT username FROM users WHERE rights='[PRO1]' ORDER BY update_timestamp DESC LIMIT 1
其中,update\u timestamp
将是权限更改时更新的字段。新应用程序不应使用易发生意外的吱吱作响的mysql\u查询
界面。您不是,并且可能因此而有几个严重的SQL注入错误。嗯……当我替换代码时,什么都没有发生。ony文本(是最新升级到“displayedi’m goign”的代码:$query=mysql\u query(“select*fromusers
WHERE rights='[PRO1]'order byrights
DESC limit 1”)?因为没有任何东西是钢铁显示的。只有文本是的,这正是它所想的。但是我该怎么做呢?在第二个代码块的第一个查询中,你没有最后一个s
就写了对的!!!