Avatar billede pepsiman Juniormester
06. september 2009 - 17:42 Der er 13 kommentarer og
1 løsning

Hvilken funktion,hvis jeg bruger højst værdi på point?

Hej alle.

Ja jeg begynder at lave point system og bruger denne metode:

$sql = mysql_query("SELECT * FROM pointsystem ORDER BY point");

Det vise sig at værdi følger et tal fra 1-9

1
12
1250
23
345
567

jeg mener at det burde være 1250 har eget værdi som højst.

Hvordan skriver jeg det?

tak
Avatar billede Slettet bruger
06. september 2009 - 17:51 #1
Prøv med:
$sql = mysql_query("SELECT * FROM pointsystem ORDER BY CAST(point AS SIGNED)");

Ps. Husk for fremtiden at lægge dine spørgsmål om SQL under kategorien Databaser.
Avatar billede dkfire Nybegynder
06. september 2009 - 18:00 #2
Dernæst skal det siges at tal aldrig, og jeg mener ALDRIG, må gemmes som tekst (VARCHAR, TEXT eller noget i den stil).

Dernæst mangler du at angive hvordan dine tal skal ordnes, enten DESC eller ASC.
Avatar billede pepsiman Juniormester
06. september 2009 - 18:26 #3
Kimsey.
Jeg skal nok huske næst gang.

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'Resource id #3' at line 1

jeg bruger PHP Version 5.2.8
----
dkfire

jeg bruger ikke ASC eller DESC,Kun højste point lægger på nr. 1.
Avatar billede pepsiman Juniormester
06. september 2009 - 18:34 #4
jeg lukker her og flytter spørgsmålet til kategorien SQL.
Avatar billede dkfire Nybegynder
06. september 2009 - 18:37 #5
Jamen du skal jo netop brug ASC eller DESC alt efter hvordan du vil have dine tal sorteret. Om det skal være den højeste eller laveste først.

Til din mysql fejl, så gør du noget helt galt i din kode, vis noget mere og det kan være vi kan hjælpe.
Avatar billede pepsiman Juniormester
07. september 2009 - 16:22 #6
Kære dkfire.

Jeg kan ikke bruger desc eller asc.
DESC eller ASC omhandler fra 1 til 9 eller omvendt. Jeg vil snakker om højeste værdier.Jeg kan godt bruger MAX(point),men jeg vil have lister med højeste værdier på top derefter falder ned med værdier.

metode med desc:

2500
1500
1450
10150 <- der burde være 1 pladsen.
1000
0

hvordan kan du forklarer her?
Avatar billede pepsiman Juniormester
07. september 2009 - 16:23 #7
sådan ser det ud:

$sql = ("SELECT * FROM pointsystem ORDER BY point DESC");
$res=mysql_query($sql);

while($rows = mysql_fetch_array($res))
{
$navn=$rows['navn'];
$point=$rows['point'];
echo "$navn";
echo ": ";
echo "$point"."<br>";   
}
Avatar billede dkfire Nybegynder
07. september 2009 - 16:46 #8
Hvilken type er din kolonne point i din tabel ?
Jeg gætter på varchar.
Avatar billede dkfire Nybegynder
07. september 2009 - 18:54 #9
Og bare lige for en god ordens skyld, så er grunden til at jeg er meget sikker på at typen for din kolonne er forkert, er at sorteringen af dine tale viser med alt tydelighed at typen er forkert.

Når kolonnen er af type varchar eller ligende vil en sortering af tal betyde at første tal sorteres første, dernæst næste tal osv.
Dvs ved en faldende sortering:
2500  (2 er større end 1)
1500  (5 er større end 4)
1450  (4 er større end 0)
10150 <- der burde være 1 pladsen. ( 1 er større end 0 )
1000  (1 er større end 0)
0
Avatar billede pepsiman Juniormester
08. september 2009 - 09:02 #10
ja,jeg bruger varchar..Jeg har lige ændret til INT.Det virker fint
Avatar billede dkfire Nybegynder
08. september 2009 - 10:23 #11
Jamen så er problemet jo løst.
Og hvis vi nu kigger godt efter så har jeg allerede ved #2 givet dig svaret på problemet ;-)
Avatar billede pepsiman Juniormester
08. september 2009 - 11:09 #12
jamen du sagde ikke noget om INT.:)
Desværre ingen point til dig.:/

Jeg lukker her ... igen
Avatar billede dkfire Nybegynder
08. september 2009 - 13:26 #13
Hvilke andre muligheder er der for felter med tal andet end tal typer, når de IKKE må være tekst type ?

Jeg er sådan set ligeglad med point.
Avatar billede tfswebguy Nybegynder
08. september 2009 - 14:01 #14
Retfærdighed skal der til.

dkfire skrev i #2:
"Dernæst skal det siges at tal aldrig, og jeg mener ALDRIG, må gemmes som tekst (VARCHAR, TEXT eller noget i den stil)."

Så er der altså ikke så meget andet end INT tilbage, så du kan i hvert fald ikke påstå det ikke var det han sagde. Han formulerede det blot anderledes!
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