Avatar billede cmau Nybegynder
14. januar 2005 - 12:34 Der er 9 kommentarer og
1 løsning

lave top 10 liste med 2 tabeller..

Hejsa jeg har en tabel der hedder zurekk_spil og en der hedder zurekk_stemmer hvordan kan jeg lave en topliste fra zurekk_spil, hvor den henter ud fra zurekk_stemmer efter stemme og hvor nr er li id'et på spillet?
Avatar billede morteeart Nybegynder
14. januar 2005 - 13:42 #1
ORDER BY id DESC , for det højeste ID først.
ORDER BY ID ASC , for det laveste ID først.
Avatar billede michael_stim Ekspert
14. januar 2005 - 13:45 #2
SELECT * FROM zurekk_spil ORDER BY zurekk_stemmer DESC LIMIT 10
Avatar billede michael_stim Ekspert
14. januar 2005 - 13:56 #3
Ups, läste vist ikke ordentligt ;o)
Avatar billede michael_stim Ekspert
14. januar 2005 - 14:00 #4
SELECT stemmer.zurekk_stemmer FROM zurekk_spil spil, zurekk_stemmer stemmer WHERE stemmer.id=spil.nr ORDER BY zurekk_stemmer DESC LIMIT 10

Var noget á la dette?
Avatar billede cmau Nybegynder
14. januar 2005 - 15:11 #5
Her er min sql:

CREATE TABLE zurekk_stemmer (
  id int(11) NOT NULL auto_increment,
  stemme int(60) NOT NULL default '',
  type varchar(60) NOT NULL default '',
  nr int(60) NOT NULL default '',
  PRIMARY KEY  (id)
) TYPE=MyISAM;

CREATE TABLE zurekk_spil (
  id int(11) NOT NULL auto_increment,
  navn varchar(60) NOT NULL default '',
  hits int(60) NOT NULL default '0',
  url varchar(255) NOT NULL default '',
  beskrivelse text NOT NULL,
  kategori varchar(60) NOT NULL default '',
  PRIMARY KEY  (id)
) TYPE=MyISAM;

Så skal jeg hente alt i zurekk_spil ud, men de skal hentes ud så den henter fra zurekk_stemmer hvor nr = id på spillet og type = spil.

Så jeg kan udskrive hviket spil der er stemt bedst på!
Avatar billede cmau Nybegynder
14. januar 2005 - 15:12 #6
Det vil altså sige at den også skal udskrive noget med SELECT AVG(stemme) AS gennemsnit

Så jeg kan finde bedømmelsen på spillet
Avatar billede michael_stim Ekspert
14. januar 2005 - 15:43 #7
SELECT AVG(stemmer.stemme) AS gennemsnit, spil.*, stemmer.* FROM zurekk_spil spil, zurekk_stemmer stemmer WHERE stemmer.nr=spil.id AND spil.kategori=stemmer.type ORDER BY gennemsnit DESC LIMIT 10

Tror den er her, har ikke tid til at gå den igennem, skal ud af dören.
Avatar billede cmau Nybegynder
15. januar 2005 - 16:16 #8
Får denne fejl:

Mixing of GROUP columns (MIN(),MAX(),COUNT()...) with no GROUP columns is illegal if there is no GROUP BY clause

har denne kode:

<?

echo '<p><a href="index.php">Tilbage til spil hovedesiden</a></p><p>Mest spillede spil:</p>';

include('../sql.php');

$visfra = (isset($_GET["visfra"])) ? $_GET["visfra"] : 0;
$prside = 10;

$query = mysql_query("SELECT AVG(stemmer.stemme) AS gennemsnit, spil.*, stemmer.* FROM zurekk_spil spil, zurekk_stemmer stemmer WHERE stemmer.nr=spil.id AND spil.kategori=stemmer.type ORDER BY gennemsnit DESC LIMIT $visfra, $prside") or die(mysql_error());

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

$type = "spil";
$id = $row[id];
$beskrivelse = $row[beskrivelse];
$beskrivelse = nl2br(htmlspecialchars($beskrivelse));

echo '<p><div align="center"><table border="1" width="505"><tr><td width="125" valign="top"><a href="ud.php?id='.$row[id].'" target="_blank"><img src="../images/spil/'.$row[id].'.jpg" width="125"></a><br>';

if(isset($_COOKIE["$type_$id"])) {
$bed = mysql_query("SELECT AVG(stemme) AS gennemsnit FROM zurekk_stemmer WHERE type = '$type' AND  nr = '$row[id]'") or die(mysql_error());

$bed = mysql_fetch_array($bed);

echo 'Bedømmelse: '.round($bed["gennemsnit"], 3).'';

}

if(!isset($_COOKIE["$type_$id"])) {
echo '<IFRAME name="'.$row[id].'" src="spil_form.php?type='.$type.'&nr='.$id.'" frameBorder="0" width="125" height="26"></IFRAME>';
}

echo '</td><td width="380" valign="top"><p><b>'.$row[navn].':</b> - <a href="#" onclick="window.open(\'spil_virker_ikke.php?id='.$id.'&navn='.$row[navn].'\',\'_blank\',\'width=300,height =350,toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no\')">Virker ikke?</a></p><p>Spillet <b>'.$row[hits].'</b> gange.</p><p><b>Beskrivelse:</b> '.$beskrivelse.'</p></td></tr></table></div></p>';

}

echo '<p align="center">';

$antal = mysql_result(mysql_query("SELECT COUNT(*) FROM zurekk_spil"),0);

if ($visfra > 0) {
    $bagud = $visfra-$prside;
    echo "<a href=\"spil_mest.php?visfra=".$bagud."\">Forrige</a> ";
}
$page = 1;
for ($start = 0; $antal > $start; $start = $start + $prside) {
    if($visfra != $page * $prside - $prside) {
        echo "<a href=\"spil_mest.php?visfra=".$start."\">".$page."</a> ";
    } else {
        echo "[$page] ";
    }
    $page++;
}
if ($visfra < $antal - $prside) {
    $naeste = $visfra + $prside;
    echo " <a href=\"spil_mest.php?visfra=".$naeste."\">Næste</a>";
}



echo '</p><p>Der er <b>'.mysql_result(mysql_query("SELECT COUNT(*) FROM zurekk_spil"),0).'</b> spil i alt.</p>';

?>
Avatar billede cmau Nybegynder
16. januar 2005 - 12:12 #9
Nogle der kan få det til at virke?
Avatar billede cmau Nybegynder
16. januar 2005 - 17:43 #10
lukker!
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