Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/241.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用于检索名称的PHP和mysql查询_Php_Mysql - Fatal编程技术网

用于检索名称的PHP和mysql查询

用于检索名称的PHP和mysql查询,php,mysql,Php,Mysql,我有以下代码,它根据用户的登录详细信息从表中获取用户数据 //========================================== // CONNECT TO THE LOCAL DATABASE //========================================== $user_name = "xxxx"; $pass_word = "xxxxx"; $database = "xxxx"; $server = "xxxxxx"; $db_handle =

我有以下代码,它根据用户的登录详细信息从表中获取用户数据

//==========================================
//  CONNECT TO THE LOCAL DATABASE
//==========================================
$user_name = "xxxx";
$pass_word = "xxxxx";
$database = "xxxx";
$server = "xxxxxx";

$db_handle = mysql_connect($server, $user_name, $pass_word);
$db_found = mysql_select_db($database, $db_handle);

if ($db_found) {
    $SQL = "SELECT * FROM students WHERE L1 = '$uname' AND L2 = '" .md5 ($_POST['password'])."'";
    $result = mysql_query($SQL);
    $num_rows = mysql_num_rows($result);

    //====================================================
    //  CHECK TO SEE IF THE $result VARIABLE IS TRUE
    //====================================================

    if ($result) {
        if ($num_rows > 0) {
            $color="1";

            $result = mysql_query("SELECT * FROM entry, students   WHERE entry.studentName = students.studentName AND students.L1='$uname' ") or die(mysql_error());  

            echo "<p>Welcome "; echo $row[studentName];
            echo "<p>You records as of ";
            echo date('l jS \of F Y h:i:s A');  

            echo "<table border='1' cellpadding='2' cellspacing='0'>";
            echo "<tr> <th>Date</th><th>Student Name</th> <th>Tutor name</th> <th>Procedure name</th> <th>Grade</th><th>Student Reflection</th><th>Tutor Comments</th><th>Professionalism</th> <th>Communication</th> <th>Alert</th> <th>Dispute</th> </tr>";
            // keeps getting the next row until there are no more to get

            while($row = mysql_fetch_array( $result )) {
                if($color==1){
                    echo "<tr bgcolor=#DDD ><td>".$row['date']."</td><td>".$row['studentName']."</td><td>".$row['tutorName']."</td><td>".$row['procedureName']."</td><td>".$row['grade']."</td><td>".$row['studentReflection']."</td><td>".$row['tutorComments']."</td><td>".$row['professionalism']."</td><td>".$row['communication']."</td><td>".$row['alert']."</td><td>".$row['dispute']."</td></tr>";

                    // Set $color==2, for switching to other color
                    $color="2";
                }
                // When $color not equal 1, use this table row color
                else {
                    echo "<tr bgcolor='#CCC'><td>".$row['date']."</td><td>".$row['studentName']."</td><td>".$row['tutorName']."</td><td>".$row['procedureName']."</td><td>".$row['grade']."</td><td>".$row['studentReflection']."</td><td>".$row['tutorComments']."</td><td>".$row['professionalism']."</td><td>".$row['communication']."</td><td>".$row['alert']."</td><td>".$row['dispute']."</td></tr>";
                    // Set $color back to 1
                    $color="1";
                }
            }
            echo '</table>';
        }
//==========================================
//连接到本地数据库
//==========================================
$user_name=“xxxx”;
$pass_word=“xxxxx”;
$database=“xxxx”;
$server=“xxxxxx”;
$db\u handle=mysql\u connect($server、$user\u name、$pass\u word);
$db\u found=mysql\u select\u db($database,$db\u handle);
如果($db_){
$SQL=“从L1='$uname'和L2='”的学生中选择*。.md5($\u POST['password'])。”;
$result=mysql\u查询($SQL);
$num\u rows=mysql\u num\u rows($result);
//====================================================
//检查$result变量是否为TRUE
//====================================================
如果($结果){
如果($num_rows>0){
$color=“1”;
$result=mysql_query(“从条目中选择*,其中entry.studentName=students.studentName和students.L1='$uname')或die(mysql_error());
echo“Welcome”echo$行[studentName];
echo“您记录的截止日期”;
回音日期('l jS\of F Y h:i:sa');
回声“;
echo“日期学生姓名导师姓名程序姓名成绩学生反思教师评论专业交流警示争议”;
//一直排到下一排,直到没有更多的东西了
while($row=mysql\u fetch\u数组($result)){
如果($color==1){
回音“$row['date']”、$row['studentName']”、$row['tutorName']”、$row['procedureName']”、$row['grade']”、$row['studentReflection']”、.$row['tutorComments']”、$row['professionalization']、$row['communication']、$row['alert']、$row['disference'];
//设置$color==2,用于切换到其他颜色
$color=“2”;
}
//当$color不等于1时,请使用此表格行颜色
否则{
回音“$row['date']”、$row['studentName']”、$row['tutorName']”、$row['procedureName']”、$row['grade']”、$row['studentReflection']”、.$row['tutorComments']”、$row['professionalization']、$row['communication']、$row['alert']、$row['disference'];
//将$color设置回1
$color=“1”;
}
}
回声';
}
我想做的是回显或打印出表上方的用户名,但我很难做到。我唯一想让它工作的是将其添加到while循环中,但它会打印出用户记录的次数


您能帮忙吗?

您需要获取第一行才能访问用户信息。这意味着您必须在循环之前调用一次
mysql\u fetch\u array

这会给您带来麻烦,因为您还需要在循环中调用它。您可以通过使用各种布尔标志或行的副本来解决这个问题,但最好的方法是稍微更改代码的结构

使用
do-while循环
,并结合
if语句
。这允许您首先获取一行,如果未找到任何行,则执行特殊操作。之后,您得到一个循环,它执行现在的操作,只检查迭代后是否有下一行,而不是之前,否则将在t中跳过第一行有能力的输出

if ($row = mysql_fetch_array( $result )) {
  // Print user info
  // Print table header

  do {

    // Print table row

  } while ($row = mysql_fetch_array( $result ));

  // Print table footer
}
else
{
  // User not found. Print error or whatever.
}

您需要获取第一行才能访问用户信息。这意味着您必须在循环之前调用
mysql\u fetch\u array
一次

这会给您带来麻烦,因为您还需要在循环中调用它。您可以通过使用各种布尔标志或行的副本来解决这个问题,但最好的方法是稍微更改代码的结构

使用
do-while循环
,并结合
if语句
。这允许您首先获取一行,如果未找到任何行,则执行特殊操作。之后,您得到一个循环,它执行现在的操作,只检查迭代后是否有下一行,而不是之前,否则将在t中跳过第一行有能力的输出

if ($row = mysql_fetch_array( $result )) {
  // Print user info
  // Print table header

  do {

    // Print table row

  } while ($row = mysql_fetch_array( $result ));

  // Print table footer
}
else
{
  // User not found. Print error or whatever.
}

你的逻辑有错误。。。 您正在制作学生表,您希望响应已登录的学生的欢迎

但是您可以使用echo“Welcome”echo$row[studentName];


如果未设置$row…此名称应来自上一个select…

您的逻辑有错误。。。 您正在制作学生表,您希望响应已登录的学生的欢迎

但是您可以使用echo“Welcome”echo$row[studentName];


如果未设置$row…此名称应来自上一个select…

我看到您的代码中有一个错误:您声明了$user_name,并且在SQL查询中使用了$UNAMETHETH。这不是问题。我可以很好地连接到数据库并获取用户记录,但在生成表之前,我想回显用户的全名,即保存在学生表中。$uname是用于html登录类型的表单,我用于学生登录inNot,这将回答您的问题,但如果您使用的是PHP5,则不应使用mysql_uu命令,因为它们已被弃用。您应切换到使用mysqli或PDO。$row['studentName'];注意“and”。顺便说一句,在尝试使用$row之前,您必须先获取SQL结果。谢谢alex,但我遇到的问题是,如果在获取$row结果之后,我将其作为它来获取,那么我可以添加它的唯一位置是在while循环中,这意味着它将返回该特定学生的记录次数。我在您的日志中看到一个错误代码:您已经声明了$user\u name,并且在SQL查询中使用了$unameth。这不是问题。我可以很好地连接到数据库并获取用户记录,但在生成表之前,我希望回显用户的记录