Avatar billede aquafisken Nybegynder
24. februar 2006 - 02:48 Der er 14 kommentarer og
1 løsning

max værdi + 1

Hej!
Nu har jeg siddet og søgt lidt rundt på siden efter en måde at finde max værdien fra en mysql DB og plusse den med 1.
Jeg kom frem til dette, men det lader til at den bare skriver 1 i sort feltet istedet for at finde max værdien for sort og plusse den med et. Nogen der kan fortælle mig hvad jeg har overset?
$findmax = mysql_query("SELECT max(sort) FROM army")
            or die( "select fejl: ".mysql_error() );
           
$row = mysql_fetch_array($findmax);

$plus = $row[sort]++;
Avatar billede tjp Mester
24. februar 2006 - 05:11 #1
Har du tjekket at værdien af '$row[sort]' er det ønskede? Om ikke andet så ændre '$plus = $row[sort]++;' ikke ved værdien af 'sort', kun ved '$plus'.
Avatar billede morhan Novice
24. februar 2006 - 07:21 #2
SELECT max(sort) sort FROM army
så får resultat-kolonnen navnet 'sort'

eller benyt mysql_fetch_row
og træk ud via dets index: $row[0]
Avatar billede nielle Nybegynder
24. februar 2006 - 08:24 #3
Jeg vil foreslå at der vælges et andet navn som alias (og at der bruges AS):

SELECT max(sort) AS maxSort FROM army

$row = mysql_fetch_array($findmax);
$plus = $row["maxSort"] + 1;  // Man kan ikke bruge ++ operatoren i dette tilfælde.

... eller:

SELECT max(sort+1) AS maxSort FROM army

$row = mysql_fetch_array($findmax);
$plus = $row["maxSort"];
Avatar billede aquafisken Nybegynder
24. februar 2006 - 11:57 #4
Hej, mange tak for hjælpen, jeg har nu fået det til at virke, jeg brugte Nielles første løsning, så point til dig :)
Avatar billede nielle Nybegynder
24. februar 2006 - 13:01 #5
Det var nu bare en lettere korrektion af morhan's - så skal vi ikke bare dele?
Avatar billede aquafisken Nybegynder
24. februar 2006 - 13:08 #6
Jo, men det gør I bare, vil du bare ha de point, så ka du selv give ham halvdelen?
Avatar billede nielle Nybegynder
24. februar 2006 - 17:24 #7
Det bestemmer du, men vi kan da også bare lige vente på at han selv smider et svar. :^)
Avatar billede arne_v Ekspert
24. februar 2006 - 19:06 #8
det er forhaabentligt ikke fordi du skal bruge det til at finde naeste auto increment
vaerdi med !
Avatar billede nielle Nybegynder
24. februar 2006 - 19:46 #9
arne_v> Nej, det har slet ikke noget med det at gøre. Det drejer sig simpelthen om at sætte en sorteringsrækkefølge på nogle poster:

http://www.eksperten.dk/spm/688969
Avatar billede arne_v Ekspert
24. februar 2006 - 19:58 #10
ok

men er der ikke potentielt samme problem ?
Avatar billede nielle Nybegynder
24. februar 2006 - 20:10 #11
Vel ikke ligefrem - der er kun én bruger som skal kunne ændre rækkefølgen (aquafisken selv) og dette kræver et login. Der er således ikke nogen andre som overhovedet har mulighed for at komme til at bruge en sort-værdi som allerede er "trukket".

Iøvrigt sker der ikke noget værre end at der kan komme dubletter hvis det skulle gå galt - men feltet er ikke et unikt felt alligevel (sådan som jeg har forstået det).
Avatar billede arne_v Ekspert
24. februar 2006 - 20:18 #12
jeg er generelt ikke saa glad for admin interfacet der kun virker single threaded

en eller anden dag saa ...

det er sikkert ikke en katastrofe hvis det gaar galt

men en passende LOCK og UNLOCK var maaske alligevel en god ide
Avatar billede nielle Nybegynder
24. februar 2006 - 20:24 #13
Ja, det er jo svært at argumentere imod. Men det virker nu ikke rigtigt som om at PHP og mysql_xxxx() funktionerne giver nogen videre mulighed for dette.
Avatar billede arne_v Ekspert
24. februar 2006 - 20:37 #14
LOCK og UNLOCK SQL saetninger kan vel koeres via mysql_query funktionen
Avatar billede aquafisken Nybegynder
25. februar 2006 - 15:17 #15
Hej igen!
Sikke meget I har fået denne tråd fyldt ud med, jeg troede ik det var det store problem, men hvad mener I med single threaded, det kan gå galt en dag og det vil være passende at bruge LOCK og UNLOCK SQL sætninger? Hvis I mener jeg sidder og laver noget der kan bryde sammen en dag, vil jeg da meget gerne vide det så jeg kan få rettet op på det...?
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
Vi tilbyder markedets bedste kurser inden for webudvikling

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