---
title: "skapa unika id för användare"
type: "forum-thread"
url: "https://www.webforum.nu/amne/php/69738-skapa-unika-id-för-användare"
topic: "PHP"
topic_url: "https://www.webforum.nu/amne/php"
author: "pasca"
published: "2003-03-01T09:38:35.000Z"
updated: "2005-03-14T16:51:39.000Z"
replies: 15
views: 659
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/php/69738-skapa-unika-id-för-användare"
---

# skapa unika id för användare

## #1 — pasca, 2003-03-01T09:38Z

Håller på med en sida där folk behöver registrera sig för att komma in. Och jag skulle vilja ge alla en unik id liknande den som användarna på lunarstorm får (en massa bokstäver och siffror som skapas slumpmässigt). 

Hur skapar man dessa id? 
Använder mysql som databas att spara informationen i.

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

## #2 — Bäckman, 2003-03-01T10:06Z

För att göra så att ingen annan post i en kolumn kan ha samma värde som en annan så gör du fältet till primärnyckel. Dessutom så använder du attributet auto_increment på fältet när du skapar tabellen, så räknar det upp med ett automatiskt när du lägger till en ny post (användare) i tabellen.

Typ såhär

```
create table Anvandare (AnvandareId int auto_increment, primary key(AnvandareId))
```

Btw, välkommen som fan till WF! (första gången jag får säga det, känns lite speciellt) :)

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

## #3 — pasca, 2003-03-01T10:14Z

Jo, auto_increment känner jag till men jag vill att istället att ha en siffra som ökar med 1 hela tiden ha en unik id som består av siffror och bokstäver så som t ex. lunarstorm har (det är en kombination av 32 tecken med mellanstreck). Har inte hållit på med php och mysql på ett tag nu men vad jag kan minnas så skall det finnas en funktion för att skapa liknande id men kommer inte ihåg om det är en funktion i php eller mysql (kan inte hitta det iaf).

Tack för välkomnandet förresten :)

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

## #4 — pirro, 2003-03-01T10:26Z

har förmig att i access iaf hette de "Replikerings id", ngt sådant!

Over and Out
Pirro

PS.
Välkommen till wF!

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

## #5 — pasca, 2003-03-01T10:41Z

Så kanske det heter ja...
Någon som vet om det går att skapa dessa replikations id i mysql eller om det bara fungerar i access?

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

## #6 — Flow, 2003-03-03T19:21Z

Den här funktionen har jag för mig skapar en helt unikt id.

```
$random_id 	= md5(uniqid(rand(),1));
```

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

## #7 — Morpheus, 2003-03-03T21:24Z

det här skapar också ett unikt id:

```php
<?php

function unique_id($delar = 4,$langd = array(4,5,6,5))
{
   // de bokstäver och siffror som ska vara med
   $bok = array('A','B','C','D','E','F',1,2,3,4,5,6,7,8,9);

   // seed till array_rand()
   srand((float) microtime() * 10000000);

   // loop
   for($i = 0; $i < $delar; $i++)
   {
      // slumparen
      $slump = array_rand($bok,$langd[$i]);

      // loop nummer 2
      for($j = 0; $j < $langd[$i]; $j++)
      {
         $id[$i] .= $bok[$slump[$j]];
      }
   }

   // skapa id:n
   $id = "{" . implode('-',$id) . "}";

   return $id;
}

?>
```

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

## #8 — sabbacus, 2003-03-04T05:11Z

Vad är skillnaden/fördelen med ett "replikationsID" jämfört med ett vanligt heltalsID som auto_increment?
/M

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

## #9 — Morpheus, 2003-03-04T05:39Z

om du använder dig av ett replikations-id så är det större chans att alla medlemmar har olika id:n... tror jag... =/

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

## #10 — sabbacus, 2003-03-04T06:27Z

Men då "auto_increment" är en primärnyckel och därmed unik och även ett heltal kan man väl ha oändligt med medlemmar (givetvis förutsatt att man har alla användare i samma users-tabell)...

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

## #11 — Morpheus, 2003-03-04T07:32Z

jo, jag kom på det efter mitt förra inlägg... jag tror nog inte att det spelar nån riktigt stor roll vilken metod man använder, men personligen tycker jag att det ser snyggare ut med id:n som ser ut ungefär som de som Lunarstorm använder sig av...

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

