我似乎无法在下拉列表中获取表格的值。 我没有错误,只有一个空的下拉列表。 这是我的代码:
<?php
include_once ("classes/Keten.class.php");
$keten = new Keten();
$allKet = $keten->getAllKetens();
echo '<select name="fk_keten_id">';
while($row = mysql_fetch_array($allKet))
{
echo '<option value="' .
$row['pk_keten_id'] . '">' . $row['keten_naam'] . '</option>';
}
echo '</select>';
?>
函数getAllKetens有效,因为我在其他页面中使用它。
提前致谢:)
请求,类/ Keten.class.php中的getAllKet()函数
public function getAllKetens()
{
include ("connection.php");
$sSql = "SELECT * FROM tblKetens;";
$vResult = mysqli_query($link, $sSql);
mysqli_close($link);
return($vResult);
}
答案 0 :(得分:2)
我不确定可以在你的fetch_array中使用mysql_fetch_array而不是mysqli_fetch_array来混合mysqli和mysql命令。
答案 1 :(得分:1)
您的函数getAllKetens()
正在关闭数据库。在关闭与数据库的连接后,您不应该尝试获取行。
除了肥皂盒:在那里进行一些更标准的命名约定可能会更好。如果你正在返回一个mysql查询对象的句柄,那么考虑$ query或$ hQuery而不是(对我来说)更加神秘的$ allKet。 IMO,如果一个函数被称为“getAllKetens()”,它应该返回一个数据数组,而不是一个查询句柄。
答案 2 :(得分:0)
select
标记隐藏print_r($allket);
以查看getAllKeten()
是否实际返回了任何内容。答案 3 :(得分:0)
这部分代码看起来很好:
echo '<select name="fk_keten_id">';
while($row = mysql_fetch_array($allKet))
{
echo '<option value="' .
$row['pk_keten_id'] . '">' . $row['keten_naam'] . '</option>';
}
echo '</select>';
你的问题应该在$ allKet。
你需要给Keten()任何参数来初始化任何东西吗?
答案 4 :(得分:0)
我怀疑$ allKet不是你想象的那样。
首先,检查HTML。如果你得到&lt; select name =“???”&gt;&lt; / select&gt;那么
a)检查$ allKet是一个资源(我认为print_r会告诉你)。 b)检查SQL是否正在选择行。 (在phpmyadmin中尝试) c)检查字段名称的拼写是否正确。
如果您看到&lt; option value =“??”&gt;&lt; / option&gt;条目,然后
a)检查您正在打印的字段名称是否正确 b)检查您是否没有使用别名隐藏它们(打印将显示最后一个字段)。
启动错误报告(在php.inf中)并删除报告的任何错误。
答案 5 :(得分:0)
好的,我明白了
使用:while($ row = mysqli_fetch_assoc($ allKet))
而不是:while($ row = mysql_fetch_array($ allKet))
谢谢大家的快速回复!