Gå til innhold

henting av info et nærmest tall fra MySQL-db[LØST]


Gjest Slettet+142

Anbefalte innlegg

Videoannonse
Annonse
Gjest Slettet+142
det er allerede gjort lenger opp, dessuten kan google aikkert hjelpe

6389261[/snapback]

jaja.. så det.... men har litt vanskeligheter med å lære ENKELTE ting... :no:

 

skal prøve google no... :)

 

 

 

--*har vært på google *--

 

skjønner ikkje vitsen med å få et positivt tall ut av et negativt... kor e det tallet som må brukes då? kass sammenheng?

 

 

----------------------------------

 

e det ikkje mye bedre å bruke FLOOR som returnerer det nærmeste heltallet under et angitt tall?

Endret av Slettet+142
Lenke til kommentar

Aha. Regnet med det måtte gå an med én query også :thumbup:

 

mariyo: Det den gjør først er å trekke ønsket pris fra prisen på sakene. Da får du differansen mellom prisen og ønsket pris. Noen av differansene vil være negative, noen positive. For noe er jo dyrere enn ønsket pris, og noe er billigere.

 

Men vi ville bare ha forskjellen, uansett om den var høyere eller lavere. Derfor puttes differansen inn i ABS() som gir deg absolutt-verdien av tallet. Det vil i praksis bare si at den fjerner minustegnet hvis det er noe der.

 

Da ender den opp med en liste over alle dingsene, og prisdifferansen. Så sorteres den på prisdifferansen, og LIMIT 1 gjør at den bare velger den på toppen, altså den med lavest prisdifferanse, som er den dingsen som ligger nærmest prisen vi ønsket oss.

 

Skjønte nå?

 

Den funksjonen jeg ga deg tidligere kan skrives om så den bare bruker denne ene greia, i stedet for de 4.

Lenke til kommentar
Gjest Slettet+142
Aha. Regnet med det måtte gå an med én query også :thumbup:

 

mariyo: Det den gjør først er å trekke ønsket pris fra prisen på sakene. Da får du differansen mellom prisen og ønsket pris. Noen av differansene vil være negative, noen positive. For noe er jo dyrere enn ønsket pris, og noe er billigere.

 

Men vi ville bare ha forskjellen, uansett om den var høyere eller lavere. Derfor puttes differansen inn i ABS() som gir deg absolutt-verdien av tallet. Det vil i praksis bare si at den fjerner minustegnet hvis det er noe der.

 

Da ender den opp med en liste over alle dingsene, og prisdifferansen. Så sorteres den på prisdifferansen, og LIMIT 1 gjør at den bare velger den på toppen, altså den med lavest prisdifferanse, som er den dingsen som ligger nærmest prisen vi ønsket oss.

 

Skjønte nå?

 

Den funksjonen jeg ga deg tidligere kan skrives om så den bare bruker denne ene greia, i stedet for de 4.

6390440[/snapback]

oki.... tror eg skjønte det... men ... e litt trøtt no, så bør nok lese det 140 ganger til imorgen så eg forstår det... :p ^^

 

men.. takk for forklaring uansett om eg forstår eller ikkje :thumbup:

 

koffor e det sånn (anførselstegnene)?

ABS(pris - " . $ram . ")

 

Endret av Slettet+142
Lenke til kommentar
koffor e det sånn (anførselstegnene)?
ABS(pris - " . $ram . ")

6390506[/snapback]

 

De er egentlig unødvendige.

$foo = "blah $rah blah"; og $foo = "blah ".$rah." blah"; blir det samme

 

 

$sql = "SELECT * FROM tabell ORDER BY ABS(pris - $onsket_pris) LIMIT 1";

Endret av -morten
Lenke til kommentar
Gjest Slettet+142
For de som lurte/ikke viste er er abs() absoluttverdien til et tall. Brukes ofte i matte(integrasjon f.eks)

6390535[/snapback]

og for de som lurte, så e eg 13, og har ikkje lært så veldig mye matte... :p

 

Mest en smakssak. Jeg liker å gjøre det sånn som jeg skrev over, men som Ueland sier, så kan det bli mer oversiktlig. Ofte får variabler en egen farge i kode-editorene, slik at du fort ser hvor det er variabler.

6394446[/snapback]

oki... tror eg begynner å skjønne det litt ^^

Lenke til kommentar
Mest en smakssak. Jeg liker å gjøre det sånn som jeg skrev over, men som Ueland sier, så kan det bli mer oversiktlig. Ofte får variabler en egen farge i kode-editorene, slik at du fort ser hvor det er variabler.

6394446[/snapback]

Det er mer enn bare smak. Det er en standard, det øker lesbarheten i veldig mange editorer, det reduserer faren for feil, og det kan øke hastigheten på skriptet, f.eks. dersom du bruker apostroff istedenfor anførselstegn.

 

 

abs returnerer absoluttverdien, som rett og slett vil si avstanden fra 0

-3 og 3 ligger begge 3 plasser ifra 0 på en tallinje, man kan derfor også bare fjerne fortegnet (oftest brukes bare minus som fortegn, da ingen fortegn betyr positivt tall)

abs(-3) = abs(3)

Endret av Nazgul
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...