require_once "Constants.php";
require_once "database.php";
require_once "fun_class.php";
$fun_class = new fun_class();
$database = new database();
$myConnection = $database->connect_database(SERVER,USER,PASSWORD,DATABASE);
我在页面的顶部(标题区域 - 这是因为我有会话事情正在进行)然后我在填充应该发生的地方有第二个php打开和关闭选项卡:
<select>
<?php
$fun_class->fillDropDownCategory($myConnection);
?>
</select>
在我的fun_class.php中我有这个功能:
function fillDropDownCategory($mysqli) {
echo " 1 ";
$display_block = "";
//Call Stored Procedure
if ($result = $mysqli->query("call rb_selectCategory()")) {
echo " 2 ";
// If there are no contacts returned
if ($result->num_rows < 1) {
//no records
echo " 3 ";
$display_block .= "<p><em>Sorry, no records to select!</em>
</p>";
} else {
echo " 4 ";
// For each record returned populate the select list
while ($recs = $result->fetch_object()) {
$id = $recs['category_id'];
$display_name = stripslashes($recs['name']);
$display_block .= "<option value=\'" . $id . "\'>" .
$display_name . "</option>";
}
}
//free result
$result->free();
//Get the last id entered - needed for the other tables
echo " 5 ";
//So you can run another stored proedure after a select
$mysqli->next_result();
}
else
{
echo " 6 ";
$display_block .= "<p><em>Sorry, no records to select!</em></p>";
}
echo " 7 ";
return($display_block);
}
当我进入页面时,select为空,当我输入网站的源代码时,我可以看到:
<select>
1 6 7
</select>
我的调试echo'es
的输出是什么我的存储过程是:
BEGIN
SELECT category_id, name AS name
FROM xxx.category
ORDER BY name;
END
执行时(在phpmyadmin中)它返回两个表,一个名为category_id,id为id,第二个名为name,它具有分配给id的类别名称。
我对php很新,我的功能可能有问题,但由于缺乏经验,我找不到错误。
答案 0 :(得分:0)
我有
func
将其更改为
$id = $recs['category_id'];
$display_name = stripslashes($recs['name']);
感谢大家的尝试!
答案 1 :(得分:-1)
由于您需要在HTML中打印这些字符串,因此您需要使用echo
之类的函数。在fillDropDownCategory()
函数中,您回显了某些内容(例如echo " 1 ";
),但最后您将返回一个变量。
这个变量不会因为它被返回而被打印,所以你需要通过执行
来打印它<select>
<?php
echo $fun_class->fillDropDownCategory($myConnection);
?>
</select>
当然,您还需要删除echo
中的fillDropDownCategory()
来电,以避免在HTML中打印一些不需要的字符串。