【问题标题】:array_push wont add element to array in PHParray_push 不会在 PHP 中向数组中添加元素
【发布时间】:2018-12-30 02:30:40
【问题描述】:

我正在使用会话并尝试创建一个将存储临时数据的应用程序(目前),并且我正在使用此代码将“课程”添加到我的 userCourses 会话数组中:

$_SESSION['userCourses'] = array(
    $_SESSION['siteCourses'][0],
);
if(isset($_GET['id'])){
    $id = $_GET['id'];
    array_push($_SESSION['userCourses'], $_SESSION['siteCourses'][$id]);
}

我的href是这样写的:

<a class="green" href="<?php echo 'coursesDisplay.php?id='.$course[2]; ?>" >Add Course</a>

其中 $course[2] 代表课程的 ID(将其视为 Auto Increment int,每个课程都是独立的)

现在,当我单击链接时,它确实添加到了我的数组中,但是当我在没有 id 的获取请求的情况下访问该站点时,这部分:

...url/file.php?id=1

它不显示课程,而且每当我添加另一门课程时,尽管将它添加到之前的旁边,但之前的课程会被覆盖。

我的逻辑是否有缺陷(或完全愚蠢),我是否遗漏了什么?这可以使用会话还是我需要使用数据库?我对 PHP 相当陌生,我想在迁移到数据库之前使用会话制作一个简单的应用程序。

注意:我没有忘记把 start_session();除了文件之外,我只是想保持问题干净并且没有包含整个文件,但是如果有人需要我,我可以将整个代码放在驱动器或其他东西上,他们可以下载它。

【问题讨论】:

  • 看起来您每次运行脚本时都在重新初始化会话变量。也许首先检查会话变量是否为空,如果是则仅初始化。比如:if (empty($_SESSION['userCourses'] )) { $_SESSION['userCourses'] = array( $_SESSION['siteCourses'][0], ); }
  • 是的,我不敢相信我没有注意到 xD 我真是个白痴……每次我打开网站时,我都会重置会话……
  • 有时只需要一双新鲜的眼睛。如果有用,请点赞我的评论。
  • 我不确定我可以否决评论,但如果您将其添加为答案,我会将其标记为解决方案

标签: php arrays session get session-variables


【解决方案1】:

看起来您每次运行脚本时都在重新初始化会话变量。也许首先检查会话变量是否为空,如果是则仅初始化。类似的东西:

if (empty($_SESSION['userCourses'] )) 
{ 
    $_SESSION['userCourses'] = array( $_SESSION['siteCourses'][0], ); 
}

【讨论】:

    猜你喜欢
    • 2013-04-24
    • 2010-10-15
    • 1970-01-01
    • 2013-05-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多