У меня есть две таблицы с именем op_group
и options
. Эти две таблицы заполняются значениями массива. Например, я хочу вставить детали пиццы в свои таблицы.Как вставить данные массива в таблицу mysql
Это выглядит следующим образом:
- сыра пицца и Колбаса пицца будет вставляются в
op_group
таблицу. - Другие данные будут вставлены в таблицу
options
. Эти параметры должны быть вставлены на основе соответствующего внешнего ключаop_group
id.
Это то, что я попробовал. Все данные вставляются, но не для соответствующих op_group
.
$opg_name=$_POST['opg_name'];
$price=$_POST['price'];
$itemCountz = count($opg_name);
$itemValues=0;
$queryValue1 = "";
for($i=0; $i<$itemCountz; $i++) {
$itemValues++;
if($queryValue1!="") {
$queryValue1 .= ",";
}
$queryValue1 = "INSERT INTO op_group
(opg_id,ml_id,cat_id,res_id,res_name,op_grp)
VALUES(NULL,'".$ml_id."','".$cat_id."','".$res_id."','".$res_name."','".$_POST["opg_name"][$i]."')";
$result1= mysql_query($queryValue1)or die(mysql_error());
$query6= "SELECT * FROM op_group ORDER BY opg_id DESC LIMIT 1" ;
$result6= mysql_query($query6);
while($row6 = mysql_fetch_assoc($result6)){
$opg_id=$row6['opg_id'];
}
$itemCount2 = count($price);
$itemValues1 = 0;
$queryValue2 = "";
for($j=0;$j<$itemCount2;$j++) {
if(!empty($_POST["op_name"][$j])||!empty($_POST["price"][$j])) {
$itemValues1++;
if($queryValue2!="") {
$queryValue2 .= ",";
}
$queryValue2 = "INSERT INTO options (op_id,opg_id,ml_id,cat_id,res_id,res_name,opt,price) VALUES (NULL,'".$opg_id."','".$ml_id."','".$cat_id."','".$res_id."','".$res_name."','".$_POST["op_name"][$j]."','".$_POST["price"][$j]."')";
}
}
$result2=mysql_query($queryValue2)or die(mysql_error());
}
Этот код даст результат, как этот стол
опций вставленной данных выглядит следующим образом
как решить эту проблему?
вы можете использовать PHP serialize() массив для хранения значений массива в базе данных и после получения unserialize. ИЛИ делать с json_encode() и json_decode() для хранения в базе данных и получения. – Shelim
$ query6 = "SELECT * FROM op_group ORDER BY opg_id DESC LIMIT 1"; Проблема заключается в том, что вы выбираете назад все записи в op_group, а затем для каждой группы op_group вы вставляете все параметры, не проверяя, принадлежит ли она к пицце для сыра или к пицце Sausage. –
@AchalSaraiya она выбирает только вставленную opg_id. ($ opg_id = $ row6 ['opg_id'];). Например, это echo 221 и 222. Как я могу проверить параметры для соответствующей группы параметров? – Tje123