0

我想从数据库中获取 5 条数据。数据库看起来像这样......

id 用户名 密码 q1 q2 q3 q4 q5 hscore lscore

q1 代表问题一。hscore 和 lcore 代表高/最后得分。

q1 q2 q3 q4 和 q5 的值都是 5、-1 或 0。如果为 5,则表示他们答对了问题,如果 -1 表示他们答错了问题,如果为 0,则表示他们没有尝试那个问题呢。

我想从所有问题中获取所有值并将它们加在一起。然后这会给我一个最后的得分值,我可以在屏幕上打印并更新数据库。

这是我的尝试,它似乎不起作用。如果有人知道为什么或对我如何完成任务有解决方案,请随时提供帮助。

下面的代码试图仅获取 q1 的值并且不起作用。数据库中有不止一行,但我认为您不能在 SELECT 语句中使用 WHERE?

<?php

session_start();

$connection = mysql_connect("mysql15.000webhost.com", "a4987634_quiz", "jimbo1")
or die (mysql_error());

mysql_select_db("a4987634_quiz", $connection)
or die (mysql_error());

$username = $_SESSION["username"];
$password = $_SESSION["password"];

$sql = "Select * as total from users"

$result = mysql_query ($sql)

while($row = mysql_fetch_array($result)) {

$q1 = $row["q1"];

}

echo $q1 ;

?>
4

3 回答 3

1

$q在循环内部定义并在循环外部显示,其中$q已经超出范围。Make print_r($q)or print_r($row)inside 获取周期,你会看到你的结果。

于 2012-10-28T19:19:55.713 回答
0
$sql = "Select field1, field2 from users";
$total= 0;
$result =mysql_fetch_object($resultmysql_query ($sql))
foreach ( $result as $value)
{
    $total = $value["field1"] + $value["field2"];
    echo "$total<br/>";
}
于 2012-10-28T20:18:09.187 回答
0
$sql = "Select id, username, password, q1, q2, q3, q4, q5, hscore, lscore from users WHERE username = '" . mysql_real_escape_string($username) . "'";

if (!($result = mysql_query ($sql))) {
    echo "DB error: " . mysql_errno() . " => " . mysql_error() . "\n"; 
}

if (mysql_num_rows($result) == 0) {
    echo "No rows found\n";
}
else if (mysql_num_rows($result) > 1) {
    echo "More than 1 row found for user $username\n";
}

$last_score = 0;

while($row = mysql_fetch_array($result)) {
    $user = $row["username"];
    $last_score = $row["q1"] + $row["q2"] + $row["q3"] + $row["q4"] + $row["q5"];
    echo "$user => $last_score\n";
}
于 2012-10-28T19:21:56.367 回答