Gå til innhold

Anbefalte innlegg

Hei, kunne trengt litt hjelp med en spørring.

 

Skal hente ut en liste med aid, header og avstand. Problemet er at jeg får ut samme aid og header flere ganger pga de har flere forskjellige avstander tilknyttet seg, jeg vil kun ha de ut engang med den nærmeste avstanden.

 

Spørringen jeg har ser slik ut:

SELECT DISTINCT article_tbl.aid,
header, ((ACOS(SIN(60.3938* PI() / 180) * SIN(lat * PI() / 180) + 
COS(60.3938 * PI() / 180) * COS(lat * PI() / 180) * COS((5.3100 - lng) * PI() / 180))
* 180 / PI()) * 60 * 1.1515) AS distance FROM art_has_loc_tbl, article_tbl 
WHERE art_has_loc_tbl.aid = article_tbl.aid ORDER BY distance ASC

 

Og får da følgende resultat:

153 test 0.0528555455730331

152 Studentsenteret - innbrudd igjen 0.452067792359317

151 Stor konsert på Koengen 0.556482656767487

150 Mobilenin ved UiB 0.615952300900184

148 Hei verden! 0.620065606434088

152 Studentsenteret - innbrudd igjen 0.636795407422177

152 Studentsenteret - innbrudd igjen 1.12548722925125

152 Studentsenteret - innbrudd igjen 4.37202829852531

 

Noen som har forslag til forbedring av spørringen?

Lenke til kommentar
Videoannonse
Annonse

Fungerer dette?

SELECT DISTINCT article_tbl.aid, header, 
MIN(((ACOS(SIN(60.3938* PI() / 180) * SIN(lat * PI() / 180) + COS(60.3938 * PI() / 180) * COS(lat * PI() / 180) * COS((5.3100 - lng) * PI() / 180)) * 180 / PI()) * 60 * 1.1515)) AS distance
FROM art_has_loc_tbl, article_tbl 
WHERE art_has_loc_tbl.aid = article_tbl.aid
ORDER BY distance ASC
GROUP BY article_tbl.aid, header

Endret av G2Petter
Lenke til kommentar
Fungerer dette?

else if ($_GET['dist'] == "alt"){
$query = mysql_query("SELECT DISTINCT *, ((ACOS(SIN($lat * PI() / 180) * SIN(lat * PI() / 180) + COS($lat * PI() / 180) * COS(lat * PI() / 180) * COS(($lon - lng) * PI() / 180)) * 180 / PI()) * 60 * 1.1515) AS distance FROM art_has_loc_tbl, article_tbl WHERE art_has_loc_tbl.aid = article_tbl.aid AND article_tbl.published_state = 1 ORDER BY distance ASC");
}


while ($array = mysql_fetch_array($query)) {

$finnArtstuff = mysql_query("SELECT DISTINCT article_tbl.* FROM article_tbl, art_has_loc_tbl WHERE article_tbl.aid = $array[aid]  GROUP BY article_tbl.aid");


$stuff = mysql_fetch_array($finnArtstuff);

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...