Как связать записи в БД по уникальному id?

231
30 марта 2018, 13:43

Всем привет. В БД есть две таблицы: Первая основная таблица "db" содержит поля

id(присваивается автоматически),uid,ip,cat,user,region

Вторая таблица для дополнительных параметров "db_fields" содержит поля

id(присваивается автоматически),massage,field,value

И есть вот такие переменные которые необходимо передать в эти таблицы

$uid,$ip,$cat_select,$user_name,$region_select,$phone,$photo

Первую группу переменных мы передаем в первую таблицу "db" к этой записи автоматически присваивается уникальный id

$uid,$ip,$cat_select,$user_name,$region_select

Вопрос как передать во вторую таблицу "db_fields" вот эти переменные

$phone,$photo

да так чтобы в поле "massage" вставился уникальный id из первой таблицы "db" для каждой записи $phone и $photo (коротко говоря привязать телефон и фотографию через id к записи из первой таблицы). Также необходимо для телефона добавить в поле "field" значение 12 а для фото значение 6.

Надеюсь написал понятно) Спасибо

На всякий: вот пример моего кода как я добавляю запись в первую таблицу.

  mysqli_query($on_link,"
    INSERT INTO db(uid,ip,cat,user,region) 
    VALUES('$uid','$ip','$cat_select','$user_name','$region_select')");
mysqli_close();
Answer 1

для получения последнего сгенерированого значения автоинкрементного поля используйте mysqli::$insert_id или mysqli_insert_id. Далее полученное значение передавайте во второй запрос.

Возвращает автоматически генерируемый ID, используя последний запрос

возвращаемые значения, очевидно, привязаны к текущему сеансу и вы получите свой id, а не чей-то другой, кто провел вставку одновременно с вами.

зы: для передачи параметров в запрос, используйте подготвленные выражения и привязку параметров (http://php.net/manual/ru/mysqli-stmt.bind-param.php)

зы2: код в дополнение

$stmt = mysqli_prepare($link, "INSERT INTO db (uid,ip,cat,user,region) 
                               VALUES(?, ?, ?, ?, ?)");
mysqli_stmt_bind_param($stmt, $uid, $ip, $cat_select, $user_name, $region_select);
mysqli_stmt_execute($stmt);
$iid = mysqli_insert_id($link)

и далее использовать полученный $iid для последующих запросов

READ ALSO
Почему не удается получить ответ от сервера soap wsdl php Curl?

Почему не удается получить ответ от сервера soap wsdl php Curl?

Сам не дружу пока что с soap wsdl, хоть и прочитал кучу статей про них, но никак не укладываются в голове базовые основыВ интеренете нашел пример...

197
DateRangePicker дата на правом календаре

DateRangePicker дата на правом календаре

ПриветИспользую DateRangePicker от картика

137
Как удалить дубли с под массива?

Как удалить дубли с под массива?

Есть массив вот такого вида

147
Проверка данных из массива PHP [требует правки]

Проверка данных из массива PHP [требует правки]

У меня есть массив и я не знаю как сравнить определенные строки в нем и вывести данные

163