获取SQL表值的最有效方法是什么?

时间:2017-02-12 08:53:08

标签: javascript php mysql sql ajax

我一段时间后写了一些代码,以便在他们登录网站时检索玩家的已保存分数。它使用了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列。我现在不需要参考它们

https://ibb.co/gq8u5a

1 个答案:

答案 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”替换为实际的表名,因为这在您附加的屏幕截图中不可见。