我可以在foreach循环中多次使用同一个对象

时间:2014-03-22 13:24:49

标签: php

在这里,我正在完整地编写代码来解释我的问题。生成链接但列表不生成。 可能是什么问题呢?谢谢..         

require 'database.php';
$query="SELECT subject.subjectName, subject.subjectId FROM course,subject where subject.subjectId=course.subjectId                                                        
                      and course.memberId=1";
$courses=$db->query($query);
?>
<!doctype html>
<html>
<head>
<title>foreach</title>
</head>
 <body>
<?php foreach ($courses as $course):?>
              <a href="#">
               <?php echo $course['subjectName'];?>
            </a>
             <br>

            <?php endforeach; ?>
    <ul>

     <?php foreach ($courses as $course):?>
              <li>
               <?php echo $course['subjectName'];?>
            </li>
            <?php endforeach; ?>
     </ul>
</body>
</html>

5 个答案:

答案 0 :(得分:1)

你的第二个代码在结束PHP标记之前有一个引用。

<?php foreach($courses as $course):?> <a href"<?php echo $course['courseName'] "?> </li> 
<?php endforeach;?> 

<?php foreach($courses as $course):?> <a href="<?php echo $course['courseName']; ?>">???</a> 
<?php endforeach;?> 

更容易阅读代码

<?php
   foreach($courses as $course) {
      echo '<a href="'.$course['courseName'].'">A Link</a>';
   }
?>

答案 1 :(得分:0)

不,foreach不会修改对象。您可能在两个foreach块之间覆盖$ courses变量

答案 2 :(得分:0)

在此处键入代码或者在脚本中有完全相同的代码时,不确定它是否有错误但是请在第二次检查

在这里你缺少&#34; =&#34; href之后应该是这样的  缺少

答案 3 :(得分:0)

您检查过页面来源了吗?它可能被css隐藏,因为每个块中都有不同的HTML标记

答案 4 :(得分:0)

大家好,我终于得到了我的问题的答案,现在是:

在我的代码中,$ courses是一个PDOstatement对象,foreach循环调用fetch()方法,fetch()方法释放结果集,这意味着在foreach循环结束时不再有行。它全部被释放,所以我们不能再循环使用相同的$课程,因为它没有任何东西......

希望我没有遗漏任何东西......