PHP получить идентификатор последней вставки в первом запросе и выполнить его во втором запросе с несколькими строками - PullRequest
1 голос
/ 17 июня 2020

Мне нужна помощь. У меня проблема с использованием нескольких запросов. Я хочу указать последний идентификатор вставки в следующем запросе. Проблема в том, что он добавляет только один. Cart_id и qty содержат несколько строк. Пожалуйста, мне нужна помощь, заранее спасибо.

Вот мой код:

 public function insertOrder($cart_id = null,$qty = null)
{
    if (isset($cart_id)) {

        $query = "INSERT INTO `tblsales`(`user_id`, `status`) VALUES ('23','delivery');";
        $last_id = $this->db->con->insert_id;
        $query .= "INSERT INTO `tblorders`(`sales_id`,`product_id`, `quantity`) VALUES ($last_id, {$cart_id},{$qty});";

        $result = $this->db->con->multi_query($query);
        if ($result) {
            header("Location :" . $_SERVER['PHP_SELF']);
        }
        return $result;
    }
}

Параметры, вставляющие несколько значений в каждую строку

if (isset($_POST['cartid']) && $_POST['qty']){
foreach ($_POST["cartid"] AS $key => $item){     
$result = $product->insertOrder($_POST['cartid'][$key], $_POST['qty'][$key]);
echo json_encode($result);
}

}

1 Ответ

0 голосов
/ 17 июня 2020

Пытался ввести запрос sql SELECT между двумя методами вставки?

public function insertOrder($cart_id = null,$qty = null){
  if (isset($cart_id)) {
    $query = "INSERT INTO `tblsales`(`user_id`, `status`) VALUES ('23','delivery');";
    $last_id = getLastId("tablename");
    $query .= "INSERT INTO `tblorders`(`sales_id`,`product_id`, `quantity`) VALUES ($last_id, {$cart_id},{$qty});";

    $result = $this->db->con->multi_query($query);
    if ($result) {
        header("Location :" . $_SERVER['PHP_SELF']);
    }
    return $result;
  }
}

Функция получения последнего идентификатора:

function getLastId($tablename){
$sql = "SELECT id FROM $tablename ORDER BY id DESC LIMIT 1";
//any necessary method, and $id = get sql result
return $id;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...