Det skulle gerne gøre sådan, at det id der indsætter i auto-increment kolonnen 'id' i den første INSERT-query, bliver indsat i den anden INSERT-query, men dette er ikke tilfældet. Den indsætter enten bare tallet 1 eller 2, selvom $produkt_id, bliver sat helt perfekt til den sidste id-værdi fra den første INSERT-query.
Tabel-strukturen for produkter_info-tabellen er:
CREATE TABLE `produkter_info` ( `produkt_id` tinyint(3) unsigned NOT NULL default '0', `behandling_id` tinyint(3) unsigned NOT NULL default '0', `tekst` tinytext character set latin1 collate latin1_danish_ci NOT NULL, `tabel` varchar(22) character set latin1 collate latin1_danish_ci NOT NULL default '', KEY `produkt_id` (`produkt_id`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1;
Jeg kan simpelthen ikke få ind i mit lille hoved hvad jeg har gjort galt...
Ja, det ser mærkeligt ud. Hvad sker der hvis du ændrer
INSERT INTO produkter (id, navn) VALUES ('', '$navn')
til
INSERT INTO produkter (navn) VALUES ('$navn')
Jeg mener ikke det er nødvendigt at angive et autoincrement felt i en INSERT. Jeg ha r ikke prøvet, men måske gør det en forskel. Prøv.
Synes godt om
Slettet bruger
23. august 2006 - 13:26#5
En detalje, som ikke burde være direkte relateret til dit problem:
Returværdien fra mysql_query() kan ikke være tallet 1. For en INSERT kan den kun returnere true og false - og når du har "or die()" på den, så vil scriptet dø, når den returnerer false, så dermed kan man vide med 100% sikkerhed, at hvis php bare kommer til linien efter dine insert, så er resultatet true.
Velbekomme! Det var bare et skud, men nogen gange har man jo lov at være heldig ;-) Det kunne tyde på en bug i mysql_insert_id() ...
Lige en ting jeg ikke forstår helt: Du skriver at "$produkt_id, bliver sat helt perfekt til den sidste id-værdi fra den første INSERT-query". Hvordan kan du sige det? Det må være på grundlag af noget andet kode - der muligvis indeholder en anden bug. Hvis $produkt_id "bliver sat helt perfekt" i den kode du angiver, så SKAL den anden insert også få den rigtige værdi i feltet produkt_id. Da feltet IKKE får den rigtige værdi tror jeg godt vi kan blive enige om at $produkt_id heller ikke har den rigtige værdi.
OK. Bare skidtet virker kan det jo være lidt ligegyldigt - men husk det næste gang du poster.
Synes godt om
Slettet bruger
23. august 2006 - 17:22#12
skagen: som jeg forstod indlægget 23/08-2006 13:34:13 er problemet løst med dit forslag, så jeg vil tro, du skal lægge et svar ;-)
En sidste kommentar: Jeg slog mysql_insert_id op på http://dk.php.net/mysql_insert_id og der opfordres man faktisk til at bruge MySQL funktionen LAST_INSERT_ID(). I bruger noterne på siden er der indtil flere eksempler på hvordan den bruges. Bemærk Ephraim's kommentar, der så vidt jeg kan se, omhandler det problem du oplevede.
Ah ja okay, syntes også jeg havde taget et kig i den manual, men ikke læst kommentarerne grundigt nok så...:)
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.