Обновление FK с ПК с использованием PHP-MySQL - PullRequest
0 голосов
/ 26 июля 2011

Я новичок в php и mysql. У меня проблема. У меня есть 2 таблицы.

<?php
    $insert = mysql_query("INSERT INTO request (date, type_request, subject, customer)
    VALUES (NOW(), '".$type."', '".$subject."', '".$username."')");

    $fk = mysql_query("insert into feedback (id_request) select id_request from request where id_request = last_insert_id ");

?>

Я делал это, но все еще не могу заполнить запрос id_request в таблице. Структура таблицы выглядит следующим образом.

Запрос таблицы

id_request auto_increment not_null,-->PK
date,
type_request,
subject,
customer

Отзыв таблицы

id_feedback auto_increment not_null,
id_request,---FK
feedback_user

Может кто-нибудь дать подсказать, как обновить внешний ключ

С уважением

Ответы [ 2 ]

2 голосов
/ 26 июля 2011

В вашем коде

$fk = mysql_query("insert into feedback (id_request) select id_request from request where id_request = last_insert_id ");

замените last_insert_id на LAST_INSERT_ID()

, поскольку это функция MySQL, а не поле.

1 голос
/ 26 июля 2011

Я знаю, что меня за это разжигают, но вот как я это сделаю:

<?php
$date       = date('Y-m-d H:i:s');

$req_query  = 'INSERT INTO request (date, type_request, subject, customer) '.
              "VALUES ('$date', '$type', '$subject', '$username')";
$req_result = mysql_query($req_query);

$fk_query   = 'SELECT MAX(id) id FROM request '.
              "WHERE date = '$date' AND type_request = '$type' ".
              "AND subject = '$subject' AND customer = '$username'";
$fk_result  = mysql_query($fk_query);
$fk_row     = mysql_fetch_assoc($fk_result);
$fk         = $fk_row['id'];

$fb_result  = mysql_query("INSERT INTO feedback (id_request) VALUES($fk)");
?>
...