php / mysql返回表中的所有数据或根本不返回任何数据

时间:2014-08-13 09:30:54

标签: php mysql

我目前正在努力完成对大学的评估,但它已经让我疯了好几天,我终于找到了一个很棒的php / mysql等指南。

我要做的是使用学生编号从数据库中显示学生详细信息以获取数据。在按照信息后我发现我设法摆脱了所有的错误信息,但现在当我运行网站显示所需的信息时我什么都没得到。

可以理解,我可以使用select *命令从表中检索所有数据,但只要我将其更改为特定命令,它就不会返回任何数据:

$database="college";
$student_number="student_number";

mysql_pconnect('localhost', 'root', ''); 

$db_found = mysql_select_db($database);

if($db_found)
{
    $SQL = "SELECT * FROM student where student_number = '$student_number'  ";
    $result = mysql_query($SQL);

    while ($db_field = mysql_fetch_array($result))
    {
        echo $db_field['student_number']."<BR>";
        echo $db_field['title']."<BR>";
        echo $db_field['forename']."<BR>";
        echo $db_field['surname']."<BR>";
        echo $db_field['gender']."<BR>";
        echo $db_field['date_of_birth']."<BR>";
        echo $db_field['dept_number']."<BR>";
        echo $db_field['course_number']."<BR>";
    }
}
else
{
    echo"Database not found";
}

任何帮助,建议或指示将不胜感激 提前致谢

2 个答案:

答案 0 :(得分:0)

学号是整数吗?如果是这样,在它周围引用可能是问题所在。因为看起来它应该工作正常:S(即便如此,我认为它应该可以正常工作)。

否则,如果学号是varchar / text数据类型,当你使用LIKE而不是=时会发生什么? 。另一种选择是

SELECT * FROM student WHERE STRCMP('$student_number', student_number) <> 0

//or this:
SELECT * FROM student WHERE student_number IN ('$student_number')

虽然它是一个文本字段,但是应该可以工作,我想,我很长时间没有使用过MySQL。

您的问题也可能出现在您的$ student_number变量中,您可以回显$ SQL以查看它正在解析的内容。

另外,$ db_field应该是$ db_row或$ db_record。

答案 1 :(得分:0)

好的完全踢我自己在这里我只是在宣布变量时错过了$ _POST,我曾尝试过,它没有用,我显然没有想到改变报价。

非常感谢您的回答我相信我会在接下来的几天内回来继续挑选你的大脑