PHP代码为每个人显示相同的代码

时间:2012-12-08 21:11:31

标签: php mysql database

我有一个点系统,就像人们登录代码时显示用户从数据库中获取的数据一样。但我发现了一个问题。每个人都有相同的号码。我在桌子上叫管理员,我在它的顶部。但当我将我的点数改为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>";
}
?>

3 个答案:

答案 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 

?>