我有一个点系统,就像人们登录代码时显示用户从数据库中获取的数据一样。但我发现了一个问题。每个人都有相同的号码。我在桌子上叫管理员,我在它的顶部。但当我将我的点数改为20时,每个人都得到20分。不是在数据库中他们得到20但只在页面上它消失20.脚本是:
<?php
require("dbc.php");
$id = 1; //id or primary key of the user whose point you want to display
$query = mysql_query("select * from users where id = $id") or die(mysql_error());
while($array = mysql_fetch_array ($query)) {
echo "{$array['points']}<br>";
}
?>
答案 0 :(得分:2)
您的问题是您的id变量使用固定数字。您需要做的是使用$id= $_POST['variable_name']
或`$ id = $ _ GET ['variable_name']
例如,如果您从html输入(例如文本框)获取播放器。你的HTML将是
<input type="text" name="fname">
你的身份证明
$id= $_POST['fname'];
$ _GET []有点难以解释。观看此视频https://www.youtube.com/watch?v=RZPLTiNlx8c,了解有关$ _GET []
的信息答案 1 :(得分:1)
尝试为其他用户打印$ id的值(与var_dump函数一样)以检查它是否正确。
如果这不能解决问题,请尝试遍历您的代码,并在每个地方确认每个变量都具有您认为的值。
答案 2 :(得分:1)
第$id = 1; //id or primary key of the user whose point you want to display
行没有出现。
PRIMARY KEY唯一标识数据库表中的每条记录。每个表只能有一个主键,并且必须包含唯一值但不能包含NULL值。为了快速查询性能,每个表都应该有一个主键。
这意味着每个用户都应拥有自己唯一的ID。
以下代码使用了不推荐使用的mysql_extention,你应该使用MySQLi或PDO_MySQL
<?php
require("dbc.php");
$id = ;// $_POST or $_GET
$query = mysql_query("select * from users where id = $id") or die(mysql_error());
$row = mysql_fetch_row($query);
echo $row[0]; //Assuming 0 is id
?>