Avatar billede annbj Nybegynder
25. april 2003 - 10:48 Der er 7 kommentarer og
1 løsning

Topliste problemer

Jeg har hentet et topliste script i php, har udfyldt databasen korrekt (mener jeg da), og får så denne fejl:

Warning: mysql_numrows(): supplied argument is not a valid MySQL result resource in /home/web/gb1885/capri/topliste/index.php on line 36

Jeg er totalt nybegynder i det her, så skær gerne jeres svar ud i pap :o)
(Blondiner i ved*LOL*)

Her kommer koden :

<?
if ($p == "") {
    $p = 0;
}
?>
<? include("database.php") ?>
<? include("header.php") ?>

  <FONT FACE="verdana, arial, helvetica" SIZE=2>
  <CENTER>
  <A HREF="join.php"><B>Join <? echo $TopListName?></B></A>

<?

    $maxdate = time() - ($MaxDays * 86400);

    if ($p == 0)
    {
        $site_info = mysql_query("SELECT
$Members.title AS title, $Members.url AS url, count(*) AS hits,
avg($IPLogg.vote) AS avrating,
$Members.siteid AS id FROM
$IPLogg,$Members WHERE $Members.siteid = $IPLogg.siteid AND $IPLogg.time > '$maxdate'
GROUP BY $Members.siteid ORDER BY hits DESC, avrating DESC");
    }
    else if ($p == 1)
    {
        $site_info = mysql_query("SELECT
$Members.title AS title, $Members.url AS url, count(*) AS hits,
avg($IPLogg.vote) AS avrating,
$Members.siteid AS id FROM
$IPLogg,$Members WHERE $Members.siteid = $IPLogg.siteid AND $IPLogg.time > '$maxdate'
GROUP BY $Members.siteid ORDER BY avrating DESC, hits DESC");
    }

    $site_num = mysql_numrows($site_info);
    if ($f == "")
        $f = 0;
    $maxsites = $f + $TopListSize;



    if ($site_num > $maxsites)
        $site_num = $maxsites;

    $i = $f;


    echo "<TABLE>";
    echo "<TR><TD><FONT FACE=\"arial, helvetica, verdana\" SIZE=2><B>";
    if ($f == 0)
    {
        echo "&nbsp;";
    }
    else
    {
        $f2 = $f-$TopListSize;
        echo "<A HREF=\"?f=$f2&p=$p\">PREV</A>";
    }
    echo "</B></FONT>";
    echo "</TD><TD ALIGN=center COLSPAN=3><FONT FACE=\"verdana, arial, helvetica\" SIZE=1>Only votes from the latest $MaxDays are

counted!</FONT>";
    echo "</TD><TD ALIGN=right><FONT FACE=\"arial, helvetica, verdana\" SIZE=2><B><A

HREF=\"?f=$maxsites&p=$p\">NEXT</A></TD></TR>";

    echo "<TR><TD ALIGN=center WIDTH=35 BGCOLOR=\"#D7D7D7\"><FONT FACE=\"arial, helvetica, verdana\"

SIZE=1><B>Rank</B></FONT></TD>";
    echo "<TD ALIGN=center WIDTH=300 BGCOLOR=\"#D7D7D7\"><FONT FACE=\"arial, helvetica, verdana\" SIZE=1>Site</FONT></TD>";
    echo "<TD ALIGN=center WIDTH=50 BGCOLOR=\"#D7D7D7\"><FONT FACE=\"arial, helvetica, verdana\" SIZE=1><A

HREF=\"$DomainName/index.php?p=1\">Votes</A></FONT></TD>";
    echo "<TD ALIGN=center WIDTH=35 BGCOLOR=\"#D7D7D7\"><FONT FACE=\"arial, helvetica, verdana\" SIZE=1><B><A

HREF=\"$DomainName/index.php?p=0\">Hits</A></B></FONT></TD>";
    echo "<TD ALIGN=center WIDTH=35><FONT FACE=\"arial, helvetica, verdana\" SIZE=1>&nbsp;</FONT></TD></TR>";

    while ($i < $site_num)
    {
        $i2=$i+1;
        echo "<TR><TD ALIGN=center BGCOLOR=\"#D7D7D7\"><FONT FACE=\"arial, helvetica, verdana\"

SIZE=4><B>$i2</B></FONT></TD>";
        echo "<TD ALIGN=center><FONT FACE=\"arial, helvetica, verdana\" SIZE=2><A HREF=\"". mysql_result($site_info,$i,"url"). "\"

TARGET=\"_blank\">". mysql_result($site_info,$i,"title"). "</A></FONT></TD>";
        echo "<TD ALIGN=center><FONT FACE=\"arial, helvetica, verdana\" SIZE=2><IMG SRC=\"$PicturesDir/";
//        if (mysql_result($site_info,$i,"hits") < 2) { echo "tom.gif"; }
        if (mysql_result($site_info,$i,"avrating") <= 1.5) { echo "rating_1.gif"; }
        else if (mysql_result($site_info,$i,"avrating") < 2) { echo "rating_1_5.gif"; }
        else if (mysql_result($site_info,$i,"avrating") < 2.5) { echo "rating_2.gif"; }
        else if (mysql_result($site_info,$i,"avrating") < 3) { echo "rating_2_5.gif"; }
        else if (mysql_result($site_info,$i,"avrating") < 3.5) { echo "rating_3.gif"; }
        else if (mysql_result($site_info,$i,"avrating") < 4) { echo "rating_3_5.gif"; }
        else if (mysql_result($site_info,$i,"avrating") < 4.5) { echo "rating_4.gif"; }
        else if (mysql_result($site_info,$i,"avrating") < 4.8) { echo "rating_4_5.gif"; }
        else { echo "rating_5.gif"; }
        echo "\"></FONT></TD>";
        echo "<TD ALIGN=center><FONT FACE=\"arial, helvetica, verdana\" SIZE=2>". mysql_result($site_info,$i,"hits"). "</FONT></TD>";
        echo "<TD ALIGN=center><FONT FACE=\"arial, helvetica, verdana\" SIZE=1><A HREF=\"vote.php?id=".

mysql_result($site_info,$i,"id"). "\">VOTE</A></FONT></TD></TR>";
        $i++;
    }

    while ($i < $maxsites)
    {
        $i2=$i+1;
        echo "<TR><TD ALIGN=center BGCOLOR=\"#D7D7D7\"><FONT FACE=\"arial, helvetica, verdana\"

SIZE=4><B>$i2</B></FONT></TD>";
        echo "<TD ALIGN=center><FONT FACE=\"arial, helvetica, verdana\" SIZE=2><A HREF=\"join.php\"><B>Join

$TopListName</B></A></FONT></TD>";
        echo "<TD ALIGN=center><FONT FACE=\"arial, helvetica, verdana\" SIZE=1>&nbsp;</FONT></TD>";
        echo "<TD ALIGN=center>&nbsp;</TD>";
        echo "<TD ALIGN=center><FONT FACE=\"arial, helvetica, verdana\" SIZE=1>&nbsp;</FONT></TD></TR>";
        $i++;
    }
    echo "<TR><TD COLSPAN=3><FONT FACE=\"arial, helvetica, verdana\" SIZE=2><B>";
    if ($f == 0)
    {
        echo "&nbsp;";
    }
    else
    {
        $f2 = $f-$TopListSize;
        echo "<A HREF=\"?f=$f2&p=$p\">PREV</A>";
    }
    echo "</B></FONT>";


    echo "</TD><TD COLSPAN=3 ALIGN=right><FONT FACE=\"arial, helvetica, verdana\" SIZE=2><B><A

HREF=\"?f=$maxsites&p=$p\">NEXT</A></TD></TR>";
    echo "</TABLE>";

?>
<CENTER><FONT FACE="verdana, arial, helvetica" SIZE=1>Script from <A HREF="http://www.xaviermedia.com/php/toplist.phtml">Xavier Media

Group</A></FONT></CENTER>

<? include("footer.php") ?>
Avatar billede disky Nybegynder
25. april 2003 - 10:51 #1
Det her er en MySQL gruppe, 99% af det du har postet er PHP.

OG dit problem er noget med interfacingen imellem MySQL og PHP spørg derfor venligst i PHP gruppen istedet.

P.s. Husk at luk spørgsmålet her tak.
Avatar billede clausjul Nybegynder
25. april 2003 - 10:51 #2
Når jeg ser på den første SQL:

SELECT $Members.title AS title, $Members.url AS url, count(*) AS hits,
avg($IPLogg.vote) AS avrating, $Members.siteid AS id FROM $IPLogg,$Members WHERE $Members.siteid = $IPLogg.siteid AND $IPLogg.time > '$maxdate'
GROUP BY $Members.siteid ORDER BY hits DESC, avrating DESC

Hvorfor skal der være $Members.title? Altså $ før Members - Er $Members en parameter fra URL'en?
Avatar billede dmdisco Nybegynder
25. april 2003 - 10:54 #3
du mangler et _ i mysql_numrows skulle være mysql_num_rows
Avatar billede dmdisco Nybegynder
25. april 2003 - 10:55 #4
mysql_num_rows($site_info);
Avatar billede annbj Nybegynder
25. april 2003 - 10:55 #5
Ok, jeg flytter spørgsmålet så.
Tak !
Avatar billede annbj Nybegynder
25. april 2003 - 10:58 #6
dmdisco > Det hjalp ikke, men tak for hjælpen !
Avatar billede dmdisco Nybegynder
25. april 2003 - 10:59 #7
prøv at sætte or die (mysql_error()); efter din query sætning
Avatar billede annbj Nybegynder
25. april 2003 - 11:05 #8
Hvor er det jeg skal sætte det ind ??
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
Computerworld tilbyder specialiserede kurser i database-management

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