---
title: "Hämta de 2 lägst värdena"
type: "forum-thread"
url: "https://www.webforum.nu/amne/php/186981-hämta-de-2-lägst-värdena"
topic: "PHP"
topic_url: "https://www.webforum.nu/amne/php"
author: "Farmed"
published: "2011-05-17T17:02:12.000Z"
updated: "2011-06-02T09:57:42.000Z"
replies: 5
views: 2098
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/php/186981-hämta-de-2-lägst-värdena"
---

# Hämta de 2 lägst värdena

## #1 — Farmed, 2011-05-17T17:02Z

Jag håller på med en topplista där summeringen hämtar värden från sql.
10veckors värden hämtas per person. Det jag sedan vill göra är att subtrahera med de 2 lägsta. Så resultatet som visas är de bästa 8veckors resultaten.

Tacksam för svar! :bire

Permalänk: https://www.webforum.nu/p/186981

## #2 — The_Hulk, 2011-05-18T06:25Z

Börja med att visa din befintliga kod så är det lättare att hjälpa dig.

Permalänk: https://www.webforum.nu/p/2275937

## #3 — Farmed, 2011-05-18T17:45Z

Okey. Jag är som sagt ny när det gäller php/sql och har lekt ihop en tips-sm hemsida. Det jag sedan har gjort är att jämföra tipparens värden med admins värden. 

```
    
<?php

$select_user = mysql_query("SELECT * FROM tips WHERE username='$_SESSION[username]' AND week='$res_row[week]' ORDER BY id DESC LIMIT 1") or die(mysql_error());
$select_admin = mysql_query("SELECT * FROM tipsii WHERE username='admin' AND week='$res_row[week]' ORDER BY id DESC LIMIT 1") or die(mysql_error());
    $select_adminm = mysql_query("SELECT * FROM tipsM WHERE username='admin' ORDER BY id DESC LIMIT 1") or die (mysql_error());                                               

    $res_row = mysql_fetch_array($select_adminm);   
$user_array = mysql_fetch_array($select_user);
$admin_array = mysql_fetch_array($select_admin);

if ($user_array['r101'] == $admin_array['r1'] or $user_array['r102'] == $admin_array['r1'] or $user_array['r103'] == $admin_array['r1']){
	$user1 = 1;
	}
else {
$user1 = 0;
	}  
if ($user_array['r201'] == $admin_array['r2'] or $user_array['r202'] == $admin_array['r2'] or $user_array['r203'] == $admin_array['r2']){
	$user2 = 1;
	}
else {
$user2 = 0;
	}  
if ($user_array['r301'] == $admin_array['r3'] or $user_array['r302'] == $admin_array['r3'] or $user_array['r303'] == $admin_array['r3']){
	$user3 = 1;
	}
else {
$user3 = 0;
	}  
if ($user_array['r401'] == $admin_array['r4'] or $user_array['r402'] == $admin_array['r4'] or $user_array['r403'] == $admin_array['r4']){
	$user4 = 1;
	}
else {
$user4 = 0;
	}  
if ($user_array['r501'] == $admin_array['r5'] or $user_array['r502'] == $admin_array['r5'] or $user_array['r503'] == $admin_array['r5']){
	$user5 = 1;
	}
else {
$user5 = 0;
	}  
if ($user_array['r601'] == $admin_array['r6'] or $user_array['r602'] == $admin_array['r6'] or $user_array['r603'] == $admin_array['r6']){
	$user6 = 1;
	}
else {
$user6 = 0;
	}  
if ($user_array['r701'] == $admin_array['r7'] or $user_array['r702'] == $admin_array['r7'] or $user_array['r703'] == $admin_array['r7']){
	$user7 = 1;
	}
else {
$user7 = 0;
	}  
if ($user_array['r801'] == $admin_array['r8'] or $user_array['r802'] == $admin_array['r8'] or $user_array['r803'] == $admin_array['r8']){
	$user8 = 1;
	}
else {
$user8 = 0;
	}  
if ($user_array['r901'] == $admin_array['r9'] or $user_array['r902'] == $admin_array['r9'] or $user_array['r903'] == $admin_array['r9']){
	$user9 = 1;
	}
else {
$user9 = 0;
	}  
if ($user_array['r1001'] == $admin_array['r10'] or $user_array['r1002'] == $admin_array['r10'] or $user_array['r1003'] == $admin_array['r10']){
	$user10 = 1;
	}
else {
$user10 = 0;
	}  
if ($user_array['r1101'] == $admin_array['r11'] or $user_array['r1102'] == $admin_array['r11'] or $user_array['r1103'] == $admin_array['r11']){
	$user11 = 1;
	}
else {
$user11 = 0;
	}  
if ($user_array['r1201'] == $admin_array['r12'] or $user_array['r1202'] == $admin_array['r12'] or $user_array['r1203'] == $admin_array['r12']){
	$user12 = 1;
	}
else {
$user12 = 0;
	}  
if ($user_array['r1301'] == $admin_array['r13'] or $user_array['r1302'] == $admin_array['r13'] or $user_array['r1303'] == $admin_array['r13']){
	$user13 = 1;
	}
else {
$user13 = 0;
	}  
	
                                
                   
?>
```

För att via resultatet har jag gjort en enken

```
echo $user1 + $user2 + $user3 + $user4 + $user5 + $user6 + $user7 + $user8 + $user9 + $user10 + $user11 + $user12 + $user13;
```

Sedan har jag infogat veckans resultatet i sql databasen. 
och hämtat värdena med summeringen igen.

