Avatar billede goamind Nybegynder
12. november 2001 - 14:11 Der er 8 kommentarer og
1 løsning

Medlemslisten på mit site sorterer ikke rigtigt!!!!

Hej
Hvis man vil slå alle registrerede brugere op på mit site kommer der ingenting frem. Jeg får ingen fejl. Man kan godt sortere efter a,b,c,d,e,f....osv. men ikke efter \"Alle\". Jeg har været koden igennem og kan ikke rigtig \"hitte ud af det\".

mit site:
www.planeswalker.dk

Hvis nogen mener de kan hjælpe, hvad skal i så bruge mere af oplysninger???

-Carsten
Avatar billede hirayz Nybegynder
12. november 2001 - 14:16 #1
kan vi få lidt kode
Avatar billede wizprod.com Nybegynder
12. november 2001 - 14:50 #2
prøv at skrive or die(mysql_error()); efter din mysql_query()... giver det nogle fejl?
Avatar billede goamind Nybegynder
12. november 2001 - 15:04 #3
Her er koden for users.php - jeg ved ikke om det kommer til at stå rodet, men jeg prøver...


/* Some code taken from MemberList coded by Paul Joseph Thompson */
/* of www.slug.okstate.edu                                      */
/* In memoriam of Members List War ;)                            */

