Php 如何创建包含数据库中类别的下拉列表?
我创建了一个文件来添加类别,并创建了一个文件来添加子类别。在这个文件中,我想创建一个下拉列表,其中包括(数据库中的类别),我已经创建了一个名为“存储”的数据库-包含:类别的类别表包含两个字段,一个用于标识符,另一个用于类别名称,子类别的表“subcat”包含三个字段。。。ID字段,子类别的subcat\u nm字段,类ID的parent\u ID字段,即>>cat\u ID=parent\u IDPhp 如何创建包含数据库中类别的下拉列表?,php,mysql,Php,Mysql,我创建了一个文件来添加类别,并创建了一个文件来添加子类别。在这个文件中,我想创建一个下拉列表,其中包括(数据库中的类别),我已经创建了一个名为“存储”的数据库-包含:类别的类别表包含两个字段,一个用于标识符,另一个用于类别名称,子类别的表“subcat”包含三个字段。。。ID字段,子类别的subcat\u nm字段,类ID的parent\u ID字段,即>>cat\u ID=parent\u ID `CREATE TABLE `category` ( `cat_id` int(4) NOT
`CREATE TABLE `category` (
`cat_id` int(4) NOT NULL AUTO_INCREMENT,
`cat_nm` varchar(30) NOT NULL,
PRIMARY KEY (`cat_id`)
);
CREATE TABLE `subcat` (
`subcat_id` int(4) NOT NULL AUTO_INCREMENT,
`parent_id` int(4) NOT NULL,
`subcat_nm` varchar(35) NOT NULL,
PRIMARY KEY (`subcat_id`)
);`
config.php
<?php
error_reporting( E_ALL & ~E_DEPRECATED & ~E_NOTICE );
ob_start();
session_start();
define('DB_DRIVER', 'mysql');
define('DB_SERVER', 'localhost');
define('DB_SERVER_USERNAME', 'root');
define('DB_SERVER_PASSWORD', '');
define('DB_DATABASE', 'store');
define('PROJECT_NAME', 'test');
$dboptions = array(
PDO::ATTR_PERSISTENT => FALSE,
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8',
);
try {
$DB = new PDO(DB_DRIVER.':host='.DB_SERVER.';dbname='.DB_DATABASE, DB_SERVER_USERNAME, DB_SERVER_PASSWORD , $dboptions);
} catch (Exception $ex) {
echo $ex->getMessage();
die;
}
//get error/success messages
if ($_SESSION["errorType"] != "" && $_SESSION["errorMsg"] != "" ) {
$ERROR_TYPE = $_SESSION["errorType"];
$ERROR_MSG = $_SESSION["errorMsg"];
$_SESSION["errorType"] = "";
$_SESSION["errorMsg"] = "";
}
?>
这些是用于添加子类别的代码
文件addsubcategory.php
<? php
require_once './config.php';
?>
<div class = "row">
<div class = "panel panel-primary">
<div class = "panel-body">
<form class = "form-horizontal" name = "contact_form" id = "contact_form" enctype = "multipart / form-data" method = "post" action = "process_subcategory.php">
<input type = "hidden" name = "mode" value = "<? php echo ($ _GET [" m "] ==" update ")?" update_old ":" add_new ";?>">>
<input type = "hidden" name = "subcat_id" value = "<? php echo intval ($ results [0] [" subcat_id "]);?>">
<fieldset>
<div class = "form-group">
<label class = "col-lg-4 control-label" for = "subcat_nm"> Choose category </label>
<div class = "col-lg-5">
<? php
// Here I want to create a dropdown list containing the categories from the database
?>
</div>
</div>
<br> <p>
<div class = "form-group">
<label class = "col-lg-4 control-label" for = "subcat_nm"> Add subcategory </label>
<div class = "col-lg-5">
<input type = "text" value = "<? php echo $ results [0] [" subcat_nm "]?>" placeholder = "" id = "subcat_nm" class = "form-control" name = "subcat_nm" required = "required">
</div>
</div>
<div class = "form-group">
<div class = "col-lg-5 col-lg-offset-4">
<button class = "btn btn-primary" type = "submit"> Submit </button>
</div>
</div>
</fieldset>
</form>
</div>
</div>
</div>
请帮助PPPP请发布最少的代码,以便我们可以轻松调试。就像你的错误是什么一样,期望的输出。所有的空间填充都是不必要的,出乎意料的,并且很可能导致打字错误,以及其他开发人员误解你的代码。请查看PSR标准,并使您的脚本编写实践与世界其他地方保持一致。带有
$results[0][“subcat_id”]
的字段将无法访问结果集第一行subcat_id
列中的值,因为存在空格填充。您没有名为[whitespace]subcat\u nm
的前导空白列,因此插入将失败并生成错误。检查错误日志。我投票以打字错误结束。这个:parent\u id
永远不会起作用。删除空格。在代码中尝试在何处创建下拉列表?
<? php
require './config.php';
$ mode = $ _REQUEST ["mode"];
if ($ mode == "add_new") {
$ parent_id = trim ($ _ POST ['parent_id']);
$ subcat_nm = trim ($ _ POST ['subcat_nm']);
$ error = FALSE;
if (! $ error) {
$ sql = "INSERT INTO` subcat` (`parent_id`,` subcat_nm`) VALUES ". "(: parent_id,: subcat_nm)";
try {
$ stmt = $ DB-> prepare ($ sql);
// bind the values
$ stmt-> bindValue (": parent_id", $ parent_id);
$ stmt-> bindValue (": subcat_nm", $ subcat_nm);
// execute Query
$ stmt-> execute ();
$ result = $ stmt-> rowCount ();
if ($ result> 0) {
$ _SESSION ["errorType"] = "success";
$ _SESSION ["errorMsg"] = "Added successful.";
} else {
$ _SESSION ["errorType"] = "danger";
$ _SESSION ["errorMsg"] = "The addition failed.";
}
} catch (Exception $ ex) {
$ _SESSION ["errorType"] = "danger";
$ _SESSION ["errorMsg"] = $ ex-> getMessage ();
} }
header ("location: addsubcategory.php");
}
?>