【发布时间】:2017-02-23 23:42:14
【问题描述】:
希望这个问题不会驱使任何人喝酒。 我已经在这工作了大约 9 个小时,但无法通过下拉菜单来填充。我知道我错过了一些非常简单的东西,我正在伸出手来看看是否有人能给我一些见解。我从中调用的表有 1 列,并且只有名称(这是唯一的)
我在所有页面的开头都调用了一个 db 类,除了 2 种情况外,它工作正常,在 2 种例外情况下,它是需要下拉菜单的页面。我已经删除并重新创建了两个页面,没有任何变化。
两个页面都命名为 select.php 和 select_p.php。初始调用如下并在第一个“->”处中断,因此开始打印它之后的所有内容,直到“?>”
include("database.class.php");
$database = new database;
$sql_page = $database->mysqlQuery("SELECT * FROM spec_tables");
$edata_page = $database->mysqlFetchArray($sql_page);
return $edata_page;
?>
类文件中的功能适用于同一站点中的其他 2 个站点和其他页面
function mysqlQuery($qry)
{
$rs = mysql_query($qry, $this->DatabaseLink);
return $rs;
echo mysql_error();
}
现在如果我使用页面中的代码,它不会打印但下拉菜单是空白的
<select name='list' value=''><option>Select List</option>
<?
$sql_page = $database->mysqlQuery("SELECT * FROM spec_tables");
$edata_page = $database->mysqlFetchArray($sql_page);
return $edata_page;
foreach($edata_page as $row){
?>
<option value="<?php echo $row; ?>"><?php echo $row; ?></option>
<? } ?>
</select>
我查看了以下内容(加上大约 20 页不是很接近)
PHP- Fetch from database and store in drop down menu html
How to put table value in a dropdown menu with MYSQL and PHP
http://www.plus2net.com/php_tutorial/list-table.php
http://www.tutorialrepublic.com/faq/how-to-populate-dropdown-list-with-array-values-in-php.php
这是我尝试无济于事的所有sn-ps代码,其中一些实际上以html形式打印代码,非常感谢任何建设性的帮助。
*********************************************************
<select name='list' value=''><option>Select List</option>
<?
$sql_page = $database->mysqlQuery("SELECT * FROM spec_tables");
$edata_page = $database->mysqlFetchArray($sql_page);
return $edata_page;
foreach($edata_page as $row){
?>
<option value="<?php echo $row; ?>"><?php echo $row; ?></option>
<? } ?>
</select>
*****************************************************************
<select name='list' value=''><option>Select List</option>
<?
$result = $database->mysqlQuery("select * from spec_tables");
if (!$result) die('Couldn\'t fetch records');
$num_fields = mysql_num_fields($result);
$row = array();
for ($i = 0; $i < $num_fields; $i++)
while ($row = mysql_fetch_row($result))
{
?>
<option value="<?php echo $row; ?>"><?php echo $row; ?></option>
<? } ?>
</select>
********************************************************************
<select name='list' value=''><option>Select List</option>
<?
$result = $database->mysqlQuery("select * from spec_tables");
if(mysql_num_rows($result) > 0){
while($row = mysql_fetch_array($result)) {
echo '<option value=". $row['name'] .">' . $row['name'] . '</option>';
}
}
?>
</select>
****************************************************************************
Placed in top of file
$servername = "localhost";
$username = "uname";
$password = "pword";
$dbname = "db_name";
// Create connection
$conn = mysqli_connect($servername, $username, $password, $dbname);
// Check connection
if (!$conn) {
die("Connection failed: " . mysqli_connect_error());
}
if ($result = mysqli->query("SELECT * FROM 'spec_tables'")) {
printf("Select returned %d rows.\n", $result->num_rows);
/* free result set */
$result->close();
}
**********************************************************************
<?
$sql = "select * from spec_tables";
$result = mysql_query($sql);
echo "<select name='list' value=''><option>Select List</option>";
while ($row = mysql_fetch_array($result)) {
echo "<option value='" . $row['name'] ."'>" . $row['name'] ."</option>";
}
echo "</select>";
?>
**************************************************
【问题讨论】:
-
您确定启用了短标签?听起来他们不是。要么启用它们,要么将所有
<?更改为<?php。 -
摆脱 mysql_ 并使用当前/现代/好的东西。
-
为什么不在你的代码中放置一些断点,看看查询实际上是返回结果集还是错误。您是否在数据库中运行查询以证明它有效?在某些情况下,进行小而简单的检查最终可以为您节省 9 小时或更长时间。
-
1.短标签适用于所有其他 php 页面......其中大约 15 个...... 2. 谢谢,我正在尝试学习更新的编程,但它是一个过程,我有项目正在处理。我做了一些简单的小检查,代码实际上不到 10 行,以上所有都是使下拉列表填充的不同尝试 3。这些是我尝试过的不同事物的示例,谢谢,但我知道它不会像我一样运行试过了,它没有运行,我只是发布它来展示让它工作的不同尝试
-
4.为什么它被标记为mysqli?因为有几次尝试尝试使用 mysqli ...请参阅我列表中的第 2 项。我不明白这个问题怎么不能更清楚