Avatar billede dumazz Nybegynder
20. marts 2003 - 09:17 Der er 17 kommentarer og
1 løsning

BETWEEN i MySQL

Hejsa...

Jeg har en tabel i min MySQL med 2 kolonner, ranghits og rang

Ranghits indeholder et nummer mens rang indeholder en tekst... der er 20 rækker

PHP scriptet skal så se hvad et givet tal er mellem...

f.eks.

Hvis hits er 45 skal den i nedenstående blive til "Wannabe"

0 Newbie
18 Wannabe
89 Veteran

Håber i forstår hvad jeg mener...
Avatar billede schaefner Juniormester
20. marts 2003 - 09:26 #1
Utestet:

<?php
$query = mysql_query("SELECT * FROM tabel");
$row = mysql_fetch_array($query);

if ($row[ranghits] >= 0 && $row[ranghits] < 18) {
  $rang = "Newbie";
} elseif ($row[ranghits] >= 18 && $row[ranghits] < 89) {
  $rang = "Wannabe";
} else {
  $rang = "Veteran";
}
?>
Avatar billede schaefner Juniormester
20. marts 2003 - 09:26 #2
...og så gemmer du bare variablen $rang i databasen
Avatar billede avminarm Juniormester
20. marts 2003 - 09:45 #3
Wanabees tingen: select * from tabel where ranghits < '100' and ranghits > '45'

byg selv videre
Avatar billede avminarm Juniormester
20. marts 2003 - 09:47 #4
ellers kan du bare beuge BETWEEN direkte i din sql stregn se http://www.mysql.com/doc/en/Comparison_Operators.html
Avatar billede schaefner Juniormester
20. marts 2003 - 09:54 #5
avminarm > tænkte også selv på den, men han skal vel ha givet brugeren en ny rang, så det kan vel ikke laves i ren sql, men jeg er ikke den stærkeste i sql, så jeg skal da ikke kune udtale mig om det ;0)
Avatar billede dumazz Nybegynder
20. marts 2003 - 10:26 #6
avminarm> tror du har misforstået spm'et...

schaefner> det du har lavet der har jeg allerede selv lavet, bliver bare en enorm lang kode, og vil kunne ændre intervallet i phpmyadmin...

Lige til en oplysning er Ranghits en konstant, det er ikke den der ændre sig når brugeren stiger...

strengen hits kommer fra en anden tabel...
Avatar billede avminarm Juniormester
20. marts 2003 - 10:54 #7
så må vi nok se noget kode
Avatar billede dumazz Nybegynder
20. marts 2003 - 14:29 #8
min MySQL ser sådan ud...

ID  --  INTERVAL  --  RANG

1  --        0  --  Rang 1
2  --        8  --  Rang 2
3  --        27  --  Rang 3
4  --        64  --  Rang 4
5  --      125  --  Rang 5

Hvis man så har f.eks. 100 point bliver man "Rang 4" tallet 100 kommer fra tabellen "bruger" og ovenstående tabel hedder "rang"
Avatar billede avminarm Juniormester
20. marts 2003 - 14:43 #9
lav en ny tabel med intervallerne for rang i - den tabel kan du så rette i og derefter ville jeg bruge det som schaefner har lavet bare med:

if ($row[ranghits] >= $rowconfig[min] && $row[ranghits] < $rowconfig[midt] ) {

osv
Avatar billede jakoba Nybegynder
20. marts 2003 - 14:56 #10
se if funktionen: IF(expr1,expr2,expr3)  på siden
http://www.mysql.com/doc/en/Control_flow_functions.html

$sql_kommeando = "
    SELECT IF( rangnumme < 0, "FEJL: den er helt gal med rangnummeret",
            IF( rangnummer < 8, "rang 1",
              IF( rangnummer < 27, "rang 2",
                IF( rangnummer < 64, "rang 3",
                  IF( rangnummer < 125, "rang 4, "rang 5" )
                    )
                  )
                )
              ) AS rangtekst
    FROM dintabel
";

mvh JakobA
Avatar billede dumazz Nybegynder
20. marts 2003 - 21:07 #11
jakoba> Godt forslag, men falder ikke i særlig god jord her ved mig... jeg er på udkig efter en KORT kode, der går ind i en tabel og kigger "Rang 1, ja det kan jeg klare, Rang 2 osse, Rang 3... Nææh, nå så tager vi Rang 2" håber du forstår hvad jeg mener...
Avatar billede jakoba Nybegynder
21. marts 2003 - 02:21 #12
ok. så lad os lave en tabel der 'oversætter' tallet til noget tekst:

$sql_kommeando = "
    SELECT  oversettetabel.rangtekst AS rangtekst
    FROM dintabel JOIN oversettetabel
    WHERE dintabel.rangnummer = oversettetabel.rangnummer
";

i oversættetabel skal der så indsættes en record med rangnummer og tilstavende tekst for hvert muligt rangnummer.

mvh JakobA
Avatar billede jakoba Nybegynder
21. marts 2003 - 02:22 #13
Ups. der skal vist stå , istedet for 'JOIN' i den situation

$sql_kommeando = "
    SELECT  oversettetabel.rangtekst AS rangtekst
    FROM dintabel, oversettetabel
    WHERE dintabel.rangnummer = oversettetabel.rangnummer
";
Avatar billede dumazz Nybegynder
21. marts 2003 - 09:28 #14
øhh det fatter jeg ikke helt....

Kan du ikke indsætte de navne jeg bruger ???

"hits" fra bruger skal sammenlignes med "interval" fra rang, og den tilhørende "rang" skal så bruges...
Avatar billede grafix Nybegynder
21. marts 2003 - 15:18 #15
Dumazz betaler ikke det aftalte beløb..... så hvis du tror du får fuldt point for at hjælpe ham så tager du fejl http://www.eksperten.dk/spm/330589
Avatar billede dumazz Nybegynder
23. marts 2003 - 18:54 #16
grafix> hold nu KÆFT.... bare fordi du rent faktisk ikke er grafikker behøver vel ikke gå ud over mig.... det du lavede kunne jeg jo selv have lavet i mspaint...
Avatar billede dumazz Nybegynder
24. marts 2003 - 17:16 #17
jakoba> Hvis du gider ændre navnene til det jeg har angivet, ville det være dejligt.... og så får du dine 100 point, med garanti...
Avatar billede dumazz Nybegynder
14. april 2003 - 12:08 #18
Nå lukker her....
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