php newcomer检索数据库信息

时间:2014-04-07 20:30:39

标签: php mysqli

我有一个数据库设置。我正在努力解决一些非常简单的事情,但是我可以从我的数据库中提取我需要的数据但是如果有意义则不能在多个地方提取数据?

所以我有我想要的内容,但也希望在上面和下面显示它。我尝试了很多东西,但它要么杀了我的工作,要么什么都不做。

    <nav>
        <div id="wrappertop">
            <ul class="main_menu">
                <li class="main_menu"><a href="#">HOME</a></li>
                <li class="main_menu"><a href="#">SEARCH</a></li>
                <li class="main_menu"><a href="#">MESSAGES</a></li>
                <li class="main_menu"><a href=logout.php>LOGOUT</a></li>
            </ul>
        </div>
    </nav>

    <div class="subnav">
        <div id="wrappertop">
            <ul class="main_menu">
                <li class="main_menu"><a href="#">I WANT A USERNAME HERE</a></li>
            </ul>
        </div>
    </div>
</header>
<div id="wrappermain">
    <div class="leftcolumn"><img src="uploads/profileimage/me.png" /></div>
    <div class="rightcolumn">
        <?php
        $result = mysqli_query($mysqli, "SELECT * FROM members WHERE email='" . $_SESSION['email'] . "'");
        while ($row = mysqli_fetch_array($result)) {

            if ($_SESSION['email'] == $row['email']) {
                // If you find the right user with the same E-Mail address, DO SOME COOL THINGS :)
            }

            echo '<h2>' . $row['username'] . '</h2>';
            echo '<button>Get in touch</button>' . '<br>';
            echo $row['yourage'] . ' years old' . '<br>';
            echo 'I am a ' . $row['orientation'] . ' ' . $row['gender'] . '<br>';
            echo 'Looking for a ' . $row['lookingfor'] . '<br>';
            echo 'Living in ' . $row['location'];
            echo '<br /><br />';
            echo '<hr />';
            echo '<h2>About me:</h2>';
            echo $row['aboutme'] . '<br>';
        }
        mysqli_close($mysqli);
        ?>
    </div>
</div>

所以,如果你看一下subnav中的例子id,就像再次显示用户名一样,但是我不确定如何?

1 个答案:

答案 0 :(得分:2)

修改

我不知道你使用的是什么用于登录方法,所以这是一个基本的方法来做它并测试它。

旁注: 您显然需要添加相关的密码方法,因此我无法在此次修改中实现该方法。请参阅我关于密码的脚注。

(登录方法测试)

HTML FORM:

<form action="signin.php" method="post">
Email: 
<input type="text" name="email">
<input type="submit" name="submit" value="Submit">
</form>

PHP / SQL:(signin.php)

<?php
$DB_HOST = "xxx";
$DB_NAME = "xxx";
$DB_PASS = "xxx";
$DB_USER = "xxx";

$mysqli = new mysqli($DB_HOST, $DB_USER, $DB_PASS, $DB_NAME);
if($mysqli->connect_errno > 0) {
  die('Connection failed [' . $mysqli->connect_error . ']');
}

session_start();

if(isset($_SESSION['email'])){

$result = mysqli_query($mysqli,"SELECT * FROM members WHERE email='".$_SESSION['email']."'");

$email = mysqli_real_escape_string($mysqli,$_POST['email']);
$_SESSION['email'] = $email;
$email = $_SESSION['email'];

    while($row = mysqli_fetch_array($result))
    {

    $_SESSION['email']=$row['email'];
    $email = $row['email'];

    $_SESSION['username']= $row['username'];
    $username = $row['username'];

    $_SESSION['yourage']= $row['yourage'];
    $yourage = $row['yourage'];

    $_SESSION['orientation']= $row['orientation'];
    $orientation = $row['orientation'];

    $_SESSION['gender']= $row['gender'];
    $gender = $row['gender'];

    $_SESSION['lookingfor']= $row['lookingfor'];
    $lookingfor = $row['lookingfor'];

    $_SESSION['location']= $row['location'];
    $location = $row['location'];

    $_SESSION['aboutme']= $row['aboutme'];
    $aboutme = $row['aboutme'];

    }

} // brace for if(isset($_SESSION['email'])

?>

<?php

    echo $email;
    echo "<br>";
    echo $username;
    echo "<br>";
    echo $yourage;

?>

<nav>
        <div id="wrappertop">
            <ul class="main_menu">
                <li class="main_menu"><a href="#">HOME</a></li>
                <li class="main_menu"><a href="#">SEARCH</a></li>
                <li class="main_menu"><a href="#">MESSAGES</a></li>
                <li class="main_menu"><a href=logout.php>LOGOUT</a></li>
            </ul>
        </div>
    </nav>

    <div class="subnav">
        <div id="wrappertop">
            <ul class="main_menu">
                <li class="main_menu"><a href="#">USERNAME HERE <?php echo $username; ?></a></li>
            </ul>
        </div>
    </div>
