Avatar billede zorg_86 Nybegynder
21. december 2003 - 23:13 Der er 26 kommentarer og
1 løsning

Skal have vist flest downloads fra 2 tabler

Hej

Jeg har 2 tabler mobil_96x65 & mobil_128x128 i dem er der et felt der hedder downloads, hvor der står hvor mange gang billedet er blevet downloadet, så jeg skal bruge en query der kan finde flest downloads i de 2 tabler og stille dem op så den der er blevet hente flest gang står øverst, den skal max. udskrive 10 altså LIMIT 10...
Avatar billede codebase Praktikant
21. december 2003 - 23:55 #1
kan du ikke hente 10 records fra hver tabel og benyttet et array til at finde de øverste ?
Avatar billede zorg_86 Nybegynder
22. december 2003 - 00:07 #2
Jo hvis det vil virke...
Avatar billede zorg_86 Nybegynder
22. december 2003 - 00:29 #3
Noget du kan lave?
Avatar billede zorg_86 Nybegynder
22. december 2003 - 10:01 #4
?
Avatar billede codebase Praktikant
22. december 2003 - 10:31 #5
$query="SELECT downloads FROM mobil_96x65 ORDER BY downloads DESC LIMIT 0, 10";
$result = mysql_query("$query")or die(mysql_error());
for ($i=0; $row = mysql_fetch_object($result); $i++)
{
$var[$row->downloads] = $row->downloads;
}
$query="SELECT downloads FROM mobil_128x128 ORDER BY downloads DESC LIMIT 0, 10";
$result = mysql_query("$query")or die(mysql_error());
for ($i=0; $row = mysql_fetch_object($result); $i++)
{
$var[$row->downloads] = $row->downloads;
}

echo"<pre>";
print_r($var);
Avatar billede codebase Praktikant
22. december 2003 - 10:39 #6
har rettet lidt,

$query="SELECT downloads FROM mobil_96x65 ORDER BY downloads DESC LIMIT 0, 10";
$result = mysql_query("$query")or die(mysql_error());
for ($i=0; $row = mysql_fetch_object($result); $i++)
{
$var[$row->downloads] = $row->id;
}
$query="SELECT downloads FROM mobil_128x128 ORDER BY downloads DESC LIMIT 0, 10";
$result = mysql_query("$query")or die(mysql_error());
for ($i=0; $row = mysql_fetch_object($result); $i++)
{
$var[$row->downloads] = $row->id;
}

echo"<pre>";
print_r($var);

echo "top 10<br>";
krsort($var);
for( $i = 0; $i < 10; $i++ )
{
echo ( $i + 1 ) . ". plads - id nummer " . $var[$i];
}

det er kommandoen krsort som du skal kigge på
http://dk2.php.net/manual/en/function.krsort.php
Avatar billede zorg_86 Nybegynder
22. december 2003 - 11:30 #7
http://www.scooter-eksperten.dk/top10.php

Den skal skrive det sådan:

1. Adressen til billedet ( Ligger i URL i begge tabler )
2. Adressen til billedet ( Ligger i URL i begge tabler )
3. Adressen til billedet ( Ligger i URL i begge tabler )
4. Adressen til billedet ( Ligger i URL i begge tabler )
osv.

Og hvis der kun er f.eks 3 som er blevet downloadet hvor at resten står til 0 så skal de ikke blive vist før de er blevet downloadet min. 1 gang...
Avatar billede codebase Praktikant
22. december 2003 - 11:34 #8
$query="SELECT URL,downloads FROM mobil_96x65 ORDER BY downloads DESC LIMIT 0, 10";
$result = mysql_query("$query")or die(mysql_error());
for ($i=0; $row = mysql_fetch_object($result); $i++)
{
$var[$row->downloads] = $row->URL;
}
$query="SELECT URL,downloads FROM mobil_128x128 ORDER BY downloads DESC LIMIT 0, 10";
$result = mysql_query("$query")or die(mysql_error());
for ($i=0; $row = mysql_fetch_object($result); $i++)
{
$var[$row->downloads] = $row->URL;
}

echo"<pre>";
print_r($var);

echo "top 10<br>";
krsort($var);
for( $i = 0; $i < 10; $i++ )
{
echo "<a href='". $var[$i] ."'>". $var[$i] ."</a>";
}
Avatar billede zorg_86 Nybegynder
22. december 2003 - 11:37 #9
http://www.scooter-eksperten.dk/top10.php

Men den tager ikke mobil_96x65 med.
Avatar billede zorg_86 Nybegynder
22. december 2003 - 11:38 #10
For der er blevet downloadet nogle under mobil_96x65...
Avatar billede codebase Praktikant
22. december 2003 - 11:40 #11
ups.
$query="SELECT URL,downloads FROM mobil_96x65 ORDER BY downloads DESC LIMIT 0, 10";
$result = mysql_query("$query")or die(mysql_error());
for ($i=0; $row = mysql_fetch_object($result); $i++)
{
$array1[$row->downloads] = $row->URL;
}
$query="SELECT URL,downloads FROM mobil_128x128 ORDER BY downloads DESC LIMIT 0, 10";
$result = mysql_query("$query")or die(mysql_error());
for ($i=0; $row = mysql_fetch_object($result); $i++)
{
$array2[$row->downloads] = $row->URL;
}