## #12 — pasca, 2003-03-05T17:42Z

Hmmm... har funderat lite på ovanstående förslag och vet inte riktigt om jag skall använda någon av dem. 
nackdelen med att skapa ID kombinationen i PHP är ju att man måste först jämföra det med databasen så att det inte redan finns ett liknande (ingen stor risk ifs :) ingen stor nackdel ifs men det blir ju extra rader att skriva dit... (/me lat)

har lusläst i mysql manualen och kan inte hitta ngt om replikations id där så det finns väl inget då antar jag.

nåja, får väl fundera vidare hur jag skall göra.
Tack för alla förslag :)

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

## #13 — Morpheus, 2003-03-05T18:59Z

jag själv använder mig av den funktionen jag visade längre upp, men det är ju bara jag... =P

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

## #14 — eken, 2003-03-05T23:09Z

En fråga (som egentligen inte har med sammanhanget at göra :)...

När jag har lagt till ett par rader i mitt 'table' och tar bort ngn, så blir det ju så att "auto_increment-funktionen" fortsätter att räkna på ett nummer efter senaste (var jag tillräckligt otydlig? :)...

ex.
\--------------------
ID       name          
\--------------------
1         olle             
2         pär      
3         stina    
4         göran
5         knut
\--------------------

Tar bort 3 & lägger till en usr....

\--------------------
ID       name          
\--------------------
1         olle             
2         pär      
4         göran 
5         knut
6         rutger
\--------------------

Hur kan man sk. "Nollställa", detta ? 
(Har provat att --\> Rensa tabellen ("FLUSH TABLE") \<-- funkar inte...)

/Mvh.
Markus

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

## #15 — Morpheus, 2003-03-06T05:59Z

du skulle ju kunna fixa ett eget skript som visar alla rader i en tabell, och sen kan du ju ha ett litet skript som t ex det här. det ska kallas så här:
fil.php?id=
id ska självklart vara radens ID!

```php
// ta bort raden
$sql = "DELETE FROM tabell WHERE id='" . $_GET['id'] . "'";
$result = mysql_query($sql) or die(mysql_error());

// uppdatera
$sql = "UPDATE tabell SET id=id-1 WHERE id > " . $_GET['id'];
$result = mysql_query($sql) or die(mysql_error());
```

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

## #16 — MickeA.com, 2005-03-14T16:51Z

> **Morpheus skrev:**
>
> ```php
> <?php
> 
> function unique_id($delar = 4,$langd = array(4,5,6,5))
> {
>    // de bokstäver och siffror som ska vara med
>    $bok = array('A','B','C','D','E','F',1,2,3,4,5,6,7,8,9);
> 
>    // seed till array_rand()
>    srand((float) microtime() * 10000000);
> 
>    // loop
>    for($i = 0; $i < $delar; $i++)
>    {
>       // slumparen
>       $slump = array_rand($bok,$langd[$i]);
> 
>       // loop nummer 2
>       for($j = 0; $j < $langd[$i]; $j++)
>       {
>          $id[$i] .= $bok[$slump[$j]];
>       }
>    }
> 
>    // skapa id:n
>    $id = "{" . implode('-',$id) . "}";
> 
>    return $id;
> }
> 
> ?>
> ```

Använder ovanstående kodsnutt, för att skapa en aktiveringsnyckel, som ska skickas i ett mail.
Problemet är att jag får:

```
Notice: Undefined variable: id in E:\Projekt\_Php\Reg\css\funcs.php on line 30
Notice: Undefined offset: 0 in E:\Projekt\_Php\Reg\css\funcs.php on line 30
Notice: Undefined offset: 1 in E:\Projekt\_Php\Reg\css\funcs.php on line 30
Notice: Undefined offset: 2 in E:\Projekt\_Php\Reg\css\funcs.php on line 30
Notice: Undefined offset: 3 in E:\Projekt\_Php\Reg\css\funcs.php on line 30
```

Koden jag använder för att testa det här är:

```
print("ID-Nummer: " . unique_id());
```

På rad 30 i min fil, finns kodstycket:

```
$id[$i] .= $bok[$slump[$j]];
```

Hur ska jag göra det för att slippa ovanstående felmeddelanden?

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

---

Tråden på webben: https://www.webforum.nu/amne/php/69738-skapa-unika-id-för-användare
