---
title: "Automatiskt tilldela nytt id till kommentar"
type: "forum-thread"
url: "https://www.webforum.nu/amne/databaser-sql/132076-automatiskt-tilldela-nytt-id-till-kommentar"
topic: "Databaser & SQL"
topic_url: "https://www.webforum.nu/amne/databaser-sql"
author: "Helmertz"
published: "2005-07-31T12:45:31.000Z"
updated: "2005-07-31T14:30:40.000Z"
replies: 13
views: 447
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/databaser-sql/132076-automatiskt-tilldela-nytt-id-till-kommentar"
---

# Automatiskt tilldela nytt id till kommentar

## #1 — Helmertz, 2005-07-31T12:45Z

Hur gör man detta lättast för att ge varje kommentar i en blogg ett unikt id? Om det finns tre poster, #1, #2 och #3, vill jag kunna ta bort #2 men ändå låta #4 bli nästa.. Just nu använder jag mig av *mysql_num_rows + 1* och tömmer kommentaren jag vill ta bort med all information förutom dess id. Känns inte heloptimalt  :e

Har försökt mig på *max(kommentar_id)+1* men det fungerade inte något vidare..

Permalänk: https://www.webforum.nu/p/132076

## #2 — tydal, 2005-07-31T12:55Z

Sätt AUTO_INCREMENT på id-kolumnen. Sedan låter du helt enkelt bli att lägga in ett id-nummer när du skapar en ny post.

Permalänk: https://www.webforum.nu/p/1649740

## #3 — Helmertz, 2005-07-31T13:04Z

Jag kan ha fel nu, men om jag sätter auto_increment får jag väl #2 när det egentligen är #4 i kronologisk ordning? När #2 tagits bort som i första exemplet d.v.s.

Permalänk: https://www.webforum.nu/p/1649742

## #4 — UlfT, 2005-07-31T13:09Z

Jag vet inte hur din databashanterare funkar, men i Oracle brukar räknarna helt enkelt räkna vidare från det senaste talet de räknade fram. Därmed skulle en Oracle-räknare **inte** returnera id=2 bara för att man har raderat en post med detta id. Jag tror de flesta databashanterare funkar likadant. Det är logiskt att göra på det viset.

Permalänk: https://www.webforum.nu/p/1649744

## #5 — greyhound, 2005-07-31T13:13Z

mysql skulle ge nästa post #4 och inte #2.

Det kommer funka utmärkt för dig med en AUTO_INCREMENT-kolumn.

Permalänk: https://www.webforum.nu/p/1649745

## #6 — tydal, 2005-07-31T13:14Z

> **Helmertz skrev:**
>
> Jag kan ha fel nu, men om jag sätter auto_increment får jag väl #2 när det egentligen är #4 i kronologisk ordning? När #2 tagits bort som i första exemplet d.v.s.

Varför testar du inte om du är osäker?

Permalänk: https://www.webforum.nu/p/1649746

## #7 — Helmertz, 2005-07-31T13:37Z

Tack för hjälpen, det är jag som inte har 100%-ig kontroll över mina kommandon:)

Men nu har ett nytt problem uppstått. Tidigare har jag ju klarat av att få ut ett id och senare använt det för att komma till adressen *nyhet83#5*, alltså för att se sin kommentar som man nyss skrivit. Hur får man ut det när man använder auto_increment?

Permalänk: https://www.webforum.nu/p/1649753

## #8 — tydal, 2005-07-31T13:45Z

mysql_insert_id()

Permalänk: https://www.webforum.nu/p/1649755

## #9 — Helmertz, 2005-07-31T13:58Z

Nu är det jag som är klantig igen..  x(

Innan hade jag ju ett klart och tydligt id att döpa varje länk till, men nu vet jag ju inte det i förväg, innan jag ställer SQL-frågan.. Hur gör jag så att #4 i min databas motsvaras av *\<li id="4"\>* nu med auto_increment?

Adressen blir alltså rätt med mysql_insert_id(), den blir *nyhet#kommentar*.

Permalänk: https://www.webforum.nu/p/1649759

## #10 — @nders, 2005-07-31T14:14Z

Du får nog prova att ställa om frågan, för jag förstår inte alls vad du menar. HTML-koden skapar du ju (väl) när du hämtar datat för att presentera den?

Permalänk: https://www.webforum.nu/p/1649764

## #11 — tydal, 2005-07-31T14:14Z

Jag hänger inte med.

Vad är det du inte vet i förväg?
Varför måste du veta det i förväg?
Vad är det för SQL-fråga du ställer?

Permalänk: https://www.webforum.nu/p/1649765

## #12 — Helmertz, 2005-07-31T14:23Z

```php
if ($ip == "minIP"){
    $calle = mysql_query("INSERT INTO kommentarer
    (k_nyhetid, k_datum, k_innehall, k_avs, k_avsmail, ip)
    VALUES ('$nyhetid', '$datum', '$innehall', 'Calle', 'minMAIL', 'minIP')") or die(mysql_error());
}
else{
    $d = mysql_query("INSERT INTO kommentarer
    (k_nyhetid, k_datum, k_innehall, k_avs, k_avsmail, ip)
    VALUES ('$nyhetid', '$datum', '$innehall', '$avs', '$avsmail', '$ip')") or die(mysql_error());
}

$urlurl = 'http://helmertz.com/senaste/'.$nyhetid.'#'.mysql_insert_id();
header ("Location: $urlurl");
```

Förlåt att jag uttrycker mig konstigt, har inte helkoll som sagt.. Så ser koden ut i alla fall. Alla värden blir rätt när jag ser efter i phpmyadmin så jag tror inte ni behöver se hur jag tilldelar variablerna deras värden.

Permalänk: https://www.webforum.nu/p/1649770

## #13 — @nders, 2005-07-31T14:24Z

Och vad är alltså problemet?

Permalänk: https://www.webforum.nu/p/1649771

## #14 — Helmertz, 2005-07-31T14:30Z

Eh, detta var pinsamt.. Hade inte låtit ftp-programmet skriva över de gamla filerna så kommentarerna fick fortfarande inte unika id. Men tack så mycket för hjälpen!

Permalänk: https://www.webforum.nu/p/1649772

---

Tråden på webben: https://www.webforum.nu/amne/databaser-sql/132076-automatiskt-tilldela-nytt-id-till-kommentar
