从循环数据库值中创建会话变量


Create session variables out of looped database values

单击HTML链接时,我正试图从数据库数组中创建一个变量。目标是将用户重定向到使用一段数组数据填充的表单。换句话说,数据库将根据单击的链接(无论$row[1]、$row[2]和$row[3]的值是多少)进行查询和表单填充。

<?php 
ini_set('display_errors',1);  error_reporting(E_ALL);
$DATE = date('Y-m-d');
require_once 'IRCconfig.php';
$connection = new mysqli($db_hostname, $db_username, $db_password, $db_database);
    if ($connection->connect_error) die($connection->connect_error);
$query  = "SELECT * FROM CLIENT_CHECKIN1 WHERE DATE>='$DATE'";
$result = $connection->query($query);
if (!$result) die ("Database access failed: " . $connection->error);
$rows = $result->num_rows;
for ($j = 0 ; $j < $rows ; ++$j)
    {
        $result->data_seek($j);
        $row = $result->fetch_array(MYSQLI_NUM);
        echo <<<_END
        <pre>
            <a href="http://localhost/populateClientCheckin.php" class="post">$row[1] $row[2] $row[3]</a>
        </pre>
 _END;
    } 
 ?>

如果有人能为我提供一些关于如何实现这一目标的煽动,我将不胜感激。

请在此处阅读有关会话的更多信息

然后,回答您的问题:

首先您需要启动会话,就像脚本顶部的session_start();一样简单。

第二个您需要使用如下DB值实例化会话变量:$_SESSION['var'] = $value;

第三个,在表单所依赖的html文件或其他文件中,只需检查它:

if(isset($_SESSION['var'])) {
  echo '<input type="text" value="'.$_SESSION['var'].'" />';
} else {
  echo '<input type="text" value="" />';
}

如果设置了该值,则使用该值。

L.E:所以…首先。。。session_start();没有它,就没有会话的意义。

其次,您可以像创建$_SESSION['some_name'] = $row[1]一样创建它,这样var将保留$row[1]中的值。我认为这是你所需要的价值。不要像$_SESSION["$row1"]那样操作,因为首先这是不正确的,您将不会有row1的值。你需要一个唯一的名字,这样你就可以在有表格的地方叫它。

上面的代码将变成这样:

<?php 
session_start();
ini_set('display_errors',1);  error_reporting(E_ALL);
$DATE = date('Y-m-d');
require_once 'IRCconfig.php';
$connection = new mysqli($db_hostname, $db_username, $db_password, $db_database);
    if ($connection->connect_error) die($connection->connect_error);
$query  = "SELECT * FROM CLIENT_CHECKIN1 WHERE DATE>='$DATE'";
$result = $connection->query($query);
if (!$result) die ("Database access failed: " . $connection->error);
$rows = $result->num_rows;
for ($j = 0 ; $j < $rows ; ++$j)
    {
        $result->data_seek($j);
        $row = $result->fetch_array(MYSQLI_NUM);
        $_SESSION['first_row'] = $row[1];
        $_SESSION['second_row'] = $row[2];
        $_SESSION['third_row'] = $row[3];
        echo <<<_END
        <pre>
            <a href="http://localhost/populateClientCheckin.php" class="post">$row[1] $row[2] $row[3]</a>
        </pre>
 _END;
    } 
 ?>

如果你有表单和<input type = "text" value = "" />,那么在你需要值的地方,就这样做:

<input type = "text" value = "<?php echo (isset($_SESSION['first_row']) ? $_SESSION['first_row'] : ''); ?>" />
<input type = "text" value = "<?php echo (isset($_SESSION['second_row']) ? $_SESSION['second_row'] : ''); ?>" />
<input type = "text" value = "<?php echo (isset($_SESSION['third_row']) ? $_SESSION['third_row'] : ''); ?>" />

希望这能有所帮助!:D