使用PHP中的While语句获取未定义的索引

时间:2013-09-12 16:41:01

标签: php mysql

我有以下代码

$sqlSubscription = "SELECT `user_id` FROM subscriptions WHERE `user_id` = '".$user_id."' and `course_id` = 'calculus_1'";
            $subscriptionResult = mysql_query($sqlSubscription);

            if($subscriptionResult === FALSE) {
    die(mysql_error()); // temp error handling
              }


                while ($rows = mysql_fetch_assoc($subscriptionResult))
                    {
                        $user_id = $rows['user_id'];
                        $course_id = $rows['course_id'];
                        if($user_id==1 && $course_id="calculus_1")

                            {

                                //do some work


                            }

                     }

我收到错误Notice: Undefined index: course_id导致错误的行在while语句中$course_id = $rows['course_id'];奇怪的是我可以选择用户和课程ID匹配的地方,而且还有做任何像echo这样简单的错误,但是当我在输出数据时添加这个while语句以验证用户和course_ids都匹配某个规则时,我得到了这个错误。

这是通过phpMyAdmin

导出PHP数组
<?php
/**
 * Export to PHP Array plugin for PHPMyAdmin
 * @version 0.2b
 */

//
// Database `test`
//

// `escholars`.`subscriptions`
$subscriptions = array(
  array('user_id' => 'test','course_id' => 'calculus_1','start_date' => '2013-09-12','end_date' => '2013-09-28')
);

有什么想法吗?

由于

2 个答案:

答案 0 :(得分:2)

比较你需要==标志

if($user_id==1 && $course_id=="calculus_1")

你正在选择WHERE course_id =“something”,所以你不需要从数据库$ rows返回相同的值['course_id']

$course_id = "calculus_1";

答案 1 :(得分:1)

您似乎没有选择course_id

您需要选择它才能将其包含在结果集中。否则它将不会包含在您提取的数组中,并且将是未定义的。

试试这个:

SELECT `user_id`,`course_id` FROM .....