包含数据库中项目的PHP下拉列表

包含数据库中项目的PHP下拉列表,php,Php,我似乎无法在dropdownlist中获取表的值。 我没有收到任何错误,只有一个空的下拉列表。 这是我的代码: <?php include_once ("classes/Keten.class.php"); $keten = new Keten(); $allKet = $keten->getAllKetens(); echo '<select name="fk_keten_id">'; while($row =

我似乎无法在dropdownlist中获取表的值。 我没有收到任何错误,只有一个空的下拉列表。 这是我的代码:

<?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>'; 
?>
  • 确保已打开“错误”
  • 查看源代码,如果有任何错误,它们将被
    select
    标记隐藏
  • 进行
    打印($allket)
    查看
    getAllKeten()
    是否实际返回了任何内容

这部分代码看起来不错:

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>';
echo';
而($row=mysql\u fetch\u数组($allKet))
{
回声“.$row['keten_naam']”;
}
回声';
你的问题应该在$allKet


你需要给Keten()任何参数来初始化任何东西吗?

我怀疑$allKet不是你想象的那样

首先,检查HTML。如果你是那么

a) 支票$allKet是一种资源(我想打印会告诉你)。 b) 检查SQL是否正在选择行。(在phpmyadmin中尝试) c) 检查字段名的拼写是否正确

如果您看到条目,则

a) 检查正在打印的字段名称是否正确 b) 检查您没有用别名隐藏它们(打印将显示最后一个字段)

打开错误报告(在php.inf中)并删除所有报告的错误

好的,我知道了

用法:while($row=mysqli\u fetch\u assoc($allKet))

而不是:while($row=mysql\u fetch\u array($allKet))


谢谢大家的快速回复

我不确定是否可以混合使用mysqli和mysql命令,在fetch\u数组中,您使用了mysql\u fetch\u数组而不是mysqli\u fetch\u数组

您的函数
getAllKetens()
正在关闭数据库。关闭与数据库的连接后,不应尝试获取行


撇开肥皂盒不谈:在这里也可以有一些更标准的命名约定。如果您返回MySQL查询对象的句柄,请考虑$Qualk或$HQuy,而不是什么(对我来说)比OLKETK更神秘。依我看,如果函数名为“getAllKetens()”,它应该返回一个数据数组,而不是查询句柄。

您能调试$allKet并告诉我们您得到了什么吗?请打印($allKet);上面写着什么?有印刷品($allket);我得到一个“1”@Glenn:然后你需要检查你的
getAllKetens
函数——也许在你的问题中发布代码。我在HTML中发现了一个错误:
警告:mysql\u fetch\u array():在第56行的/home/**/addLocatie.php中,提供的参数不是有效的MySQL结果资源
我没有在localhost上工作,因此我无法启用错误。这对社区(以及我们的声誉)很好,可以将对您(最)有帮助的答案标记为“已接受”——绿色复选标记是的,我知道,但是我需要更多的要点:)我会在将来做补充:虽然你肯定应该关闭连接,但是在你使用了所有针对该连接的查询资源(你的$link)之后再做
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>';