这个PHP代码有什么问题?随着变量

时间:2011-12-26 10:23:43

标签: php

<?php
session_start();
 //echo "Hello".$_SESSION['uname'];
 $unme=$_SESSION['uname'];
 include("connection.php");
 $query_qt=mysql_query("SELECT * FROM regst WHERE unme='$unme'");
 $info = mysql_fetch_array($query_qt);

    if($info)
    {
        $qt=$info['point'];
    }
    echo "Question ".$qt;
if($qt=='0')
    header("location:question1.php");
else if($qt=='1')
    header("location:question2.php");   
else if($qt=='2')
    header("location:question3.php");

?>

此代码实际上无法正常工作......任何人都可以帮助我吗?我想我在$ qt变量上没有任何价值。

6 个答案:

答案 0 :(得分:1)

通过查看PHP手册网站,您可以看到使用mysql_fetch_array()的方式是生成一个与任何键无关的数组:

“返回与获取的行对应的字符串数组,如果没有更多的行,则返回FALSE。返回的数组的类型取决于result_type的定义方式。使用MYSQL_BOTH (default),您将得到一个包含关联索引和数字索引的数组。使用MYSQL_ASSOC,您只能获得关联索引(mysql_fetch_assoc()工作),使用MYSQL_NUM,您只能获得数字索引(因为mysql_fetch_row()有效)“。

您可以使用mysql_fetch_assoc()代替,或定义mysql_fetch_array()的第二个参数以满足您的需求(MYSQL_BOTH / MYSQL_ASSOC)。

mysql_fetch_array manual

答案 1 :(得分:0)

试试这个

<?php
session_start();
 //echo "Hello".$_SESSION['uname'];
 $unme=$_SESSION['uname'];
 include("connection.php");
 $query_qt=mysql_query("SELECT * FROM regst WHERE unme='$unme'");
 $info = mysql_fetch_object($query_qt);

    if($info)
    {
        $qt=$info['point'];
    }
    echo "Question ".$qt;
if($qt=='0')
    header("location:question1.php");
else if($qt=='1')
    header("location:question2.php");   
else if($qt=='2')
    header("location:question3.php");

?>

答案 2 :(得分:0)

使用此:

while($info)
{
    $qt=$info['point'];
}

而不是:

if($info)
{
    $qt=$info['point'];
}

答案 3 :(得分:0)

//use mysql_real_escape_string
session_start();
$unme=$_SESSION['uname'];
include("connection.php");

$query_qt=mysql_query("SELECT point FROM regst WHERE unme='$unme'");
$info = mysql_fetch_row($query_qt);
if($info) {
    $qt=$info[0];
}
echo "Question ".$qt;
if(empty($qt))
header("location:question1.php");
else if($qt=='1')
header("location:question2.php");   
else if($qt=='2')
header("location:question3.php");

答案 4 :(得分:0)

您的代码似乎没问题。问题可能是当$_SESSION['uname']表中的unme列中没有值regst的相应条目时,您的查询不会返回任何内容。您能否确认regst表中是否有unme列中的值与$_SESSION['uname']中存储的值以及point列中的相应值?

答案 5 :(得分:0)

试试这个

<?php
session_start();
 //echo "Hello".$_SESSION['uname']; 
 $unme=$_SESSION['uname']; // or  $unme=$_post['uname'];
 include("connection.php");
 $query_qt=mysql_query("SELECT * FROM regst WHERE unme='$unme'");

 $info = mysql_fetch_object($query_qt);

    if($res= while($info)) // you must be use loop
    {
       $qq = res['point'];
    }
    echo "Question ".$qq;
if($qt=='0')
    header("location:question1.php");
else if($qt=='1')
    header("location:question2.php");   
else if($qt=='2')
    header("location:question3.php");

?>