проблема вставки данных из массива в базу данных - PullRequest
0 голосов
/ 21 мая 2019

У меня есть код php. и я не буду вставлять в базу данных. этот код неправильная вставка может помочь исправить мой код php

этот код

$data = "3 003.3.003.003.006 31500.0,3 003.3.003.003.003 76500.0,4 003.3.003.003.002 72000.0,5 003.3.003.003.004 153750.0,6 003.3.003.003.005 187500.0,3 003.3.003.003.001 46500.0,";


$exone = explode(",",$data);
for ( $i = 0; $i < count( $exone ); $i++ ) { $extwo = explode(" ",$exone[$i]);

for ( $j = 0; $j < count( $extwo); $j++ ) { echo $extwo[$j]. "<br />";


$sql = "INSERT INTO tbl_test(qty, kode, price) VALUES('$extwo[$j]','$extwo[$j]',$extwo[$j]')";
echo $sql;}}

Ответы [ 2 ]

1 голос
/ 21 мая 2019

Строка заканчивается запятой "," так что, вероятно, в последний момент программа пытается добавить ноль. Попробуйте стереть последние запятые.

0 голосов
/ 21 мая 2019

Ваш второй цикл for не нужен, вы можете получить доступ к значениям после explode.

explode() ваша строка $data на ,, цикл по результатам и explode() каждый результат (если он не пустой) по пробелу:

<?php

$data = "3 003.3.003.003.006 31500.0,3 003.3.003.003.003 76500.0,4 003.3.003.003.002 72000.0,5 003.3.003.003.004 153750.0,6 003.3.003.003.005 187500.0,3 003.3.003.003.001 46500.0,";
$exone = explode(",", $data);

foreach ( $exone as $x ) {
    if ( !empty($x) ) {
        $extwo = explode(" ", $x);
        // var_dump($extwo);
        $sql = "INSERT INTO tbl_test(qty, kode, price) VALUES('{$extwo[0]}','{$extwo[1]}','{$extwo[2]}');";
        echo $sql . PHP_EOL;
    }
}

Выход:

INSERT INTO tbl_test(qty, kode, price) VALUES('3','003.3.003.003.006','31500.0');
INSERT INTO tbl_test(qty, kode, price) VALUES('3','003.3.003.003.003','76500.0');
INSERT INTO tbl_test(qty, kode, price) VALUES('4','003.3.003.003.002','72000.0');
INSERT INTO tbl_test(qty, kode, price) VALUES('5','003.3.003.003.004','153750.0');
INSERT INTO tbl_test(qty, kode, price) VALUES('6','003.3.003.003.005','187500.0');
INSERT INTO tbl_test(qty, kode, price) VALUES('3','003.3.003.003.001','46500.0');

Если вы раскомментируете строку // var_dump($extwo);, вы увидите, что $extwo - это массив с желаемыми значениями.Вы можете получить к ним доступ, используя $extwo[0], $extwo[1] ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...