Хобрук: Ваш путь к мастерству в программировании

как передать 3 аргумента в array_combine, это возможно?

у меня есть три переменные ($ product_id, $ size_id, $ количество), которые получаются из «формы» и вставляются в таблицу pending_order. Поэтому я использовал функцию array_combine для объединения трех переменных, а затем использовал для каждого цикла для вставки нескольких записей. но показывает ошибку

«Предупреждение: array_combine() ожидает ровно 2 параметра, задано 3».

Итак, я полностью застрял, есть ли другой способ передать эти три переменные в массиве, а затем использовать для каждого цикла для вставки записи.

<form method="post" action="">

<input type="hidden" name="ip_address" value="<?php echo $ip_address; ?>">   
<input type="hidden" name="product_id[]" value="<?php echo $product_id; ?>">   
<input type="hidden" name="size_id[]" value="<?php echo $size_id; ?>"> 
<input type="hidden" name="quantity[]" value="<?php echo $quantity; ?>" >
<input type="submit"  name="submit" value="Confirm Your Order"> 

</form>

<?php
if (isset($_POST['submit'])) {
$product_id = $_POST['product_id'];
$size_id = $_POST['size_id'];
$ip_address = $_POST['ip_address'];
$quantity = $_POST['quantity'];

$array = array_combine($product_id, $size_id, $quantity);

foreach ($array as $h => $v) {

$insert_pending = "INSERT INTO pending_orders 
(cus_id,product_id,size_id,quantity,ip_address) VALUES 
('$cus_id','$h','$v','$quantity','$ip_address')";

 $run2 = mysqli_query($con, $insert_pending);

 }

if($run2===true){

 echo "<script>window.open('thanku.php','_self')</script>";
  }else{
 echo "<script>alert('Sorry, Try Again')</script>";

 }


 }

  • Вы ищете что-то вроде этого? 23.05.2019
  • Спасибо, сэр... проблема решена @SulthanAllaudeen 23.05.2019
  • Большое спасибо @miken32 23.05.2019

Ответы:


1

Вы можете просто перебрать один из массивов, используя индекс из этого массива для доступа к соответствующим значениям из других массивов:

foreach ($product_id as $index => $h) {
    $v = $size_id[$index];
    $q = $quantity[$index];
    $insert_pending = "INSERT INTO pending_orders 
                            (cus_id,product_id,size_id,quantity,ip_address) VALUES 
                            ('$cus_id','$h','$v','$q','$ip_address')";
    $run2 = mysqli_query($con, $insert_pending);
}

Обратите внимание, что $run2 будет иметь статус только последнего запроса INSERT. Так что, если они все потерпят неудачу, кроме последнего, вы не узнаете. Возможно, вы захотите попробовать добавить это в цикл после запроса:

if (!$run2) break;

а затем в своем сообщении об ошибке вы можете указать, какая вставка не удалась, например.

echo "<script>alert('Insert failed for id $cus_id on data $h, $v, $q')</script>";
23.05.2019
  • OMG ... Проблема решена. Большое вам спасибо. Я имею в виду кучу благодарностей. Спасибо за ваше время и поддержку. 23.05.2019
  • @SibtainRaza не беспокойтесь. Я рад, что смог помочь. 24.05.2019
  • Новые материалы

    Решения DBA Metrix
    DBA Metrix Solutions предоставляет удаленного администратора базы данных (DBA), который несет ответственность за внедрение, обслуживание, настройку, восстановление базы данных, а также другие..

    Начало работы с Блум
    Обзор и Codelab для генерации текста с помощью Bloom Оглавление Что такое Блум? Некоторые предостережения Настройка среды Скачивание предварительно обученного токенизатора и модели..

    Создание кнопочного меню с использованием HTML, CSS и JavaScript
    Вы будете создавать кнопочное меню, которое имеет состояние наведения, а также позволяет вам выбирать кнопку при нажатии на нее. Финальный проект можно увидеть в этом Codepen . Шаг 1..

    Внедрите OAuth в свои веб-приложения для повышения безопасности
    OAuth — это широко распространенный стандарт авторизации, который позволяет приложениям получать доступ к ресурсам от имени пользователя, не раскрывая его пароль. Это позволяет пользователям..

    Классы в JavaScript
    class является образцом java Script Object. Конструкция «class» позволяет определять классы на основе прототипов с чистым, красивым синтаксисом. // define class Human class Human {..

    Как свинг-трейдеры могут использовать ИИ для больших выигрышей
    По мере того как все больше и больше профессиональных трейдеров и активных розничных трейдеров узнают о возможностях, которые предоставляет искусственный интеллект и машинное обучение для улучшения..

    Как построить любой стол
    Я разработчик программного обеспечения. Я люблю делать вещи и всегда любил. Для меня программирование всегда было способом создавать вещи, используя только компьютер и мое воображение...