INNER JOIN in PHP

时间:2014-05-02 05:31:35

标签: php mysql

我有一个数据库,由8个表组成。我正在将我的PHP代码与我的数据库链接,现在我想要做的是加入两个独立表的两列并在我的php页面中一起显示它们。但每当我执行我的页面时,它都不提供任何输出。它完全是空的。请帮助我。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link rel="stylesheet" type="text/css" href="style.css" />
<title>SlickRed | florida web design</title>
</head>

<body>
<?php
session_start();
$connection = mysql_connect('localhost','root','');
if(!$connection){
    die("Database Connection Failed". mysql_error());
    }
$select_db = mysql_select_db('hamdard_attendance');
if(!$select_db){
    die("Database Connection Failed" . mysql_error());
    }

if(isset($_POST['username']) && isset($_POST['password'])){
$username = $_POST['username'];
$password = $_POST['password'];

$query_one = "SELECT * FROM users WHERE user_name = '".$username."' AND user_pass = '".$password."'";
$result = mysql_query($query_one) or die(mysql_error());
$count = mysql_num_rows($result);

if ($count == 1){
$_SESSION['username'] = $username;
}else{
echo "Invalid Login Credentials.";
}
}
if (isset($_SESSION['username'])){
$username = $_SESSION['username'];
}


?>
<div id="container">
        <div id="header">
            <h1 style="text-align:left">Quality Management<span class="off"> Cell</span></h1>

        </div>   

        <div id="menu">
            <ul>
                <li class="menuitem"><a href="#">Home</a></li>
                <li class="menuitem"><a href="#">Attendance</a></li>
                <li class="menuitem"><a href="#">Courses</a></li>
                <li class="menuitem"><a href="#">Settings</a></li>

            </ul>
            <a style="text-align:right" href="#">Logout</a>
        </div>





        </div>




        <div id="content">


        <div id="content_top"></div>
        <div id="content_main">
<?php echo "<h2> Welcome ".$username."</h2>"?>
<?php 
if(isset($_POST['stdnt_name']) && isset($_POST['course_name']) && isset($_POST['stdnt_rfid_tag']) && isset($_POST['student_id']) && isset($_POST['course_id'])){
$username = $_POST['stdnt_name'];
$password = $_POST['course_name'];
$username = $_POST['stdnt_rfid_tag'];
$password = $_POST['student_id'];
$username = $_POST['course_id'];

            $query_two = " SELECT s.stdnt_name, c.course_name FROM students s INNER JOIN student_courses sc ON s.stdnt_rfid_tag = sc.student_id INNER JOIN courses c ON sc.course_id = c.    course_id";
    $result_attendance = mysql_query($query_two) or die(mysql_error());
    while($row = mysql_fetch_array($result_attendance)){
        echo $row[1]." ".$row[2]."<br/ >";
        }}
?>

            <p>&nbsp;</p>
            <p>&nbsp;</p>

        <div id="content_bottom"></div>

            <div id="footer"><h3><a href="http://www.bryantsmith.com">florida web design</a></h3></div>
      </div> 
   </div>
</body>
</html>    

1 个答案:

答案 0 :(得分:0)

你说:«但每当我执行我的页面时,它都不会提供任何输出。» 这是关键词! 即使你有错误的SQL问题,这个脚本必须至少产生中间提到的DIV。

您要做的第一件事就是了解浏览器是否有任何回复。 例如。使用Chrome,按F12,然后转到Nenwork标签。然后按F5并注意状态。是(好)200?

如果是500 - 使用命令行执行脚本以找出php语法错误。

php -af yourscript.php

也可以看到脚本根本没有响应(挂起)。在这种情况下要注意mysql_connect('localhost','root','');这条线理论上可能会挂起脚本,这取决于你的apache和浏览器配置,等待超时的时间。

<强> PS

无论问题是什么,当您将从用户接收的文本连接(插入)到SQL代码中时,您都会做一些危险的事情。更多地了解变量绑定和mysql_real_escape_string函数。实际上你的代码存在sql-injection的风险。