$var = array_merge($array1, $array2);

echo "top 10<br>";
krsort($var);
for( $i = 0; $i < 10; $i++ )
{
echo "<a href='". $var[$i] ."'>". $var[$i] ."</a>";
}
Avatar billede zorg_86 Nybegynder
22. december 2003 - 11:43 #12
Det ser ud for om det virker, men kan du ikke lave så efter linket vil der stå hvor mange gang billedet er blevet downloadet?
Avatar billede zorg_86 Nybegynder
22. december 2003 - 11:57 #13
?
Avatar billede zorg_86 Nybegynder
22. december 2003 - 12:25 #14
Er du der?
Avatar billede zorg_86 Nybegynder
22. december 2003 - 13:36 #15
?
Avatar billede zorg_86 Nybegynder
22. december 2003 - 15:14 #16
?
Avatar billede zorg_86 Nybegynder
22. december 2003 - 18:30 #17
codebase?
Avatar billede zorg_86 Nybegynder
22. december 2003 - 20:36 #18
Hvis codebase ikke kan hjælpe færdig, er der så en anden der kan hjælpe?
Avatar billede codebase Praktikant
22. december 2003 - 23:43 #19
kig lige i koden mester, det er nu ikke så svært!!

..utestet...

$query="SELECT URL,downloads FROM mobil_96x65 ORDER BY downloads DESC LIMIT 0, 10";
$result = mysql_query("$query")or die(mysql_error());
for ($i=0; $row = mysql_fetch_object($result); $i++)
{
$array1[$row->downloads] = array($row->URL, $row->downloads);
}
$query="SELECT URL,downloads FROM mobil_128x128 ORDER BY downloads DESC LIMIT 0, 10";
$result = mysql_query("$query")or die(mysql_error());
for ($i=0; $row = mysql_fetch_object($result); $i++)
{
$array2[$row->downloads] = array($row->URL, $row->downloads);
}

$var = array_merge($array1, $array2);

echo "top 10<br>";
krsort($var);
for( $i = 0; $i < 10; $i++ )
{
echo "<a href='". $var[$i]['URL'] ."'>". $var[$i]['downloads'] ."</a>";
}
Avatar billede zorg_86 Nybegynder
23. december 2003 - 11:02 #20
Avatar billede codebase Praktikant
23. december 2003 - 13:22 #21
testet og virker..

$query="SELECT URL,downloads FROM mobil_96x65 ORDER BY downloads DESC LIMIT 0, 10";
$result = mysql_query("$query")or die(mysql_error());
for ($i=0; $row = mysql_fetch_object($result); $i++)
{
$array[$i] =  $row->downloads."_".$row->URL;
}

$query="SELECT URL,downloads FROM mobil_128x128 ORDER BY downloads DESC LIMIT 0, 10";
$result = mysql_query("$query")or die(mysql_error());
for ($j=$i; $row = mysql_fetch_object($result); $j++)
{
$array[$j] =  $row->downloads."_".$row->URL;
}
natsort($array);
$array = array_reverse($array, false);

echo "top 10<br>";

for( $i = 0; $i < 10; $i++ )
{
    $a = explode("_", $array[$i]);
echo "<a href='". $a[1] ."'>". $a[1] ."</a>" . $a[0] . "<br>";
}
Avatar billede zorg_86 Nybegynder
23. december 2003 - 19:02 #22
Ja det virker der er bare et lille problem som er at hvis der ikke er blevet hentet ialt 10 forskelige billeder ned, så bliver resten vist som et X, det skal den ikke!!

http://www.scooter-eksperten.dk/top10.php
Avatar billede zorg_86 Nybegynder
23. december 2003 - 19:05 #23
Og så lige den sidste ting som er at feltet dato som er i begge tables, skal bare udskrives vedsiden af downloads...

Når det er fixet så er det hele færdigt...
Avatar billede codebase Praktikant
23. december 2003 - 20:52 #24
$query="SELECT URL,downloads FROM mobil_96x65 ORDER BY downloads DESC LIMIT 0, 10";
$result = mysql_query("$query")or die(mysql_error());
for ($i=0; $row = mysql_fetch_object($result); $i++)
{
$array[$i] =  $row->downloads."__".$row->URL."__".$row->dato;
}

$query="SELECT URL,downloads FROM mobil_128x128 ORDER BY downloads DESC LIMIT 0, 10";
$result = mysql_query("$query")or die(mysql_error());
for ($j=$i; $row = mysql_fetch_object($result); $j++)
{
$array[$j] =  $row->downloads."__".$row->URL."__".$row->dato;
}
natsort($array);
$array = array_reverse($array, false);
$c = count($array);

echo "top 10<br>";

for( $i = 0; $i < 10; $i++ )
{
    $a = explode("__", $array[$i]);
    echo ($i + 1 ) . " <a href='". $a[1] ."'>". $a[1] ."</a>" . $a[0] . " " . $a[2] . "<br>";
    if ( $c - 1 == $i )
    {
        break;
    }

}
Avatar billede zorg_86 Nybegynder
23. december 2003 - 21:02 #25
Avatar billede codebase Praktikant
23. december 2003 - 22:00 #26
ret sql query til,
SELECT URL,downloads, dato ....
Avatar billede zorg_86 Nybegynder
23. december 2003 - 22:07 #27
Tak for hjælpe..

God jul
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