webForumDet fria alternativet

Automatiskt tilldela nytt id till kommentar

Databaser & SQL

13 svar · 421 visningar · startad av Helmertz

Medlem sedan maj 2005353 inlägg
Frågan#1

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..

Medlem sedan juni 20034 013 inlägg
#2

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.

Medlem sedan maj 2005353 inlägg
#3

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.

Medlem sedan maj 20018 027 inlägg
#4

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.

Medlem sedan maj 20031 472 inlägg
#5

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

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

Medlem sedan juni 20034 013 inlägg
#6

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?

Medlem sedan maj 2005353 inlägg
#7

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?

Medlem sedan juni 20034 013 inlägg
#8

mysql_insert_id()

Medlem sedan maj 2005353 inlägg
#9

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.

Medlem sedan juni 200032 967 inlägg
#10

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?

Medlem sedan juni 20034 013 inlägg
#11

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?

Medlem sedan maj 2005353 inlägg
#12
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.

Medlem sedan juni 200032 967 inlägg
#13

Och vad är alltså problemet?

Medlem sedan maj 2005353 inlägg
#14

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!

274 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
130 ms — deklarationer (db)
0 ms — hämta statistik (cache)
139 ms — hämta tråd, inlägg och bilagor (db)
132 ms — ändringar (db)