PHP SELECT循环

时间:2014-04-03 15:48:55

标签: php mysql sql

我有一个有两门课程的学校数据库,每门课程有12个可能的主题栏目(co_subj...),可以包含主题ID或NULL,在这种情况下,课程ID 1有3个科目,而课程2只有1:

Courses

我需要PHP为课程中找到的每个主题创建<div>,并且不要在任何NULL情况下创建任何内容。 Querys:

$select = mysql_query("SELECT * FROM course_conf JOIN course_type ON ct_id=co_fk_ct_id ORDER BY co_name");

然后一段时间让PHP检查每个课程的字段:

while($registroBbdd = mysql_fetch_array($select))
                {
                    $class="";
                    $courseId=$registroBbdd['co_id'];
                    $courseName=$registroBbdd['co_name'];
                    $courseType=$registroBbdd['ct_name'];

现在出现了疑问,试图解决我之前提到的<div>创造的最有​​效方式。我找到解决这个问题的唯一方法是创建一个条件“IF”结构,打印if if a found,如果找到NULL则没有,如下所示:

if($registroBbdd['co_subj1'] != NULL){
     echo "<div>'.$registroBbdd['co_subj1'].'</div>}
else if ($registroBbdd['co_subj2'] != NULL){
     echo "<div>'.$registroBbdd['co_subj2'].'</div>}
.............}

有没有循环方式来做到这一点?为了避免整个“if”结构的创建。

2 个答案:

答案 0 :(得分:2)

尝试通过isset循环($ registroBbdd [&#39; co_subj&#39; + $ i])

答案 1 :(得分:1)

您可以让SQL语句完成工作。例如:

SELECT *, (CASE WHEN co_subj1 IS NOT NULL THEN co_subj1 ELSE co_subj2 END) AS subject 
FROM course_conf JOIN course_type ON ct_id=co_fk_ct_id ORDER BY co_name
WHERE co_subj1 IS NOT NULL OR co_subj2 IS NOT NULL