我想从数据库中获取5个数据。数据库看起来像这样......
id username password q1 q2 q3 q4 q5 hscore lscore
q1代表问题一。 hscore和lscore代表高/最后得分。
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 ;
?>
答案 0 :(得分:1)
$q
在一个循环中定义并显示在其外部,其中$q
已经超出范围。在提取周期内设置print_r($q)
或print_r($row)
,您将看到结果。
答案 1 :(得分: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";
}
答案 2 :(得分: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/>";
}