将MySQL表列数组插入到新的MySQL表中

问题描述

|| 我有一个PHP表单,该表单已转储到MysqL表中。我创建了一个使用PHP从Product表中填充的数组。 查询表获取数组的值-工作正常。
 <?PHP 
 function getProducts ($id)
 {
    $sql =(\"SELECT * FROM products where products.CAT_ID = $id AND disABLED =\'NO\'\");
    $result = MysqL_query($sql);
    if ($result > 0)
    {
    $products = array();
    $x=0;
    while($row = MysqL_fetch_array($result))
    {
        $products[$x]= $row;
        $x += 1;
    }
    return $products;
    }
    else return false;  
}
function newProd(){
global $products;
}
?>
然后,我使用以上数组在javascript手风琴中创建标签标签旁边是选择框。 (已删除不必要的页面元素。。)下面的HTML / PHP表单显示了上面的数组。
<?PHP include(\'includes/query.PHP\');?>
             库存     
<body onload=\"toggleField()\">

        <div id=\"container\" class=\"container_16\">
        <form name=\"form1\" id=\"form1\" action=\"insert.PHP\" method=\"post\" enctype=\"multipart/form-data\" style=\"height: inherit\">
            <div id=\"Info\" class=\"grid_16\"> 
                <fieldset>
                    <label id=\"Label1\">
                        <span class=\"Labels\">Store information</span> <br>
                    </label>
                    <div>
                    <label for=\"name\"> 
                        <span class=\"Labels\"> Name :</span> </label> 
            <input id=\"name\" name=\"name\" type=\"text\">  
                    </div>  
          </fieldset>
            </div>
            <hr id=\"SpacePadding\">
            <hr class=\"SpacePadding\">
            <div class=\"clear\"></div>
                <!-- Start of the Accordion Container-->
                <!-- Start array,make sure Category Array isn\'t false -->
                <?PHP if($categoryArray !=false):?>
                    <!-- create the variables for modulus -->
                    <!-- Start the foreach loop for the category Array -->
                    <?PHP $cataCounter = 0; ?>
                    <?PHP $closeSection = false; ?>
                    <?PHP foreach($categoryArray as $row):?>
                        <?PHP if($cataCounter % 2 == 0): ?>
                            <div class=\"push_1 grid_8\">
                            <?PHP $closeSection = false; ?>
                        <?PHP else: ?>
                            <div class=\"grid_8\">
                            <?PHP $closeSection = true; ?>
                        <?PHP endif; ?><!-- insert modulus-->
                                <div class=\"AccordionTitle\"><?PHP echo $row[\'CATEGORY_NAME\'];?></div>
                                <div class=\"AccordionContent\">
                                    <table>
                                        <?PHP foreach(getProducts($row[\'CAT_ID\']) as $row):?>
                                        <tr>
                                            <th class=\"boldLabels\"><?PHP echo $row[\'PRODUCT_NAME\'];?>
                                            <span class=\"label\"></span></th>
                                            <th><span class=\"Labels\">Count:</span></th>
                                            <td>
                                                <select name=\"selCount[]\" onChange=\"toggleField(this.value);\" class=\"ListBox\">
                                                    <option value=\"Select\">Select One</option>
                                                    <option value=\"0\">0</option>
                                                    <option value=\"1\">1</option>
                                                    <option value=\"2\">2</option>
                                                    <option value=\"3\">3</option>
                                                    <option value=\"4\">4</option>
                                                    <option value=\"5\">5</option>
                                                    <option value=\"6\">6</option>
                                                    <option value=\"7\">7</option>
                                                    <option value=\"8\">8</option>
                                                    <option value=\"9\">9</option>
                                                    <option value=\"10\">10</option>
                                                    <option value=\"Other\">Other(Specify)</option>
                                                </select>
                                                <input type=\"text\" name=\"otherCount[]\" class =\"ListBox\" style=\"display: none;\">
                                            </td>
                                            <td><span class=\"Labels\">Need:</span></td>  
                                            <td>
                                                <select name=\"selNeed[]\" onChange=\"toggleField2(this.value);\" class=\"ListBox\">
                                                    <option value=\"Select\">Select One</option>
                                                    <option value=\"0\">0</option>
                                                    <option value=\"1\">1</option>
                                                    <option value=\"2\">2</option>
                                                    <option value=\"3\">3</option>
                                                    <option value=\"4\">4</option>
                                                    <option value=\"5\">5</option>
                                                    <option value=\"6\">6</option>
                                                    <option value=\"7\">7</option>
                                                    <option value=\"8\">8</option>
                                                    <option value=\"9\">9</option>
                                                    <option value=\"10\">10</option>
                                                    <option value=\"Other\">Other(Specify)</option>
                                                </select>
                                                <input type=\"text\" name=\"otherNeed[]\" class =\"ListBox\" style=\"display: none;\">
                                            </td>
                                        </tr>
                                        <?PHP endforeach;?>
                                    </table>
                                </div>
                            </div>
                            <?PHP if($closeSection): ?>
                                <div class=\"clear\"></div>
                            <?PHP endif; ?>
                        <?PHP $cataCounter += 1; ?>
                    <?PHP endforeach;?>
            <?PHP endif;?>

        <input name=\"Submit\" type=\"submit\" value=\"submit\">
        </div>
        </form>
        <br>
    </div>
        <footer>
        <div align=\"center\">
            <ul>
                <li><a href=\"#\">Home</a></li>
                <li><a href=\"#\">Daily Inventory Counts</a></li>
                <li><a href=\"#\">Contact System Admin</a></li>   
            </ul>
        </div>
    </footer>
</body>
提交后,我希望Product_Name进入具有相关选择选项的新表中。 (我取出了数据库连接信息。)
    <?PHP
//Assign array
$SelCount = $_POST[\'selCount\'];
$SelNeed = $_POST[\'selNeed\'];
$otherNeed = $_POST[\'otherNeed\'];
$otherCount = $_POST[\'otherCount\'];

$limit = count($SelCount);

for($i=0;$i<$limit;$i++) {
    $SelCount[$i] = MysqL_real_escape_string($SelCount[$i]);
    $SelNeed[$i] = MysqL_real_escape_string($SelNeed[$i]);
    $otherNeed[$i] = MysqL_real_escape_string($otherNeed[$i]);
    $otherCount[$i] = MysqL_real_escape_string($otherCount[$i]);    

if  (($SelCount[$i]) !=\"Select\" ) {
$sql = (\"INSERT INTO inventory ( STORE_ID,REQUESTOR,ITEM_COUNT,ITEM_NEED,NEED_COUNT,OTHER_COUNT) 
VALUES (\'$_POST[store]\',\'$_POST[name]\',\'\".$SelCount[$i].\"\',\'\".$SelNeed[$i].\"\',\'\".$otherNeed[$i].\"\',\'\".$otherCount[$i].\"\')\");

    if(MysqL_query($sql,$db)) 
        echo \"$i successfully inserted.<br/>\";
        else 
        echo \"$i encountered an error. <br/>\";

    } 
}

?>
    

解决方法

        这是我要做的:
 function getProducts($id)
 {
    $sql = \'SELECT * FROM products where products.CAT_ID = \' . $id . \' AND DISABLED = \"NO\"\';
    $result = mysql_query($sql);
    if($result !== false) {
        while($row = mysql_fetch_array($result)) {
            $products[]= $row;
        }
    } else {
        $products = false;
    }
}
然后您可以通过以下方式将其打印出来:
if($products = getData(id)) {
   foreach($products as $product) {
      echo $product[\'database_field_name\'];
   }
}
要查看它们全部用于调试目的,可以使用以下命令:
echo \'<pre>\' . print_r($products,true) . \'</pre>\';
另外,您必须使用以下方法来消毒7英镑: http://php.net/manual/en/function.mysql-real-escape-string.php,如果是整数,则可能使用
intval()
。 在会话中存储数据:
session_start();
$_SESSION[\'name\'] = $product[\'database_field_name\'];
然后在insert.php页面上,您可以通过以下方式读取数据:
echo $_SESSION[\'name\'];
然后,在不再需要它之后,可以将其取消设置:
unset($_SESSION[\'name\']);
    

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...