我正在尝试填充html表单中的下拉字段,但该字段不显示任何值,只显示空白字段。
我正在尝试以下代码:
<select name="Select" class="textfields" id="prods">
<option id="0">--Producto--</option>
<?php
require("conectdb.php");
$allproducts = mysql_query("SELECT * FROM Productos");
while ($viewallproducts = mysql_fetch_array($allproducts)){
?>
<option id="<?php echo $viewallproducts["ID"];?>"><?php echo $viewallproducts["CODIGO"];?></option>
<?php } ?>
</select>
我更改了引号并且; ...但是仍然没有,这是与数据库连接的代码(conectdb.php):
<?php
$con=mysqli_connect("localhost","xxxxxx","xxxxxx","xxxxxx");
// Check connection
if (mysqli_connect_errno())
echo "Failed to connect to MySQL: " . mysqli_connect_errno();
mysqli_close($con);
?>
这似乎是数据库连接的问题,我现在尝试以下代码来看看会发生什么:
<?php
$username = "xxxxx";
$password = "xxxxx";
$hostname = "xxxx";
$dbhandle = mysql_connect($hostname, $username, $password)
or die("Unable to connect to MySQL");
echo "Connected to MySQL<br>";
$allproducts = mysql_query("SELECT * FROM PRODUCTOS");
while ($viewallproducts = mysql_fetch_array($allproducts)){
echo ($viewallproducts);
}
?>
但是,在这个php上,我收到以下错误:
警告:mysql:fetch_array()期望参数1是资源。
我也试过mysql_fetch_row()并给我同样的错误。
答案 0 :(得分:1)
1)你在require行中有错误(把文件名放在引号内)
2)你没有把值属性放在选项中。
试试这个:
<select name="Select" class="textfields" id="prods">
<option id="0" value="o">--Producto--</option>
<?php
require("conectdb.php");
$allproducts = mysql_query("SELECT * FROM Productos");
while ($viewallproducts = mysql_fetch_array($allproducts)){
?>
<option id="<?php echo $viewallproducts['ID'];?>" value="<?php echo $viewallproducts['ID'];?>"><?php echo $viewallproducts['DESCRIPCION'];?></option>
<?php } ?>
</select>
答案 1 :(得分:0)
对您的代码进行一些编辑:
<select name="Select" class="textfields" id="prods">
<option id="0">--Producto--</option>
<?
require("conectdb.php");
$allproducts = mysql_query("SELECT * FROM Productos")
or die(mysql_error());
while ($viewallproducts = mysql_fetch_assoc($allproducts)){
?>
<option id="<?=$viewallproducts['ID'];?>" value="<?=$viewallproducts['ID'];?>">
<?=$viewallproducts['DESCRIPTION'];?></option>
<?php } ?>
</select>
您应该使用mysql_fetch_assoc
代替mysql_fetch_array
。您还应该检查sql查询是否先成功。
答案 2 :(得分:0)
我认为你犯了一个错误,因为你认为html中的ID是数据库中的ID。您需要为选项
使用“value”属性偶然这一行
<option id="<?php echo $viewallproducts['ID'];?>"><?php echo $viewallproducts['DESCRIPCION'];?></option>
到
<option value="<?php echo $viewallproducts['ID'];?>"><?php echo $viewallproducts['DESCRIPCION'];?></option>
你也忘了:
我还建议您使用更好的数据库引擎,例如 PDO 或 MySQLi ,因为 MySQL _ * 功能已被删除。
代码格式:
<select name="Select" class="textfields" id="prods">
<option value="0">--Producto--</option>
<?php
require('conectdb.php'); // be sure that file exist you forgot about '' and ;
$allproducts = mysql_query("SELECT * FROM `Productos`");
while ($viewallproducts = mysql_fetch_row($allproducts))
echo '<option value="'.$viewallproducts['ID'].'">'.$viewallproducts['DESCRIPCION'].'</option>';
?>
</select>
答案 3 :(得分:0)
你忘了把分号放在行
之后require(conectdb.php)
你应该加一个引号
require("conectdb.php");
也许是那个