</header>
<div id="wrappermain">
    <div class="leftcolumn"><img src="uploads/profileimage/me.png" /></div>
    <div class="rightcolumn">

<?php

            if ($_SESSION['email'] == $row['email']) {
                // If you find the right user with the same E-Mail address, DO SOME COOL THINGS :)
            }

            echo '<h2>' . $username . '</h2>';
            echo '<button>Get in touch</button>' . '<br>';
            echo $yourage . ' years old' . '<br>';
            echo 'I am a ' . $orientation . ' ' . $gender . '<br>';
            echo 'Looking for a ' . $lookingfor . '<br>';
            echo 'Living in ' . $location;
            echo '<br /><br />';
            echo '<hr />';
            echo '<h2>About me:</h2>';
            echo $aboutme . '<br>';

        mysqli_close($mysqli);
?>

        </div>

</div>

<hr>

<?php
    echo $email;
    echo "<br>";
    echo $username;
    echo "<br>";
    echo $yourage;
?>

<a href="logout.php">LOGOUT</a>

(适用注销)

<?php
  session_start();
  unset($_SESSION);
  session_destroy();
?>

<a href="login.php">LOGIN</a>

原始答案

您需要将会话变量分配给行并首先获取数据。

试试这个:(代码放置很重要)

旁注:确保列名匹配。我不知道你拥有什么。

<?php
session_start();

// replace with your credentials
$DB_HOST = "xxx";
$DB_NAME = "xxx";
$DB_PASS = "xxx";
$DB_USER = "xxx";

$mysqli = new mysqli($DB_HOST, $DB_USER, $DB_PASS, $DB_NAME);
if($mysqli->connect_errno > 0) {
  die('Connection failed [' . $mysqli->connect_error . ']');
}

$result = mysqli_query($mysqli,"SELECT * FROM members WHERE email='".$_SESSION['email']."'");
while($row = mysqli_fetch_array($result))
    {
        $email = $_SESSION['email'];
        $_SESSION['email'] = "email@example.com";
        // or use $_POST['email'] if coming from a login

        $_SESSION['username']= $row['username'];
        $username = $row['username'];

        $_SESSION['yourage']= $row['yourage'];
        $yourage = $row['yourage'];

        $_SESSION['orientation']= $row['orientation'];
        $orientation = $row['orientation'];

        $_SESSION['gender']= $row['gender'];
        $gender = $row['gender'];

        $_SESSION['lookingfor']= $row['lookingfor'];
        $lookingfor = $row['lookingfor'];

        $_SESSION['location']= $row['location'];
        $location = $row['location'];

        $_SESSION['aboutme']= $row['aboutme'];
        $aboutme = $row['aboutme'];
    }
?>

<?php
// If everything is set, you can echo things here
echo $email;
echo "<br>";
echo $username;
echo "<br>";
echo $yourage;
?>

<nav>
        <div id="wrappertop">
            <ul class="main_menu">
                <li class="main_menu"><a href="#">HOME</a></li>
                <li class="main_menu"><a href="#">SEARCH</a></li>
                <li class="main_menu"><a href="#">MESSAGES</a></li>
                <li class="main_menu"><a href=logout.php>LOGOUT</a></li>
            </ul>
        </div>
    </nav>

    <div class="subnav">
        <div id="wrappertop">
            <ul class="main_menu">
                <li class="main_menu"><a href="#">USERNAME WILL APPEAR HERE <?php echo $username; ?></a></li>
            </ul>
        </div>
    </div>
</header>
<div id="wrappermain">
    <div class="leftcolumn"><img src="uploads/profileimage/me.png" /></div>
    <div class="rightcolumn">

<?php

            if ($_SESSION['email'] == $row['email']) {
                // If you find the right user with the same E-Mail address, DO SOME COOL THINGS :)
            }

            echo '<h2>' . $username . '</h2>';
            echo '<button>Get in touch</button>' . '<br>';
            echo $yourage . ' years old' . '<br>';
            echo 'I am a ' . $orientation . ' ' . $gender . '<br>';
            echo 'Looking for a ' . $lookingfor . '<br>';
            echo 'Living in ' . $location;
            echo '<br /><br />';
            echo '<hr />';
            echo '<h2>About me:</h2>';
            echo $aboutme . '<br>';

        mysqli_close($mysqli);
?>

        </div>
</div>

<hr>

<?php
// If everything is set, you can echo things here
echo $email;
echo "<br>";
echo $username;
echo "<br>";
echo $yourage;
?>

<强>脚注:

(关于密码)

如果您尚未使用密码存储方法,请使用以下其中一项:

其他链接: