使用会话将值从page1.php传递到page2.php

时间:2016-08-28 10:00:33

标签: php html

我想使用会话变量将page1.php中的值传递给page2.php。但是,我还没有成功。而不是在page2.php上只显示一个名称(单击的名称),而是显示page1.php中的所有名称。这是我的代码,

page1.php中

<?php
session_start();
$name_data = array();
?>
<?php 
include('dbase.php');

// get the records from the database
if ($result = $mysqli->query("SELECT * FROM notes WHERE categoryname='Humanities' ORDER BY noteid"))
{
// display records if there are records to display
if ($result->num_rows > 0)
{
while ($row = $result->fetch_object())
{  
?>
<div class="vdo-list">

<div class="vdo-title"><a href="preview.php">
<?php
$name_data[] = $row->notename;
echo "<h3>" .$row->notename. "</h3>";
?>
</div></a>
<?
$_SESSION['uname'] = $name_data;
?>

使page2.php

<?php
session_start();
?>
  <div class="heading6">
        <h1>
        <?php
        if(count($_SESSION['uname'])>0)
        {
        foreach ($_SESSION['uname'] as $uname)
        {
        echo $uname;
        }
        }     
        ?>
        </h1></div>

有人可以指出我做错了什么吗?任何努力都将受到高度赞赏。

2 个答案:

答案 0 :(得分:0)

我认为您不需要在会话中保存所有结果。您可以成功查询所需内容并在第二页上仅使用 { currentNr = ++count; setName("Name"+currentNr); setSurname("Surname"+currentNr); } 选择所需的行。

对于您在此处使用的内容,假设点击的链接具有参数“$_GET”,您可以在会话数组中检查并仅显示此项目:

name

编辑:

在链接中传递参数。在循环中,您可以添加:

foreach ($_SESSION['uname'] as $uname) {
    if ($uname == $_GET['name']) {
        echo $uname;
    }
}

答案 1 :(得分:-1)

最后,这是一个完美的答案,

<强> page1.php中

 <?php
$_SESSION['uname'] = $row->notename;
echo '<h3><a href="preview.php?name='.$row->notename.'">'.$row->notename.'<h3></a>';
?>

<强>使page2.php

 <?php
include ('dbase.php');
       if(count($_SESSION['uname'])>0)
    {
        if($uname = $mysqli->query("SELECT * FROM `notes` WHERE `notename`='".$_GET['name']."'"))
        {
        $row=mysqli_fetch_array($uname,MYSQLI_ASSOC);
   // $result=$uname->fetchAll(PDO::FETCH_ASSOC);
    //foreach ($result as $row)
    //{
    echo $row['notename'];
    //}
    }    
    } 
    ?>