Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.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-如何在whileloop中赋值并在其他页面上访问它们_Php - Fatal编程技术网

PHP-如何在whileloop中赋值并在其他页面上访问它们

PHP-如何在whileloop中赋值并在其他页面上访问它们,php,Php,例如,这个whileloop page1.php <?php while($row = mysqli_fetch_array($query)) { ?> <h2><?php echo $row['sample'];?></h2> <a href="page2.php">Page2 Link</a> <?php $_SESSION['samp'] = $row['sample']; } ?> 现在

例如,这个whileloop

page1.php

<?php
while($row = mysqli_fetch_array($query))
{
?>

  <h2><?php echo $row['sample'];?></h2>
  <a href="page2.php">Page2 Link</a>

<?php
  $_SESSION['samp'] = $row['sample'];
}
?>
现在在page2.php中,我想显示单击链接的值

<h2><?php echo $_SESSION['samp']; ?></h2>


我的问题是,如果我单击任何链接标记,则只有第一个数组的值显示在第2页中。php

首先,您将丢弃会话中存储的任何旧值:

$_SESSION['samp'] = $row['sample']; /* overrites */
第二,如果您能够设法使用查询字符串,那么您可能会发现它更容易:

<a href="page2.php?sample=<?=urlencode($row['sample'])?>">Page2 Link</a>

首先,您将丢弃会话中存储的所有旧值:

$_SESSION['samp'] = $row['sample']; /* overrites */
第二,如果您能够设法使用查询字符串,那么您可能会发现它更容易:

<a href="page2.php?sample=<?=urlencode($row['sample'])?>">Page2 Link</a>

问题是您在
while
循环中分配给
$\u会话['samp']
,因此每次循环运行时都会覆盖该值。要更正此问题,应将以下内容附加到
$\u会话['samp']
数组中:

$_SESSION['samp'][] = $row['sample'];
然后,您可以在第二页的数组上循环:

foreach ($_SESSION['samp'] as $value) {
  echo "<h2>$value</h2><br />";
}
foreach($\u会话['samp']作为$value){
回显“$value
”; }
问题在于,您在
while
循环中分配给
$\u会话['samp']
,因此每次循环运行时都会覆盖该值。要更正此问题,应将以下内容附加到
$\u会话['samp']
数组中:

$_SESSION['samp'][] = $row['sample'];
然后,您可以在第二页的数组上循环:

foreach ($_SESSION['samp'] as $value) {
  echo "<h2>$value</h2><br />";
}
foreach($\u会话['samp']作为$value){
回显“$value
”; }
我认为您不需要在会话中存储值,您可以直接将其与页面名称一起发送,并在另一个页面上获得该值,如下图所示

page1.php代码如下

<?php
while($row = mysqli_fetch_array($query))
{
?>    
     <h2><?php echo $row['sample'];?></h2>
      <a href="page2.php?sample=<?php echo $row['sample'] ?>">Page2 Link</a>
    <?php
}
?> 
<?php echo $sample = $_GET['sample'];?>

php代码如下所示

<?php
while($row = mysqli_fetch_array($query))
{
?>    
     <h2><?php echo $row['sample'];?></h2>
      <a href="page2.php?sample=<?php echo $row['sample'] ?>">Page2 Link</a>
    <?php
}
?> 
<?php echo $sample = $_GET['sample'];?>

我认为您不需要在会话中存储值,您可以直接将其与页面名称一起发送,并在另一个页面上获得该值,如下图所示

page1.php代码如下

<?php
while($row = mysqli_fetch_array($query))
{
?>    
     <h2><?php echo $row['sample'];?></h2>
      <a href="page2.php?sample=<?php echo $row['sample'] ?>">Page2 Link</a>
    <?php
}
?> 
<?php echo $sample = $_GET['sample'];?>

php代码如下所示

<?php
while($row = mysqli_fetch_array($query))
{
?>    
     <h2><?php echo $row['sample'];?></h2>
      <a href="page2.php?sample=<?php echo $row['sample'] ?>">Page2 Link</a>
    <?php
}
?> 
<?php echo $sample = $_GET['sample'];?>


如果我得到更多的$row[]怎么办?有没有办法我不必在link标签中编写代码?如果我得到更多的$row[]呢?有没有任何方法我不必做链接标签中的代码?