如何解决如何使用PHP根据下拉菜单中的选择从数据库中获取数据?
这是我的代码:
<form class="cmxform" action ='functions/processform.PHP' id="Form1" method="post">
<legend> Faculty Transaction Form</legend>
<label for="addname">Please Select School</label>
<select class="form-control" name="school" id="school">
<?PHP
$nameslist = $getschool->getSchool();
oci_execute($nameslist,OCI_DEFAULT);
while ($row = oci_fetch_array($nameslist,OCI_ASSOC+OCI_RETURN_NULLS)) {
echo '<option value="' . $row['SCHOOLPROPERNAME'] . '">' . $row['SCHOOLPROPERNAME']. '</option>';
}
?>
</select>
<label for="names">Please Select Name</label>
<select class="form-control" name="names" id="names1234">
<option value='0' >Select Name</option>
</select>
<label for="names">Recall FTF in progress</label>
<select class="form-control" name="ftf" id="ftf">
<option value='0' >Select Name</option>
</select>
<p>Paid/Unpaid/Terminated:</p>
<div>
<input type="radio" id="paid" name="paid" value="paid" >
<label for="paid">Paid</label>
</div>
<div>
<input type="radio" id="unpaid" name="unpaid" value="unpaid" >
<label for="unpaid">Un-Paid</label>
</div>
<div>
<input type="radio" id="terminated" name="terminated" value="terminated" >
<label for="terminated">Terminated</label>
</div>
</form>
<?PHP
$report = $getschool->getftf();
if (count($report) === 0) {
echo "<tr>No Reports</tr>";
} else {
for ($i = 0; $i < count($report); $i++) {
echo
"
<a class=btn href='createftf.PHP?id=".$report[$i]['ID']. "'id='recallFTF'>Create FTF</a>
</tr>";
";
}
}
?>
queries.PHP
class Queries {
public static function getftf() {
$dbUser = "xxxx";
$dbPass = "xxxx";
$dbConn = "(DESCRIPTION = (ADDRESS = (PROTOCOL=TCP)(HOST=xxxx)(PORT=1521))(CONNECT_DATA=(SID=xxxx)))";
$conn = oci_connect($dbUser,$dbPass,$dbConn);
$sql = oci_parse($conn,"SELECT * from tblFTF_Archive_Page1 ");
if (oci_execute($sql,OCI_DEFAULT)){
$result = oci_fetch_array($sql,OCI_ASSOC+OCI_RETURN_NULLS);
return $result;
} else {
return false;
}
}
}
}
我正在尝试获取第二个或第三个下拉列表中所选人的ID,然后我将获取同一人的更多详细信息。使用上面的代码,我得到一个错误提示:“ PHP警告:count():参数必须是实现Countable的数组或对象”。 我在这里提到了一些类似的问题,但是没有一个问题能回答我的问题。任何帮助,将不胜感激。 TIA
解决方法
如果您查看文档,oci_parse
函数将返回“成功的语句句柄,或错误的错误句柄” 。
如果您编写了代码count(false);
,则会收到描述的警告。
有很多方法可以解决您遇到的问题。您需要知道函数可能返回什么并对此进行说明。情况总是如此!
因此,您可以执行以下示例。
<?php
$report = $getschool->getftf();
if ($report === false || count($report) === 0) {
echo "<tr>No Reports</tr>";
} else {
...
这样,您检查返回的值不是布尔值false
(可能要检查错误或查看出了什么问题)。然后,您假设返回的值是资源,并且为countable
,因此您将继续使用count
。
相反,您可以明确测试它是否符合您的期望。参见is_resource
更新:
现在看到您缺少代码...您需要在准备的语句上使用oci_execute
和fetch
。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。