我一段时间后写了一些代码,以便在他们登录网站时检索玩家的已保存分数。它使用了AJAX,看起来像这样:
使用Javascript:
function getHighScore(user){
$.get("getScore.php?userName="+user,function(data){
console.log(data);
output = data;
});
}
PHP:
<?php
$username = strval($_GET['userName']);
$con = mysqli_connect('localhost','XXXX','XXXX','XXXX');
if (!$con) {
die('Could not connect: ' . mysqli_error($con));
} else {
$sql="SELECT * FROM users WHERE username = '".$username."'";
$result = mysqli_query($con,$sql);
while($row = mysqli_fetch_array($result)) {
$wealth = $row['wealth'];
echo $wealth;
}
}
mysqli_close($con);
//return $wealth;
?>
我今天面对的事实是我必须从数据库中获取大量数据,所以我看了一下我写的旧高分代码。我将附上表格的截图,我将从中检索信息。无论如何,我需要从6列和10行获取信息。我需要在MON1上为P1,P2,P3等数据分配PHP变量; TUE1上的P1,P2,P3等;依此类推,直到我们在FRI2上达到P6。我对PHP非常陌生,那么最好的办法是什么呢?
如果我奇怪地说出这个问题,我道歉。随意询问您是否理解不了解。谢谢!
PS:忽略P#_WORK列。我现在不需要参考它们
答案 0 :(得分:1)
我建议您使用一个对象来存储所有内容,使用“day”列作为键,并将P *列作为值放在另一个中。以下是您可以立即使用的一些代码:
<?php
$con = mysqli_connect('localhost','XXXX','XXXX','XXXX');
if(!$con) exit('Could not connect: ' . mysqli_error($con));
$username = $_GET['userName'];
$sql = "SELECT * FROM TABLE WHERE username = '%s'";
$results = $con->query(sprintf($sql, $con->escape_string($username))); // Always escape parameters to prevent SQL injection attacks
$data = new stdClass; // An empty object
while($result = $results->fetch_object()){
$day = $result->day; // Use the day as the key of the object
$data->{$day} = $result;
}
// Now we output the results below by accesing the data in a chain-like fashion by accesing the "data" object
echo $data->MON1->P1 . '<br>'; // will output "Geo E"
echo $data->FRI1->P4 . '<br>'; // will output "Maths"
echo $data->THU2->P6 . '<br>'; // will output "DT"
请务必将SQL查询中的“TABLE”替换为实际的表名,因为这在您附加的屏幕截图中不可见。