PHP-如何在whileloop中赋值并在其他页面上访问它们
例如,这个whileloop page1.phpPHP-如何在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']; } ?> 现在
<?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[]呢?有没有任何方法我不必做链接标签中的代码?