【问题标题】:Array with multiple values to Mysql (php)具有多个值的数组到 Mysql (php)
【发布时间】:2019-02-13 14:47:30
【问题描述】:

我想我快到了,但我似乎无法越界。

我有一个表格,其结果以表格格式生成为另一个表格,然后您在此处确认提交。例如:搜索产品,选择数量2(给出两行表格,确认提交)。

提交然后将这些值推送到一个数组中。该数组使用准备好的语句插入到数据库中。这些值很好地传入我的数组(print_r 数组以查看输出),但是它们没有正确插入到数据库中,数组值只是插入了数组值的第一个字母(例如:test 将插入 t)只是第一行,其他值手动设置(例如正确插入日期或状态)。

你能看出我在插入时哪里出错了吗?我尝试了很多例子,这似乎是最接近的。

$date= date("Y-m-d");

$data = array(                                        
'Name' => $_POST['data']['name'],
'Price' => $_POST['data']['price'],
'Something' => $_POST['data']['something'] );

 $stmt = $conn->DB->prepare("INSERT INTO Table (
         Name, Price, Something, Date) 
 VALUES(?, ?, ?, ?)");

 foreach ($_POST['data']['name'] as $k => $order){
   $name = $order['Name'][$k];
   $price = $order['Price'][$k];
   $something = $order['Something'][$k];

   $stmt->bind_param("ssss", $name, $price, $something, $date);
   $stmt->execute();
 }


 echo '<pre>'; print_r($data); echo '</pre>';

数组输出示例:

Array
(
[Name] => Array
    (
        [0] => Joe
        [1] => Blog
        [2] => Joe
        [3] => Phil
    )

[Price] => Array
    (
        [0] => expensive
        [1] => cheap
        [2] => extortionate
        [3] => worthless
    )
[Something] => Array
    (
        [0] => 
        [1] => something
        [2] => something
        [3] => 
    )
)

在这个例子中,我希望在数据库中插入四行,其中包含 joe、昂贵、日期和第一行的任何内容(在某列中)等等。

实际发生的是它插入了四行,并将数组值的第一个字母放在第一行,但除了日期值之外,其他行没有任何内容。例如:j,e,空白,然后是日期。

【问题讨论】:

    标签: php mysql arrays


    【解决方案1】:

    试试这个。如果它有效,我会用错误的方式更新答案。

    foreach ($_POST['data']['name'] as $k => $order){
       $name = $data['Name'][$k];
       $price = $data['Price'][$k];
       $something = $data['Something'][$k];
    
       $stmt->bind_param("ssss", $name, $price, $something, $date);
       $stmt->execute();
     }
    

    【讨论】:

    • 当我发现我的错字时,我正在寻找您所做的更改!我已经编辑了问题,这只是一个错误,因为我将代码复制到这里对不起!
    • @Pat 怎么样 $name = $data['Name'][$k]; 而不是 $name = $order['Name'][$k]; 我将 $data 更改为 $order。这也是错字吗?
    • 抱歉,你是对的,改变数据的顺序就可以了。 foreach 正在按预期循环,但从外观上看,我指出数组值是错误的。一旦我开始遇到问题,我就在这里使用接受的答案link 作为基础。非常感谢!
    猜你喜欢
    • 2016-01-06
    • 1970-01-01
    • 2021-08-06
    • 2023-03-24
    • 2013-09-25
    • 2016-04-07
    • 2012-05-23
    相关资源
    最近更新 更多