无法从数据库中获取数据

时间:2012-10-28 19:16:47

标签: php mysql mysqli

我想从数据库中获取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 ;

?>

3 个答案:

答案 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/>";
}