@ikfah012
Не самый умный парень в этом чате

Как получить значение из запроса и вставить его в другой запрос?

При записи в бд делаю проверку на существование повторов в полях phone и ip.
Не понимаю, как мне получить id из select-а $checkRepeat и вставить его в запрос insert в $sql.
<?php
//Параметры подключения в БД
$host = ""; //имя хоста
$database = ""; //имя базы
$user = ""; //пользователь
$password = ""; //пароль
//$password = ""; //пароль
$dbtable = "Users"; //таблица

if (isset($_POST['name'])){
//переменные с формы
$name = strip_tags(trim($_POST['name']));
$surname = strip_tags(trim($_POST['surname']));
$secondname = strip_tags(trim($_POST['secondname']));
$phone = strip_tags(trim($_POST['phone']));
$birthdate = strip_tags(trim($_POST['birthdate']));
$birhtplace = strip_tags(trim($_POST['birhtplace']));
$citizenship = strip_tags(trim($_POST['citizenship']));
$doc = strip_tags(trim($_POST['doc']));
$docid = strip_tags(trim($_POST['docid']));
$docpublish = strip_tags(trim($_POST['docpublish']));
$docdate = strip_tags(trim($_POST['docdate']));
$regterm = strip_tags(trim($_POST['regterm']));
$comment = strip_tags(trim($_POST['comment']));
$date = date("Y-m-d");
$time = date("H:i:s");
$delivery_date = date('Y-m-d', strtotime($date. ' + 1 days'));
$user_ip = $_SERVER["REMOTE_ADDR"];

//установим соединение с бд
$link = mysqli_connect($host, $user, $password, $database)
    or die("Ошибка " . mysqli_error($link));
$link->set_charset("utf8");

$checkRepeat = "SELECT id AS pid FROM ".$dbtable." WHERE phone = $phone OR ip = $user_ip";
$pid = '.pid.';
$results = mysqli_query($link, $checkRepeat);
    if($checkRepeat) {
        $sql = "INSERT INTO ".$dbtable." (
       `repeat_id`, 
    `repeat_check`,
    `ip`,
   `delivery_date`,
    `order_date`, 
    `order_time`, 
    `name`, 
    `surname`, 
    `second_name`, 
    `phone`, 
    `birth_date`,
    `birth_place`, 
    `citizenship`, 
    `doc`, 
    `doc_id`, 
    `doc_publish`, 
    `doc_date`, 
    `term`,
    `adress_register`,
    `comment`
) VALUES (
    '$pid',
    '1',
    '$user_ip',
    '$delivery_date',
    '$date', 
    '$time', 
    '$name', 
    '$surname', 
    '$secondname', 
    '$phone', 
    '$birthdate', 
    '$birhtplace', 
    '$citizenship', 
    '$doc', 
    '$docid', 
    '$docpublish', 
    '$docdate', 
    '$regterm',
    '',
    '$comment'
)";
        if (mysqli_query($link, $sql) === TRUE) {
            printf("Успешно\n");
        } else {
            printf("Ошибка: %s\n", mysqli_error($link));
        }
    }else {
        $sql = "INSERT INTO ".$dbtable." (
    `repeat_check`,
    `ip`,
   `delivery_date`,
    `order_date`, 
    `order_time`, 
    `name`, 
    `surname`, 
    `second_name`, 
    `phone`, 
    `birth_date`,
    `birth_place`, 
    `citizenship`, 
    `doc`, 
    `doc_id`, 
    `doc_publish`, 
    `doc_date`, 
    `term`,
    `adress_register`,
    `comment`
) VALUES (
    '0',
    '$user_ip',
    '$delivery_date',
    '$date', 
    '$time', 
    '$name', 
    '$surname', 
    '$secondname', 
    '$phone', 
    '$birthdate', 
    '$birhtplace', 
    '$citizenship', 
    '$doc', 
    '$docid', 
    '$docpublish', 
    '$docdate', 
    '$regterm',
    '',
    '$comment'
)";

//внесём данные с формы в БД
        if (mysqli_query($link, $sql) === TRUE) {
            printf("Успешно\n");
        } else {
            printf("Ошибка: %s\n", mysqli_error($link));
        }

        mysqli_close($link);
    }
    }
  • Вопрос задан
  • 131 просмотр
Решения вопроса 1
Kasperenysh
@Kasperenysh
Рецидив в особо острой форме))
$checkRepeat = "SELECT * FROM ".$dbtable." WHERE phone = '$phone' OR ip = '$user_ip' ORDER BY id DESC LIMIT 1";
    $results = mysqli_fetch_array(mysqli_query($link, $checkRepeat), MYSQLI_ASSOC);
    $pid = $results['id'];
if ($results) {
// тут инсерт
}
...
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы