这段php代码有什么问题?与变量


What's wrong with this php code? With variable

<?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变量的任何值。

通过检查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手册

试试这个

<?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");
?>

使用

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

而不是:

if($info)
{
    $qt=$info['point'];
}
//使用mysql_real_escape_stringsession_start ();美元unme = $ _SESSION (uname");包括("connection.php");$query_qt=mysql_query("SELECT point FROM regst WHERE unme='$unme'");$info = mysql_fetch_row($query_qt);如果($ info) {qt = info美元[0];}$qt;如果(空(qt美元))标题("位置:question1.php");else if ($ qt = = ' 1 ')标题("位置:question2.php");else if ($ qt = = ' 2 ')标题("位置:question3.php");

try this

<?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");
?>

您的代码似乎很好。问题可能是,当regst表的unme列中没有存储值$_SESSION['uname']的对应条目时,您的查询没有返回任何内容。请确认regst表中是否有这样一个表项,即unme列中的值与$_SESSION['uname']中存储的值相同,point列中对应的值?