<?php
$link = mysqli_init();
$db = mysqli_real_connect($link, 'localhost', 'bp6am', 'bp6ampass', 'expense_report') or
die('Unable to connect');
mysqli_select_db($link, 'expense_report');
?>
<html>
<head>
<title>Expenditure Log Form</title>
</head>
<body>
<form action="commit.php" method="post">
<table>
<tr>
<td>Name</td>
<td><input type="text" name="name"/><br></td>
</tr>
<tr>
<td>Category</td>
<td><select name="category">
<?php
//get the expenses categories
$query = 'SELECT cat_id, cat_name
FROM exp_category
ORDER BY cat_name';
$result = mysqli_query($query, $db) or
die(mysqli_connect_error($db));
//populate the dropdown menu for expenses category
while($row = mysqli_fetch_assoc($result)) {
foreach ($row as $value) {
echo '<option value="' . $row['cat_id'] . '">';
echo $row['cat_name'] . '</option>';
}
}
?>
</select></td>
</tr>
<tr>
<td>Amount</td>
<td><input type="text" name="amount"/></td>
</tr>
<tr>
<td>Payment Mode</td>
<td><select name="payment">
<?php
//retrieve and populate
$query = 'SELECT pay_id, pay_type
FROM pay_mode
ORDER BY pay_id';
$result = mysqli_query($query, $db) or
die(mysqli_connect_error($db));
//populate
while($row = mysqli_fetch_assoc($result)) {
foreach ($row as $value) {
echo '<option value="' . $row['pay_id'] . '">';
echo $row['pay_type'] . '</option>';
}
}
?>
</select></td>
</tr>
</table>
</form>
</body>
</html>当我在浏览器中运行该文件时,只构造了Name字段。之后是带有选择图标的Category文本,但单击它时没有下拉菜单。页面的其余部分为空白!!最近开始使用PHP,请帮助。
我想知道连接是否已经建立。即使没有建立连接,为什么其他HTML元素没有显示在Category字段之后?
我检查了我的连接参数。即使他们是错的,我也应该得到消息"Unable to connect“,对吗?
发布于 2015-09-13 23:04:38
如果你打开了error_reporting,你可以通过查看服务器日志来了解这一点,看看How to get useful error messages in PHP (StackOverflow)。
另外,请查看PHP.net上的mysqli_query文档,它将告诉您连接首先出现,然后是查询字符串。
您目前使用的是:
$result = mysqli_query($query, $db)虽然它应该是
$result = mysqli_query($db, $query)回答你的问题,是的,如果它不能连接(错误的参数),你会得到一个无法连接的消息。
您的while-loop中也不需要foreach-loop。
while($row = mysqli_fetch_assoc($result)) {
foreach ($row as $value) {
echo '<option value="' . $row['cat_id'] . '">';
echo $row['cat_name'] . '</option>';
}
}上面的代码应该是这样的:
while($row = mysqli_fetch_assoc($result)) {
echo '<option value="' . $row['cat_id'] . '">';
echo $row['cat_name'] . '</option>';
}https://stackoverflow.com/questions/32550272
复制相似问题