drj58429 2016-07-21 04:55
浏览 52

显示SQL数据库中的特定数据

I have a database called 'members' with a table called 'users'. The users table has an 'id' column that auto-increments every time a new user is added. I want to fetch the id of the logged in user and display that singular row of data. This is my login code:

    <?php
    session_start();
    // Connect to server and select databse.
    mysql_connect("localhost", "root", "")or die("cannot connect"); 
    mysql_select_db("members")or die("cannot select DB");
    // username and password sent from form 
    $prepreemail=$_POST['email']; 
    $prepremypassword=$_POST['mypassword']; 
    $preemail = stripslashes($prepreemail);
    $premypassword = stripslashes($prepremypassword);
    $email = mysql_real_escape_string($preemail);
    $mypassword = mysql_real_escape_string($premypassword);
    $sql="SELECT * FROM users WHERE email='$email' and password='$mypassword'";
    $result=mysql_query($sql);


    // Mysql_num_row is counting table row
    $count=mysql_num_rows($result);
    // If result matched $myusername and $mypassword, table row must be 1 row
    if($count==1){
    // Register $myusername, $mypassword and redirect to file "login_success.php"
    header ("location:home.html");
    }
    else 
    {
    header ("location:sign_in.php");
    }
    ?>

This is my sign up code:

    <?php
    session_start();
    $con = mysql_connect("localhost","root","");
    if (!$con)
      {
      die('Could not connect: ' . mysql_error());
      }

    mysql_select_db("members", $con);

    $sql="INSERT INTO users (name, email, address, dob, password)
    VALUES
    ('$_POST[name]','$_POST[email]','$_POST[address]','$_POST[dob]','$_POST[mypassword]')";

    if (!mysql_query($sql,$con)) die('Error: ' . mysql_error());
    $_SESSION['userID'] = "SELECT id from users";

    {
        header ("Location: sign_in.php");
        exit;
    }

    mysql_close($con)
    ?>

And this is my display user details code:

    <?php
    session_start();
    // Create connection
    $conn = new mysqli("localhost", "root", "", "members");
    // Check connection
    if ($conn->connect_error) {
        die("Connection failed: " . $conn->connect_error);
    } 
    $userID = $_SESSION['userID'];
    $sql = "SELECT name, email, address, dob FROM users WHERE `users`.`id`=$userID";
    $result = $conn->query($sql);

    if ($result->num_rows > 0) {
        echo "<table><tr><th>Name</th><th>Email</th><th>Address</th><th>DOB</th></tr>";
        // output data of each row
        while($row = $result->fetch_assoc()) {
            echo "<tr><td>".$row["name"]."</td><td>".$row["email"]."</td><td>".$row["address"]."</td><td>".$row["dob"]."</td></tr>";
        }
        echo "</table>";
    } else {
            echo "<p>No Details</p><style>p{color: #336699; font-size: 20pt; font-family: Gulim; font-weight: bold; align: center; padding: 10px; position: absolute; top: 250; left: 600; z-index: 2; border-spacing: 0px;}</style> ";
    }
    $conn->close();
    ?>

For some reason it is not working, someone please help!

  • 写回答

1条回答 默认 最新

  • doushuangdui5419 2016-07-21 05:24
    关注

    Actually your code has several mistakes... and not clear your questions... I think some changes needs for your questions and code.Please set session variable while fetching information from database.

    <?php
    session_start();
    // Connect to server and select databse.
    mysql_connect("localhost", "root", "")or die("cannot connect"); 
    mysql_select_db("members")or die("cannot select DB");
    // username and password sent from form 
    $prepreemail=$_POST['email']; 
    $prepremypassword=$_POST['mypassword']; 
    $preemail = stripslashes($prepreemail);
    $premypassword = stripslashes($prepremypassword);
    $email = mysql_real_escape_string($preemail);
    $mypassword = mysql_real_escape_string($premypassword);
    $sql="SELECT * FROM users WHERE email='$email' and password='$mypassword'";
    $result=mysql_query($sql);
     $count=mysql_num_rows($result);
    // If result matched $myusername and $mypassword, table row must be 1 row
    if($count==1){
    // Register $myusername, $mypassword and redirect to file "login_success.php"
        $row=mysql_fetch_array($result);
        $_SESSION['id']=$row['id'];
        if($_SESSION['id'])
        {
    header ("location:home.php");
        }
    }
    else 
    {
    header ("location:sign_in.php");
    }
    ?>
    

    In this logged person's id is stored in $_SESSION['id']. You can get this value in your PHP page home.php as below

    <?php
    session_start();
    $logid=$_SESSION['id'];
    echo $logid;
    

    Please make some changes in your display user details code as below.

    <?php
    session_start();
    // Create connection
     $conn = new mysqli("localhost", "root", "", "members");
    // Check connection
    if ($conn->connect_error) {
        die("Connection failed: " . $conn->connect_error);
    } 
    $userID = $_SESSION['id'];
    $sql = "SELECT name, email, address, dob FROM users WHERE `users`.`id`=$userID";
    $result = $conn->query($sql);
    if ($result->num_rows > 0) {
    echo "<table><tr><th>Name</th><th>Email</th><th>Address</th><th>DOB</th></tr>";
        // output data of each row
    while($row = $result->fetch_assoc()) {
            echo "<tr><td>".$row["name"]."</td><td>".$row["email"]."</td><td>".$row["address"]."</td><td>".$row["dob"]."</td></tr>";
        }
    
     echo "</table>";
    } else {
     echo "<p>No Details</p><style>p{color: #336699; font-size: 20pt; font-family: Gulim; font-weight: bold; align: center; padding: 10px; position: absolute; top: 250; left: 600; z-index: 2; border-spacing: 0px;}</style> ";
    }
    $conn->close();
    
    评论

报告相同问题?

悬赏问题

  • ¥15 无线电能传输系统MATLAB仿真问题
  • ¥50 如何用脚本实现输入法的热键设置
  • ¥20 我想使用一些网络协议或者部分协议也行,主要想实现类似于traceroute的一定步长内的路由拓扑功能
  • ¥30 深度学习,前后端连接
  • ¥15 孟德尔随机化结果不一致
  • ¥15 apm2.8飞控罗盘bad health,加速度计校准失败
  • ¥15 求解O-S方程的特征值问题给出边界层布拉休斯平行流的中性曲线
  • ¥15 谁有desed数据集呀
  • ¥20 手写数字识别运行c仿真时,程序报错错误代码sim211-100
  • ¥15 关于#hadoop#的问题