Avatar billede mr-kill Nybegynder
24. april 2005 - 21:54 Der er 12 kommentarer og
1 løsning

nummer problem

Heey, så er jeg har igen med et problem...

Jeg har en kolonne der hedder nummer.. Når jeg tilføjer et medlem vil jeg gerne ha at det får næste nummer... Jeg kan ikke bruge auto_increment da jeg skal kunne bytte rundt på nummerne, så hvordan finder jeg det hjøste nummer og plusser det med 1?

jeg har prøvet:

$sql = "SELECT * FROM medlemmer Order By nummer Desc Limet 1";
$result = mysql_query($sql);
$myrow = mysql_fetch_array($result);
$nummer = $myrow["nummer"] + 1;

men får fejl...
Avatar billede arne_v Ekspert
24. april 2005 - 21:55 #1
ikke Limet men Limit
Avatar billede arne_v Ekspert
24. april 2005 - 21:56 #2
PS: den der fremgangsmåde er ikke god i en flerbruger sammenhæng !
Avatar billede mr-kill Nybegynder
24. april 2005 - 21:56 #3
hvorfor ikk?
Avatar billede arne_v Ekspert
24. april 2005 - 22:00 #4
data: 1 2 3
bruger 1: SELECT MAX + 1 giver 4
bruger 2: SELECT MAX + 1 giver 4
bruger 1: INSERT 4
data: 1 2 3 4
bruger 2: INSERT 4 --> klonk klonk klonk
Avatar billede mr-kill Nybegynder
24. april 2005 - 22:02 #5
det fatter jeg bjælle af... kan du udybe det lidt?
Avatar billede arne_v Ekspert
24. april 2005 - 22:06 #6
du har tabellen med tallene 1 2 3
første bruger kører koden ovenfor og får 4
anden bruger kører koden ovenfor og får 4
første bruger indsætter tallet 4
nu har tabellen tallene 1 2 3 4
anden bruger forsøger at indsætte 4 og får en eller anden fejl
Avatar billede mr-kill Nybegynder
24. april 2005 - 22:09 #7
hmmm
hvis jeg har tabellen med tallene 1 2 3
første bruger kører koden ovenfor og får 4
så har jeg tabellen med tallene 1 2 3 4
anden bruger kører koden ovenfor og får 5

o.s.v
Avatar billede arne_v Ekspert
24. april 2005 - 22:15 #8
dit eksempel viser 2 brugere som kommer ind efter hinanden

mit eksempel viser 2 brugere som kommer ind samtidigt
Avatar billede mr-kill Nybegynder
24. april 2005 - 22:21 #9
Det er brugere jeg selv opretter, altid kun en af gangen...

men nu vil jeg så gerne bytte rundt på to nummere:
$id = $_GET['id'];
$nummer = $_GET['nummer'];
$flyt = $_GET['flyt'];

if ($flyt == 1)
{
    $nummer2 = $nummer + 1;
}
elseif ($flyt == 0)
{
    $nummer2 = $nummer - 1;
}
$sql = "SELECT id FROM medlemmer WHERE nummer = $nummer2";
    $result = mysql_query($sql);
    $myrow = mysql_fetch_array($result);
    if ($myrow['nummer'] == $nummer)
    {
        $sql = "UPDATE medlemmer SET nummer='99999' WHERE id=$myrow";
        mysql_query($sql) or die (mysql_error());
    }
    $sql = "UPDATE medlemmer SET nummer='$nummer2' WHERE id=$id";
    mysql_query($sql) or die (mysql_error());
       
    $sql = "UPDATE medlemmer SET nummer='$nummer' WHERE id=$myrow";
    mysql_query($sql) or die (mysql_error());

men der er en fejl, jeg for 2 med samme nummer... hvorfor?
Avatar billede arne_v Ekspert
24. april 2005 - 22:31 #10
WHERE id=$myrow"

er da vist ikke rigtig
Avatar billede mr-kill Nybegynder
24. april 2005 - 22:34 #11
hvis jeg skriver WHERE id=$myrow['id']" for jeg fejl
Avatar billede arne_v Ekspert
24. april 2005 - 22:38 #12
prøv:

$tmp = $myrow['id'];
... WHERE id=$tmp" ...
Avatar billede arne_v Ekspert
28. maj 2005 - 17:36 #13
OK ?
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester