【问题标题】:Populating a Dropdown Selection from MySql & Php从 MySql 和 Php 填充下拉选择
【发布时间】: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>";
?>
**************************************************

【问题讨论】:

  • 您确定启用了短标签?听起来他们不是。要么启用它们,要么将所有&lt;? 更改为&lt;?php
  • 摆脱 mysql_ 并使用当前/现代/好的东西。
  • 为什么不在你的代码中放置一些断点,看看查询实际上是返回结果集还是错误。您是否在数据库中运行查询以证明它有效?在某些情况下,进行小而简单的检查最终可以为您节省 9 小时或更长时间。
  • 1.短标签适用于所有其他 php 页面......其中大约 15 个...... 2. 谢谢,我正在尝试学习更新的编程,但它是一个过程,我有项目正在处理。我做了一些简单的小检查,代码实际上不到 10 行,以上所有都是使下拉列表填充的不同尝试 3。这些是我尝试过的不同事物的示例,谢谢,但我知道它不会像我一样运行试过了,它没有运行,我只是发布它来展示让它工作的不同尝试
  • 4.为什么它被标记为mysqli?因为有几次尝试尝试使用 mysqli ...请参阅我列表中的第 2 项。我不明白这个问题怎么不能更清楚

标签: php mysql mysqli


【解决方案1】:

下面是有效的代码

//placed in beginning of code
<?php
include("database.class.php");
$database = new Database;

$result  = $database->mysqlQuery("SELECT * FROM spec_tables");

?>
//Placed inside html form
 <?php
echo '<select name="list">';
echo '<option>Select List</option>';
while ($row = mysql_fetch_array($result)) {
echo '<option value="' . $row['name'] .'">' . $row['name'] .'</option>';
}
echo '</select>';

?>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-02-23
    • 2017-04-17
    • 1970-01-01
    • 1970-01-01
    • 2013-10-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多