@coTYkcesz: Najwyraźniej nie wiesz co robisz. Dlaczego nowy insert miałby mieć coś wspólnego z poprzednimi wartościami DATETIME? To tak jakbyś jednocześnie wiedział co tam jest, bo dopiero wprowadziłeś ostatnią i nie wiedział, bo pobierasz dodatkowym zapytaniem. Transakcje, race condition...? Jeśli to ma służyć wprowadzeniu wielu rekordów i ułożonej w specjalny sposób sekwencji danych to zbuduj te dane w php zanim je wprowadzisz i użyj jednego inserta.
@Ginden: a po co procedura, pójdzie chyba normalnie lub przez select
INSERT INTO 'platnosci' ('idplatnosci', 'idrezerwacji', 'kwota') VALUES (NULL, LAST_INSERT_ID() ); Swoją drogą lepiej pasowałby tutaj chyba trigger, ciekawe też po co pusta płatność do rezerwacji hm, ale cóż ...
rezerwacje(id_rezerwacji,od,do) VALUES (NULL, '$od 14:00:00', '$do 11:00:00', )";Następnie mam:
INSERT INTO 'platnosci' ('idplatnosci', 'idrezerwacji', 'kwota') VALUES (NULL, TUTAJ CHCE ODWOŁAĆ SIĘ DO idrezerwacji z poprzedniego INSERTA...
Jak to zrobić? Jakiś pomysł???
#mysql #php #webdev
a) stored procedure z użyciem
LAST_INSERT_ID()$db->insert_id;@coTYkcesz: bez idrezerwacji - to powinien być autoincrement
ORM zazwyczaj zwraca ci dodany rekord lub jego id, ewentualnie jeśli jesteś hardcorem i nie używasz ORM tylko rzeźbisz bezpośrednio na bazie to
mysql_insert_id()lubSELECT LAST_INSERT_ID();http://dev.mysql.com/doc/refman/5.0/en/information-functions.html#function_last-insert-id
Jeśli to ma służyć wprowadzeniu wielu rekordów i ułożonej w specjalny sposób sekwencji danych to zbuduj te dane w php zanim je wprowadzisz i użyj jednego inserta.
INSERT INTO 'platnosci' ('idplatnosci', 'idrezerwacji', 'kwota') VALUES (NULL, LAST_INSERT_ID() );Swoją drogą lepiej pasowałby tutaj chyba trigger, ciekawe też po co pusta płatność do rezerwacji hm, ale cóż ...