if (!eregi(\"modules.php\", $PHP_SELF)) {
    die (\"You can\'t access this file directly...\");
}
if (!IsSet($mainfile)) { include(\"mainfile.php\"); }

function alpha() {
    /* Creates the list of letters and makes them a link. */
    global $sortby;
        $alphabet = array (\"All\", \"A\",\"B\",\"C\",\"D\",\"E\",\"F\",\"G\",\"H\",\"I\",\"J\",\"K\",\"L\",\"M\",
                            \"N\",\"O\",\"P\",\"Q\",\"R\",\"S\",\"T\",\"U\",\"V\",\"W\",\"X\",\"Y\",\"Z\",\"Other\");
        $num = count($alphabet) - 1;
        echo \"<center>[ \";
    /* start of HTML */
        $counter = 0;
        while (list(, $ltr) = each($alphabet)) {
            echo \"<A HREF=\\\"modules.php?op=modload&amp;name=Members_List&amp;file=index&amp;letter=$ltr&amp;sortby=$sortby\\\">$ltr</a>\";
            if ( $counter == round($num/2) ) {
                echo \" ]\\n<br>\\n[ \";
            } elseif ( $counter != $num ) {
                echo \"&nbsp;|&nbsp;\\n\";
            }
            $counter++;
        }
        echo \" ]\\n</center>\\n<br>\\n\";  // end of HTML
}

function SortLinks($letter) {  // Makes order by links..
        global $sortby;
        if ($letter == \"front\") {
        $letter = \"All\";
    }
        echo \"\\n<center>\\n\"; // Start of HTML
        echo \"\"._SORTBY.\" <b>[</b> \";
        if ($sortby == \"uname\" OR !$sortby) {
            echo \"\"._MNICKNAME.\"&nbsp;|&nbsp;\";
        } else {
            echo \"<A HREF=\\\"modules.php?op=modload&amp;name=Members_List&amp;file=index&amp;letter=$letter&amp;sortby=uname\\\">\"._MNICKNAME.\"</a>&nbsp;|&nbsp;\";
        }
        if ($sortby == \"name\") {
            echo \"\"._MREALNAME.\"&nbsp;|&nbsp;\";
        } else {
            echo \"<A HREF=\\\"modules.php?op=modload&amp;name=Members_List&amp;file=index&amp;letter=$letter&amp;sortby=name\\\">\"._MREALNAME.\"</a>&nbsp;|&nbsp;\";
        }
        if ($sortby == \"femail\") {
            echo \"\"._MEMAIL.\"&nbsp;|&nbsp;\";
        } else {
            echo \"<A HREF=\\\"modules.php?op=modload&amp;name=Members_List&amp;file=index&amp;letter=$letter&amp;sortby=femail\\\">\"._MEMAIL.\"</a>&nbsp;|&nbsp;\";
        }
        if ($sortby == \"url\") {
            echo \"\"._MURL.\"&nbsp;|&nbsp;\";
        } else {
            echo \"<A HREF=\\\"modules.php?op=modload&amp;name=Members_List&amp;file=index&amp;letter=$letter&amp;sortby=url\\\">\"._MURL.\"</a>\";
        }
        echo \" <b>]</b>\\n</center>\\n\"; // end of HTML
}
       
include(\"header.php\");
$pagesize = 20;

if (!isset($letter)) { $letter = \"A\"; }
if (!isset($sortby)) { $sortby = \"uname\"; }
if (!isset($page)) { $page = 1; }

/* All of the code from here to around line 125 will be optimized a little later */
/* This is the header section that displays the last registered and who\'s logged in and whatnot */

$result = mysql_query(\"select uname from $prefix\"._users.\" order by uid DESC limit 0,1\");
list($lastuser) = mysql_fetch_row($result);
echo \"\\n\\n<!-- MEMBERS LIST -->\\n\\n\";
    OpenTable();
        echo \"<center><b>\"._WELCOMETO.\" $sitename \"._MEMBERSLIST.\"</b><br><br>\\n\";
        echo \"\"._GREETINGS.\" <A HREF=\\\"user.php?op=userinfo&amp;uname=$lastuser\\\">$lastuser</a>\\n</center>\\n<br>\\n\";

        $numrows = mysql_num_rows(mysql_query(\"select uid from $prefix\"._users.\"\"));

        if (is_user($user)) {
            $result2 = mysql_query(\"SELECT username,guest FROM $prefix\"._session.\" where guest=0\");
            $member_online_num = mysql_num_rows($result2);
        $who_online = \"<b>\"._ONLINEREG.\" </b><br><br>\";
            $i = 1;
            while ($session = mysql_fetch_array($result2)) {
                if (isset($session[\"guest\"]) and $session[\"guest\"] == 0) {
                    $who_online .= \"<A HREF=\\\"user.php?op=userinfo&amp;uname=$session[username]\\\">$session[username]</a>\\n\";
                    $who_online .= ($i != $member_online_num ? \" - \" : \"\");
                    $i++;
                }
            }
            echo \"<center>\"._WEHAVE.\" <b>$numrows</b> \"._MREGISTERED.\" <b>$member_online_num</b>\\n\";
            echo \" \"._MREGONLINE.\"</center><br><br>\";
        OpenTable2();
            echo \"<CENTER>$who_online</CENTER>\\n\";
        CloseTable2();
        echo \"<br><br>\";
        } else {
            echo \"<center>\"._WEHAVE.\" <b>$numrows</b> \"._REGSOFAR.\"</center>\\n<br>\\n<br>\\n\";
        }

        alpha();
        SortLinks($letter);

/* end of top memberlist section thingie */
/* This starts the beef...*/

        $min = $pagesize * ($page - 1); // This is where we start our record set from
        $max = $pagesize; // This is how many rows to select
       
        /* All my SQL stuff. DO NOT ALTER ANYTHING UNLESS YOU KNOW WHAT YOU ARE DOING */
        $count = \"SELECT COUNT(uid) AS total FROM $prefix\"._users.\" \"; // Count all the users in the db..
        $select = \"select uid, name, uname, femail, url from $prefix\"._users.\" \"; //select our data
    $where = \"where uname != \'Anonymous\' \";
    if ( ( $letter != \"Other\" ) AND ( $letter != \"All\" ) ) {  // are we listing all or \"other\" ?
            $where .= \"AND uname like \'\".$letter.\"%\' \"; // I guess we are not..
        } else if ( ( $letter == \"Other\" ) AND ( $letter != \"All\" ) ) { // But other is numbers ?
            $where .= \"AND uname REGEXP \\\"^\\[1-9]\\\" \"; // REGEX :D, although i think its MySQL only
                                                        // Will have to change this later.
                                                        // if you know a better way to match only the first char
                                                        // to be a number in uname, please change it and email
                                                        // myphportal-developers@lists.sourceforge.net the correction
                                                        // or goto http://sourceforge.net/projects/myphportal and post
                                                        // your correction there. Thanks, Bjorn.
        } else { // or we are unknown or all..
            $where .= \"\"; // this is to get rid of anoying \"undefinied variable\" message
        }
        $sort = \"order by $sortby\"; //sorty by .....
        $limit = \" ASC LIMIT \".$min.\", \".$max; // we only want rows $min  to $max
        /* due to how this works, i need the total number of users per
        letter group, then we can hack of the ones we want to view */
        $count_result = mysql_query($count.$where);
        $num_rows_per_order = mysql_result($count_result,0,0);
       
        /* This is where we get our limit\'d result set. */
        $result = mysql_query($select.$where.$sort.$limit) or die(mysql_error() ); // Now lets do it !!
        echo \"<br>\";
        if ( $letter != \"front\" ) {
            echo \"<table width=\\\"100%\\\" border=\\\"0\\\" cellspacing=\\\"1\\\"><tr>\\n\";
            echo \"<td BGCOLOR=\\\"$bgcolor4\\\" align=\\\"center\\\"><font color=\\\"$textcolor2\\\"><b>\"._NICKNAME.\"</b></font></td>\\n\";
            echo \"<td BGCOLOR=\\\"$bgcolor4\\\" align=\\\"center\\\"><font color=\\\"$textcolor2\\\"><b>\"._REALNAME.\"</b></font></td>\\n\";
            echo \"<td BGCOLOR=\\\"$bgcolor4\\\" align=\\\"center\\\"><font color=\\\"$textcolor2\\\"><b>\"._EMAIL.\"</b></font></td>\\n\";
            echo \"<td BGCOLOR=\\\"$bgcolor4\\\" align=\\\"center\\\"><font color=\\\"$textcolor2\\\"><b>\"._URL.\"</b></font></td>\\n\";
            $cols = 4;
            if(is_admin($admin)) {
                $cols = 5;
                echo \"<td BGCOLOR=\\\"$bgcolor4\\\" align=\\\"center\\\"><font color=\\\"$textcolor2\\\"><b>\"._FUNCTIONS.\"</b></font></td>\\n\";
            }
            echo \"</tr>\";
            $a = 0;
            $dcolor_A = \"$bgcolor2\";
            $dcolor_B = \"$bgcolor1\";


            $num_users = mysql_num_rows($result); //number of users per sorted and limit query
            if ( $num_rows_per_order > 0  ) {
                while($user = mysql_fetch_array($result) ) {
                    $dcolor = ($a == 0 ? $dcolor_A : $dcolor_B);
                    echo \"<tr><td bgcolor=\\\"$dcolor\\\"><A HREF=\\\"user.php?op=userinfo&amp;uname=$user[uname]\\\"><font color=\\\"$textcolor1\\\">$user[uname]</font></a>&nbsp;</td>\\n\";
                    echo \"<td bgcolor=\\\"$dcolor\\\"><font color=\\\"$textcolor1\\\">$user[name]</font>&nbsp;</td>\\n\";
                    echo \"<td bgcolor=\\\"$dcolor\\\"><font color=\\\"$textcolor1\\\">$user[femail]</font>&nbsp;</td>\\n\";
                    if ($user[url] == \"\") {
            $url2 = \"&nbsp;\";
            } else {
            $urlno = eregi_replace(\"http://\",\"\",$user[url]);
            $url2 = \"<a href=\\\"http://$urlno\\\" target=\\\"new\\\">\"._HOMEPAGE.\"</a>\";
            }
            echo \"<td bgcolor=\\\"$dcolor\\\" align=\\\"center\\\">$url2</td>\\n\";
                    if(is_admin($admin)) {
                        echo \"<td bgcolor=$dcolor align=center><font class=\\\"content\\\" color=\\\"$textcolor1\\\">[ <A HREF=\\\"admin.php?chng_uid=$user[uid]&amp;op=modifyUser\\\">\"._EDIT.\"</a> | \\n\";
                        echo \"<A HREF=\\\"admin.php?op=delUser&amp;chng_uid=$user[uid]\\\">\"._DELETE.\"</a> ]</font></td>\\n\";
                    }
                    echo \"</tr>\";
                    $a = ($dcolor == $dcolor_A ? 1 : 0);
                }
                // start of next/prev/row links.
                echo \"\\n<tr><td colspan=\'$cols\' align=\'right\'>\\n\";
        echo \"<br><br>\";
        OpenTable();
                echo \"\\t<table width=\'100%\' cellspacing=\'0\' cellpadding=\'0\' border=0><tr>\";
               
                if ( $num_rows_per_order > $pagesize ) {
                    $total_pages = ceil($num_rows_per_order / $pagesize); // How many pages are we dealing with here ??
                    $prev_page = $page - 1;
                   
                    if ( $prev_page > 0 ) {
                        echo \"<td align=\'left\' width=\'15%\'><a href=\'modules.php?op=modload&amp;name=Members_List&file=index&letter=$letter&amp;sortby=$sortby&amp;page=$prev_page\'>\";
                        echo \"<img src=\\\"images/download/left.gif\\\" border=\\\"0\\\" Alt=\\\"\"._PREVIOUS.\" ($prev_page)\\\"></a></td>\";
                    } else {
                        echo \"<td width=\'15%\'>&nbsp;</td>\\n\";
                    }
               
                    echo \"<td align=\'center\' width=\'70%\'>\";
                    echo \"<font class=tiny>$num_rows_per_order \"._USERSFOUND.\" <b>$letter</b> ($total_pages \"._PAGES.\", $num_users \"._USERSSHOWN.\")</font>\";
                    echo \"</td>\";

                    $next_page = $page + 1;
                    if ( $next_page <= $total_pages ) {
                        echo \"<td align=\'right\' width=\'15%\'><a href=\'modules.php?op=modload&amp;name=Members_List&file=index&letter=$letter&amp;sortby=$sortby&amp;page=$next_page\'>\";
                        echo \"<img src=\\\"images/download/right.gif\\\" border=\\\"0\\\" Alt=\\\"Next Page ($next_page)\\\"></a></td>\";
                    } else {
                        echo \"<td width=\'15%\'>&nbsp;</td></tr>\\n\";
                    }
    /* Added a numbered page list, only shows up to 50 pages. */
                   
                        echo \"<tr><td colspan=\\\"3\\\" align=\\\"center\\\">\";
                        echo \" <font class=tiny>[ </font>\";
                       
                        for($n=1; $n < $total_pages; $n++) {
                       
                           
                            if ($n == $page) {
                echo \"<font class=tiny><b>$n</b></font></a>\";
                            } else {
                echo \"<a href=\'modules.php?op=modload&amp;name=Members_List&file=index&letter=$letter&amp;sortby=$sortby&amp;page=$n\'>\";
                echo \"<font class=tiny>$n</font></a>\";
                }
                            if($n >= 50) {  // if more than 50 pages are required, break it at 50.
                                $break = true;
                                break;
                            } else {  // guess not.
                                echo \"<font class=tiny> | </font>\";
                            }
                        }
                       
                        if(!isset($break)) { // are we sopposed to break ?
                if ($n == $page) {
                            echo \"<font class=tiny><b>$n</b></font></a>\";
                } else {
                            echo \"<a href=\'modules.php?op=modload&amp;name=Members_List&file=index&letter=$letter&amp;sortby=$sortby&amp;page=$total_pages\'>\";
                            echo \"<font class=tiny>$n</font></a>\";
                }
                        }
                        echo \" <font class=tiny>]</font> \";
                        echo \"</td></tr>\";

    /* This is where it ends */
                }else{  // or we dont have any users..
                    echo \"<td align=\'center\'>\";
                    echo \"<font class=tiny>$num_rows_per_order \"._USERSFOUND.\" $letter</font>\";
                    echo \"</td></tr>\";
                   
                }
               
                echo \"</table>\\n\";
        CloseTable();
                echo \"</td></tr>\\n\";

                // end of next/prev/row links
               
            } else { // you have no members on this letter, hahaha
                echo \"<tr><td bgcolor=\\\"$dcolor_A\\\" colspan=\\\"$cols\\\" align=\\\"center\\\"><br>\\n\";
                echo \"<b><font color=\\\"$textcolor1\\\">\"._NOMEMBERS.\" $letter</font></b>\\n\";
                echo \"<br></td></tr>\\n\";
            }
           
            echo \"\\n</table><br>\\n\";
        }
       
    CloseTable();
        include(\"footer.php\");

?>
Avatar billede wizprod.com Nybegynder
12. november 2001 - 15:09 #4
FORFAEN, vi har jo ikke en jordisk chance med den kode! Hvornår lærer folk at lade med at poste HELE deres kode på E.!!!
Avatar billede wizprod.com Nybegynder
12. november 2001 - 15:10 #5
Og æhhhm hvorfor laver du det ikke selv?
Avatar billede goamind Nybegynder
12. november 2001 - 15:10 #6
Jeg mener selvfølgelig fra filen index.php

-Carsten
Avatar billede goamind Nybegynder
12. november 2001 - 15:15 #7
Sorry, men jeg er ikke super programmører som jer herinde, og undskyld hvis jeg har overtrådt \"post\" loven, men jeg mente det var svært at plukke nøjagtig fejlen ud af koden, hvis jeg ikke kender fejlen deri.

Desuden er jeg ikke hverdagsbruger a Eksperten, så jeg kender ikke så meget til reglerne herinde...

-Carsen
Avatar billede brian_lundgaard Nybegynder
12. november 2001 - 16:36 #8
Jeg tror (men vil ikke hænges op på det) at fejlen ligger i, at du har oversat dele af koden til dansk! I det følgende:

function alpha() {
    /* Creates the list of letters and makes them a link. */
    global $sortby;
  $alphabet = array (\"All\", \"A\",\"B\",\"C\",\"D\",\"E\",\"F\",\"G\",\"H\",\"I\",\"J\",\"K\",\"L\",\"M\",\"N\",\"O\",\"P\",\"Q\",\"R\",\"S\",\"T\",\"U\",\"V\",\"W\",\"X\",\"Y\",\"Z\",\"Other\");

som er taget fra starten af den fil du pastede, står der \"All\" og \"Other\" på engelsk, mens det i din søgeliste står på dansk. Du kan i listen ovenfor sandsynligvis blot rette \"All\" til \"Alle\" (med stort A!) og \"Other\" til \"andre\" (med lille a!).

Jeg har netop tjekket! Denne linie giver liste over alle brugere på dit site:
http://www.planeswalker.dk/modules.php?op=modload&name=Medlems_liste&file=index&letter=All&sortby=uname
Avatar billede goamind Nybegynder
12. november 2001 - 18:17 #9
Brian!! Det var jo helt perfekt. 100 point stryger til dig!! En ganske lille fejl jeg ikke selv har ryddet op i og simpelthen overset.. og ja - jeg har oversat dele af koden ;)

Mange tak for dit vågne øje..

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