我正在尝试将数据插入mysql数据库。
数据来自<?php
session_start();
if(isset($_SESSION['tstid']))
{
$tstid = $_SESSION['tstid'];
}
include('references.php');
include('config.php');
$query = "select * from testquestions where testid='".$tstid."'";
$res = mysql_query($query);
if(mysql_num_rows($res) > 0)
{
$z=array();
while($fetch = mysql_fetch_array($res))
{
$z[] =$fetch['qid'];
}
echo implode(",", $z);
}
?>
,后期数组看起来像这样 -
POST
我使用两个表,一个用于类别,另一个用于子类别。
这是我使用Array
(
[category_name] => main category
[subCategory] => Array
(
[0] => Subcategory 01
[1] => Subcategory 02
[2] => Subcategory 03
)
[category-submitted] => TRUE
)
插入这些数据的方式:
PHP
更新:数据来自// Insert the category into the database
$insertQuery = "INSERT INTO category (category) VALUES (?)";
// Prepare the statement:
$insert_stmt = $mysqli->prepare($insertQuery);
// Bind the variables:
$insert_stmt->bind_param('s', $category);
// Execute the prepared query.
if ($insert_stmt->execute()) {
//echo 'category added';
$last_catid = $insert_stmt->insert_id;
if(!empty( $subcategories)) {
// loop over the array insert subcategory
foreach( $subcategories as $value ){
$insertsubcatQuery = "INSERT INTO subcategory (category_id, subcategory) VALUES (?, ?)";
// Prepare the statement:
$insert_sub_stmt = $mysqli->prepare($insertsubcatQuery);
// Bind the variables:
$insert_sub_stmt->bind_param('is', $last_catid, $value);
// Execute the prepared query.
if ($insert_sub_stmt->execute()) {
echo 'subcategory added';
}
}
}
}
:
$subcategories
但是使用此脚本将其插入数据库但不将子类别插入数据库。 谁能告诉我这个代码有什么问题?
谢谢。
答案 0 :(得分:0)
显然,问题是变量名称中的拼写错误。
定义subCategories
变量:
$subcategories = array(); //Lower case c
if (!empty( $subCategory ) && is_array( $subCategory )) {
foreach( $subCategory as $key => $value ) {
$subCategories[] = filter_var( $value, FILTER_SANITIZE_STRING ); //Capital C
}
}
在insert
代码中:
if(!empty( $subcategories)) { //Lower case c
// loop over the array insert subcategory
foreach( $subcategories as $value ){ //Lower case c
代码建议:
你有2个循环,一个用于过滤和构建子类别数组,另一个用于循环通过该数组。您可以将它们组合成一个数组。
语义建议:
关于您的数据库表,我建议您使用更合适的名称。
例如,包含类别的表应为复数categories
。字段category
应命名为name
。 subcategory
表也是如此。 (category_id
字段很好)。