Я использую MySQL-запрос для вставки нескольких записей в таблицу. В моем url я получаю все записи, которые я ввел, но в базе данных он только обновляет мою последнюю запись. Я использую здесь функцию onclick для добавления новых строк таблицы. Любая помощь. Вот мой код
if (isset($_GET['submit'])) { require_once("shine_class.php"); $s = new shine; $s->connection(); $date1 = date_default_timezone_set('Asia/Kolkata'); $date1= time() ; $newdate1 = date("dmY", $date1); for ($i=0; $i < count($_GET['finished_product_name']); $i++ ) { $product =$_GET['finished_product_name']; $material = $_GET['material_name']; $quantity = $_GET['product_quantity']; // mysql_query("INSERT INTO material_used (product_name, material_name, product_quantity, date) VALUES ('$a', '$b', '$c','$newdate1')") or die(mysql_error()); $insert ="insert into material_used set `product_name` = '".$product."', `material_name` = '".$material."', `product_quantity` = '".$quantity."',`date` = '".$newdate1."' "; $select = mysql_query($insert) or die(mysql_error()); } }
Вы пытаетесь присвоить значение с тем же именем. Если ваше последнее значение заменить существующим значением.
например: ваш URL-адрес выглядит,
http://www.example.com/index.php?finished_product_name=abc&material_name=xxx&finished_product_name=pqr&material_name=yyy
поэтому ваш $_GET['finished_product_name']
имеет значение pqr
не abc
.
Если вы можете изменить имя поля с помощью include []
, то PHP создаст массив, содержащий все соответствующие значения:
http://www.example.com/index.php?id[]=123&version[]=3&id[]=234&version[]=4
ваш пример URL, например,
http://www.example.com/index.php?finished_product_name[]=abc&material_name[]=xxx&finished_product_name[]=pqr&material_name[]=yyy
ваш цикл for:
for ($i=0; $i < count($_POST['finished_product_name']); $i++ ) { $product =$_POST['finished_product_name'][$i]; $material = $_POST['material_name'][$i]; $quantity = $_POST'product_quantity'][$i]; }
$insert ="insert into material_used(product_name,material_name,product_quantity,date) VALUES( '$product', '$material','.$quantiy','$newdate1')
используйте следующую функцию для вставки данных в БД
$data['col1']='value1'; $data['col2']='value2'; . . $data['coln']='valuen'; insert('table_name',$data); function Insert( $table, $condition ) { $sql = "INSERT INTO `$table` SET "; $content = null; foreach ( $condition as $k => $v ) { $v_str = null; if ( is_numeric($v) ) $v_str = "'{$v}'"; else if ( is_null($v) ) $v_str = 'NULL'; else $v_str = "'" . mysql_real_escape_string($v) . "'"; $content .= "`$k`=$v_str,"; } $content = trim($content, ','); $sql .= $content; return $result = mysql_query($sql); }