```
    $select_radw1 = mysql_query("SELECT * FROM ismw WHERE id='1'") or die(mysql_error());
    $select_radw11 = mysql_query("SELECT * FROM tipsw WHERE id='1' AND week='1'") or die(mysql_error());
    $select_radw12 = mysql_query("SELECT * FROM tipaw WHERE id='1' AND week='2'") or die(mysql_error());
    $select_radw13 = mysql_query("SELECT * FROM tipsw WHERE id='1' AND week='3'") or die(mysql_error());
    $select_radw14 = mysql_query("SELECT * FROM tipsw WHERE id='1' AND week='4'") or die(mysql_error());
    $select_radw15 = mysql_query("SELECT * FROM tipsw WHERE id='1' AND week='5'") or die(mysql_error());
    $select_radw16 = mysql_query("SELECT * FROM tipsw WHERE id='1' AND week='6'") or die(mysql_error());
    $select_radw17 = mysql_query("SELECT * FROM tipsw WHERE id='1' AND week='7'") or die(mysql_error());
    $select_radw18 = mysql_query("SELECT * FROM tipsw WHERE id='1' AND week='8'") or die(mysql_error());
    $select_radw19 = mysql_query("SELECT * FROM tipsw WHERE id='1' AND week='9'") or die(mysql_error());
    $select_radw10 = mysql_query("SELECT * FROM tipsw WHERE id='1' AND week='10'") or die(mysql_error());
```

```
<table id="sorttable">
<thead>
   <tr>
      <td>
<? echo "$anv_radw1[user]"; ?>
      </td>
      <td><center>
<? echo "$anv_radw11[summa]"; ?>    
     </center></td>
      <td>
<? echo "$anv_radw12[summa]"; ?> 
      </td>
      <td>
<? echo "$anv_radw13[summa]"; ?> 
      </td>
      <td>
<? echo "$anv_radw14[summa]"; ?> 
      </td>
      <td>
<? echo "$anv_radw15[summa]"; ?> 
      </td>
      <td>
<? echo "$anv_radw16[summa]"; ?> 
      </td>
      <td>
<? echo "$anv_radw17[summa]"; ?> 
      </td>
      <td>
<? echo "$anv_radw18[summa]"; ?> 
      </td>
      <td>
<? echo "$anv_radw19[summa]"; ?> 
      </td>
      <td>
<? echo "$anv_radw10[summa]"; ?> 
      </td>
      <td>
<? echo $anv_radw11[summa] + $anv_radw12[summa] + $anv_radw13[summa] + $anv_radw14[summa] + $anv_radw15[summa] + $anv_radw16[summa] + $anv_radw17[summa] + $anv_radw18[summa] + $anv_radw19[summa] + $anv_radw10[summa] ; ?>
      </td>
   </tr>
```

Nu är saken att jag vill att endast 8 veckor räknas. Med andra ord så ska de 2 lägsta tas bort.
Hoppas det hjälpte dig att förstå vad jag är ute efter.
//stefan

Permalänk: https://www.webforum.nu/p/2275953

## #4 — aasah, 2011-05-22T19:53Z

För att komma någon vart alls i programmering/scriptning måste man lära sig sådana styrstrukturer som slingor och loopar. Den kod du visar, där värden hårdkodas, ett i taget, för 13 användare och x rader är... i princip inte framkomlig. Säg att du vill ändra på något någonstans eller lägga till 5 användare? Du får en massa - egentligen identiska - kodrader att ändra. Och den fråga du ställer, hur ta bort de två lägsta värdena blir omöjlig att lösa så länge du inte kan hantera flera värden i samma kodslinga.

Om du däremot sätter dig in i slingor och loopar kan du dels skriva om den kod du nu har till avsevärt färre rader och dessutom enkelt lösa problemet med att ta bort de två sämsta raderna, genom att hela tiden i loopen hålla reda på vilka dessa är, och sedan skriva ut alla andra.

Rekommenderar en lärobok i PHP eller t.ex. [Slingor i PHP](http://www.phpportalen.net/school.php?id=8) till att börja med. :)

Permalänk: https://www.webforum.nu/p/2276035

## #5 — Farmed, 2011-05-29T14:21Z

Tack för ditt svar!
Jag är som sagt ny när det gäller php/sql så all hjälp man kan få är jag enormt tacksam för!

Har även gjort om summeringen så den hämtar den totala summan av samtliga användare utan att behöva koda om efter antal användare:

```
$summering = "SELECT SUM(summa) AS sum_points FROM `ismw` GROUP BY id DESC ";
$resulttot = mysql_query($summering) or die(mysql_error());   

while($tot = mysql_fetch_array($resulttot)){
  echo "<tr>";                              
  echo "<td>" . $tot['sum_points'] . "</td>";  
}
```

Men jag sitter fortfarande fast på hur jag ska ta bort de 2 lägsta värdena.
Hoppas det vart lite trevligare att se dessa koder..

//Stefan

Permalänk: https://www.webforum.nu/p/2276225

## #6 — TobiasN, 2011-06-02T09:57Z

Plocka ut de två lägsta värdena med sql med hjälp av LIMIT. Sen subtraherar du med PHP. Det är väl inte svårare än så?

SELECT sum(val) WHERE id=2 ORDER BY time DESC LIMIT 8,2

Permalänk: https://www.webforum.nu/p/2276364

---

Tråden på webben: https://www.webforum.nu/amne/php/186981-hämta-de-2-lägst-värdena
