【发布时间】:2016-03-01 20:11:00
【问题描述】:
我正在开发一个 PHP 函数,该函数使用 MySQL 查找存储在数据库表中的学校部门列表,然后如果结果超过 1 个部门,则将结果分成两列。
我尝试过 for、while 和 foreach 循环,但由于某种原因,我不断得到一个无限循环。我不确定我哪里出错了。
我的功能如下:
function translateDegreeLists($school) {
require('includes/EM-langSelect-4.php');
$values = array();
$coacs_code = 1;
$cob_code = 2;
$avcon_code = 4;
$coe_code = 3;
$cose_code = 5;
$cotm_code = 6;
$query = "SELECT dept_name, ".$content." AS content FROM explore_majors.departments WHERE school_id = ".$school."";
$result = mysql_query($query);
$nums = mysql_num_rows($result);
if($nums == 1) {
echo '1 Option';
}
elseif(($nums / 2) == 2) {
echo '2 Columns with 2 Options';
}
elseif (($nums / 2) >= 3) {
echo '2 Columns with more than 3 Options';
}
echo '<div class="column column-1-2">';
for ($i=0; $i < $nums; $i++)
{
$row = mysql_fetch_assoc($result);
$dept_name = $row['content'];
echo '<h4>'.$dept_name.'</h4>';
echo '<ul>';
echo '<li>test</li>';
echo '</ul>';
}
echo '</div>';
}
注意:查询中的 $content 是从 EM-lang-4.php 中提取的,它确定浏览器语言并选择数据库中的适当列。
这是函数的基础,因为上面的代码在同一列 div 中生成了一个包含 4 个部门的列表。
最终结果是我希望该函数计算找到了多少个部门,如果超过 1 个,则将它们平均分配给 2 个 div。除了里面的内容之外,div 将是相同的。
任何想法我做错了什么?
【问题讨论】:
-
顺便说一句,您不应再使用 mysql_*** 函数,它们已被贬值。请参阅docs 中的红色警告。
-
一些建议:开启错误报告。将你的代码分解成更小的函数。取出一些代码,直到它可以确定问题所在。记得关闭连接。