WN

WN (https://www.wn.se/forum/index.php)
-   Serversidans teknologier (https://www.wn.se/forum/forumdisplay.php?f=4)
-   -   Mysql/asp - Id För Senast Inlagd (https://www.wn.se/forum/showthread.php?t=306)

foks 2003-08-24 13:55

När jag med phpmyadmin lägger in en ny rad i min tabell så skriver den ut vilket id-nummer den nya raden fick. Hur ordnar jag det enklast i ett asp-script?

orreborre 2003-08-24 15:51

Jag kan inget om ASP då jag kodar i PHP, men detta kanske hjälper?

http://www.4guysfromrolla.com/webtech/tips...t122600-1.shtml

foks 2003-08-24 18:29

Tackar! Det hjälpte en bit på vägen. Fast som det är nu måste jag göra två MySQL-frågor. Först en för att lägga in raden, och så en för att kontrollera vilket id-nummer den fick.

Jag skulle vilja klämma in det på en enda rad, typ så här:
SQL = "INSERT INTO foretag (epost, password) VALUES ('test','pass');SELECT @@IDENTITY FROM foretag"
Set rs = Connect.Execute(SQL)

Fast då får jag MySQL-fel i närheten av ";SELECT @@IDENTITY"

orreborre 2003-08-24 18:56

Detta hjälper dig nog inget, men i php skriver man bara:
Kod:

$sql = mysql_query("INSERT INTO ....");
$idt = mysql_insert_id();

Alltså en inbyggd funktion...

Det kanske finns något liknande i ASP?

orreborre 2003-08-24 19:54

Citat:

Originally posted by foks@Aug 24 2003, 04:29 PM
Tackar! Det hjälpte en bit på vägen. Fast som det är nu måste jag göra två MySQL-frågor. Först en för att lägga in raden, och så en för att kontrollera vilket id-nummer den fick.

Jag skulle vilja klämma in det på en enda rad, typ så här:
SQL = "INSERT INTO foretag (epost, password) VALUES ('test','pass');SELECT @@IDENTITY FROM foretag"
Set rs = Connect.Execute(SQL)

Fast då får jag MySQL-fel i närheten av ";SELECT @@IDENTITY"

Det är ingen skillnad i tid om du lägger så som du skrev, eller om du gör det på 2 rader.
Det blir fortfarande 2 frågor till databasen.

Kim Torvanger 2003-08-24 23:13

Aspsidan.nu ;)

Omg33k 2003-08-25 05:26

Jag har mitt egna sätt..

Efter jag lagt in nått i databasen uppdaterar jag den (recset.update) och väljer sista posten.. alltså:

Select TOP 1 * From tabell ORDER BY id DESC

hämtar det högsta ID:t.. oftast det senaste.

knafve 2004-09-15 23:23

Citat:

Originally posted by Omg33k@Aug 25 2003, 05:26
Jag har mitt egna sätt..

Efter jag lagt in nått i databasen uppdaterar jag den (recset.update) och väljer sista posten.. alltså:

Select TOP 1 * From tabell ORDER BY id DESC

hämtar det högsta ID:t.. oftast det senaste.

Eru galen eller? Har hört att det är spöstraff på att skriva sådan kod juh. :)
Den koden kommer ju utan tvekan att returnera fel värde förr eller senare.

Anders 2004-09-15 23:53

Citat:

Originally posted by knafve@Sep 15 2004, 23:23
Eru galen eller? Har hört att det är spöstraff på att skriva sådan kod juh. :)
Den koden kommer ju utan tvekan att returnera fel värde förr eller senare.

Samma sak med koden som orreborre postade med mysql_insert_id();
Jag brukar, för att vara på den säkra sidan, ställa en fråga till databasen med de värden jag nyss lade in för att få id på den nya raden.

gabriel 2004-09-16 00:14

Citat:

Ursprungligen postat av Anders
Citat:

Ursprungligen postat av knafve
Eru galen eller? Har hört att det är spöstraff på att skriva sådan kod juh. :)
Den koden kommer ju utan tvekan att returnera fel värde förr eller senare.

Samma sak med koden som orreborre postade med mysql_insert_id();
Jag brukar, för att vara på den säkra sidan, ställa en fråga till databasen med de värden jag nyss lade in för att få id på den nya raden.

Är du säker på det där?
Jag har hört att just den funktionen i PHP skall klara av att få det id man stoppa in med egna scriptet senast...


Alla tider är GMT +2. Klockan är nu 10:26.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson