Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Mysql选择地点和订购方式_Php_Mysql_Database_Syntax - Fatal编程技术网

Php Mysql选择地点和订购方式

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_

我有一个积分系统,人们可以升级到[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_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*from
users
WHERE rights='[PRO1]'order by
rights
DESC limit 1”)?因为没有任何东西是钢铁显示的。只有文本是的,这正是它所想的。但是我该怎么做呢?在第二个代码块的第一个查询中,你没有最后一个
s
就写了
对的
!!!