我正在开发一个小应用程序,我需要将数组用作数据库。我有一个名为 index.php 的php文件中包含名称和年龄字段的表单。我的 Index.php 如下所示:
<pre><code>
<?php
session_start();
$_SESSION['var'] = 0;
?>
<html>
<body>
<form action="weloome.php" method="post">
Name : <input type="text" name="name"/><br/>
Age : <input type="text" name="age"/><br/>
<input type="submit" name="submit" value="Submit" onsubmit=
"<?php $_SESSION['var'] += 1; ?>/>">
</form>
</body>
</html>
</code>
在这段代码中我使用会话变量var,它在表单的onsubmit事件上获得增量。它会增加,因为我希望所有值都存储在名为db_array()的数组中。
这是第二个文件 welcome.php
<?php
session_start();
$db_array[$_SESSION['var']][0] = $_POST['name'];
$db_array[$_SESSION['var']][1] = $_POST['age'];
print_r($db_array);
?>
<a href="index.php">Want to Add more Record? Click Here</a>
但问题是$_SESSION['var'] = 0;
每次都初始化为零
当用户点击上面的链接时。这就是为什么只显示最后一条记录,因为数组被覆盖。解决这个问题的任何方法?
提前致谢。
答案 0 :(得分:1)
添加条件:
if (!isset($_SESSION["var"]) {
$_SESSION["var"] = 0;
}
只有在之前尚未初始化会话时才会初始化会话。
答案 1 :(得分:1)
是正确的名字吗?这是一个错字吗?
答案 2 :(得分:0)
这里你去:如果你的变量为空,它将用零初始化它,否则它将保持不变; - )
<?php
if(!$_SESSION['var'])
$_SESSION['var'] = 0;
?>
答案 3 :(得分:0)
您可以使用此检查
if(session_id()=="")
{
session_start();
$_SESSION['var']=0;
}
只有在找不到会话时才会执行。
答案 4 :(得分:0)
在PHP版本5.4 *及更高版本中,这是查看会话是否已启动的最有效方式。
if(session_status() !== PHP_SESSION_ACTIVE)
{
// session is not started yet
session_start();
}
答案 5 :(得分:0)
如果你想进一步开发它,你可以使用序列化函数将它转换成你可以存储的东西,或者在一个cookie中,或者一个文件或一个数据库。
serialize函数将数组转换为可以存储的字符串。看起来像json。
如果您有任何疑问,有没有办法通知我?我可以关注facebook / twitter上的人吗?