Gummipunkte

Begonnen von Atze, 16 April 2003, 01:17:50

⏪ vorheriges - nächstes ⏩

0 Mitglieder und 1 Gast betrachten dieses Thema.

Atze

Hallo,
habe folgendes Problem:
Ich habe ein Punktesystem von netz-id.de und jetzt möchte ich das die Aufgeliste Punkteliste in mehrere Seiten zu sehen ist, die man durchblättern kann.
so schaut es jetzt aus, hier der Link  http://www.partyblick.de/modules.php?name=gpoints

Es sollte so sein, wie beim Spezial-Bereich bei phpnuke zum durchblättern.

Hier der Code von der php Seite:

 
<?php



/************************************************************************/

/* PHP-NUKE: Gummipunkte System                                         */

/* ===========================                                          */

/*                                                                      */

/* Gives your User Points for there work                                */

/*                                                                      */

/* Copyright (c) 2002 by Sebastian Maier (sebastian.m@ier.info)         */

/* http://www.m@ier.info                                                */

/*                                                                                                         */

/* This program is free software. You can redistribute it and/or modify */

/* it under the terms of the GNU General Public License as published by */

/* the Free Software Foundation; either version 2 of the License.       */

/************************************************************************/





if (!eregi("modules.php", $PHP_SELF)) {

   die ("You can't access this file directly...");

}



require_once("mainfile.php");



include("header.php");



require_once("includes/gp.func.php");

$module_name = basename(dirname(__FILE__));

get_lang($module_name);



$index="1";



global $cat, $prefix, $dbi, $user_prefix;



   $result = sql_query("select * from $prefix"._gummipunkte." WHERE active='0' ORDER by punkte DESC", $dbi);

   $numrows = sql_num_rows($result);

      if ($numrows == 0) {

      }

   else {

      $i=1;

      $dividid = round($numrows/2);

            

      while(list($uname,$punkte) = sql_fetch_row($result, $dbi)) {

            $result2 = sql_query("select user_regdate from $user_prefix"._users." where uname='$uname'", $dbi);

            list($uregdate) = sql_fetch_row($result2, $dbi);

            $name = $uname;

            if($i <= $dividid) {

            $list[0] .="<b>$i.</b>  <a href=\"modules.php?name=Your_Account&op=userinfo&uname=".$name."\">$name</a>, <b>$punkte Punkte</b> <br>"._registered." $uregdate<br>";

            }

            else {

            $list[1] .="<b>$i.</b>  <a href=\"modules.php?name=Your_Account&op=userinfo&uname=".$name."\">$name</a>, <b>$punkte Punkte</b> <br>"._registered." $uregdate<br>";

            }

            $i++;

         

      }

      }



opentable();

   print( "<b><center>"._gpovheadline."</center></b>" );

   closetable();

   print( "<br><br>" );

   opentable();

   print( "<table width=\"80%\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\" align=\"center\">\n" );

  print( "  <tr>\n" );

  print( "    <td valign=\"top\">$list[0]</td>\n" );

  print( "    <td valign=\"top\">$list[1]</td>\n" );

  print( "  </tr>\n" );

  print( "</table>" );

   closetable();

   

   

   echo "<br><br><table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%\" align=\"left\"><tr><td colspan=\"2\"><table border=\"0\" cellpadding=\"3\" cellspacing=\"0\" width=\"100%\"><tr><td align=\"center\" valign=\"bottom\" height=\"35\" width=\"100%\"><font class=\"option\" color=\"#363636\"><b>$title2</b></font></td></tr></table></td></tr><tr><td width=\"15\" height=\"23\"> </td><td width=\"100%\" height=\"23\"><font class=\"content\">$content2</font><br><br></tr></table>";



include("footer.php");

?>  


Vielleicht könnt Ihr mir ja helfen??
Wäre spitze.
Fahr mal das Becks hoch!

BowlingX

Joar...ist relativ einfach...
Du musst ein LIMIT Setzen!

//ANFANG
if(empty($limit))
{
  $limit=0; // wenn $limit noch nicht gesetzt wurde auf Null setzen!
}

$result2 = sql_query("select user_regdate from $user_prefix"._users." where uname='$uname' LIMIT $limit,5", $dbi); // So zeigt er 5 User an
// Jetzt der Rest:

list($uregdate) = sql_fetch_row($result2, $dbi);

$name = $uname;

if($i <= $dividid) {

$list[0] .="<b>$i.</b> <a href=\"modules.php?name=Your_Account&op=userinfo&uname=".$name."\">$name </a>, <b>$punkte Punkte</b> "._registered." $uregdate";

}

else {

$list[1] .="<b>$i.</b> <a href=\"modules.php?name=Your_Account&op=userinfo&uname=".$name."\">$name </a>, <b>$punkte Punkte</b> "._registered." $uregdate";
}
$limit=$limit+5; //Limit wird um 5 erhöht
echo "<a href='modules.php?name=gpoints&limit=$limit'>Weitere User anzeigen</a>";
//ENDE

Erklärung:
Also:
LIMIT $limit,5
Die 5 bedeutet, das 5 Datensätze ausgelesen werden
das $limit bedeutet wo er anfangen muss
Ruft der User die Seite das erste mal aus wird von 0-5 ausgelesen...
Klickt der User auf den Link wird von 5-10 ausgelsen usw...


[Editiert am 15/4/2003 von BowlingX]
Kein Support über Mail, (ungefragter) PN oder ICQ, ausschließlich direkt im Forum!

Atze

Das hört sich super an, genau so brauch ich es.
Aber wo setzt ich das genau in meinem Code ein??

Gruß
Fahr mal das Becks hoch!

BowlingX

Sollte gehen, habs aber nicht probiert!
  if (!eregi("modules.php", $PHP_SELF)) {

die ("You can't access this file directly...");

}



require_once("mainfile.php");



include("header.php");



require_once("includes/gp.func.php");

$module_name = basename(dirname(__FILE__));

get_lang($module_name);



$index="1";



global $cat, $prefix, $dbi, $user_prefix;



$result = sql_query("select * from $prefix"._gummipunkte." WHERE active='0' ORDER by punkte DESC", $dbi);

$numrows = sql_num_rows($result);

if ($numrows == 0) {

}

else {

$i=1;

$dividid = round($numrows/2);



while(list($uname,$punkte) = sql_fetch_row($result, $dbi)) {
if(empty($limit))
{
$limit=0; // wenn $limit noch nicht gesetzt wurde auf Null setzen!
}

$result2 = sql_query("select user_regdate from $user_prefix"._users." where uname='$uname' LIMIT $limit,5", $dbi); // So zeigt er 5 User an
// Jetzt der Rest:

list($uregdate) = sql_fetch_row($result2, $dbi);

$name = $uname;

if($i <= $dividid) {

$list[0] .="<b>$i.</b> <a href=\"modules.php?name=Your_Account&op=userinfo&uname=".$name."\">$name </a>, <b>$punkte Punkte</b> "._registered." $uregdate";

}

else {

$list[1] .="<b>$i.</b> <a href=\"modules.php?name=Your_Account&op=userinfo&uname=".$name."\">$name </a>, <b>$punkte Punkte</b> "._registered." $uregdate";
}
$limit=$limit+5; //Limit wird um 5 erhöht
echo "<a href='modules.php?name=gpoints&limit=$limit'>Weitere User anzeigen</a>";

$i++;



}

}



opentable();

print( "<b><center>"._gpovheadline."</center></b>" );

closetable();

print( "<br><br>" );

opentable();

print( "<table width=\"80%\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\" align=\"center\">\n" );

print( " <tr>\n" );

print( " <td valign=\"top\">$list[0]</td>\n" );

print( " <td valign=\"top\">$list[1]</td>\n" );

print( " </tr>\n" );

print( "</table>" );

closetable();





echo "<br><br><table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%\" align=\"left\"><tr><td colspan=\"2\"><table border=\"0\" cellpadding=\"3\" cellspacing=\"0\" width=\"100%\"><tr><td align=\"center\" valign=\"bottom\" height=\"35\" width=\"100%\"><font class=\"option\" color=\"#363636\"><b>$title2</b></font></td>< /tr></table></td></tr><tr><td width=\"15\" height=\"23\"> </td><td width=\"100%\" height=\"23\"><font class=\"content\">$content2</font><br><br></tr>& lt;/table>";



include("footer.php");

Kein Support über Mail, (ungefragter) PN oder ICQ, ausschließlich direkt im Forum!

Atze

Also zwischenrein! Aha, aber geht leider immer noch nicht,
es kommt eine weiße Seite beim Anklicken des Links, wenn ich den Code reinkopiert habe. Bestimmt nur ein kleiner Fehler, aber welcher :quest

Danke aber an dich Bowling X!!!
Wenn es keine Umstände macht, vielleicht könntest dir den Code nochmal ankucken :redhead:

Gruß ATze
Fahr mal das Becks hoch!

BowlingX

Öhm...was zeigt er denn in der Linkleiste an?


[Editiert am 16/4/2003 von BowlingX]
Kein Support über Mail, (ungefragter) PN oder ICQ, ausschließlich direkt im Forum!

Atze

Er sagt: http://www.partyblick.de/modules.php?name=gpoints wird geöffnet, findet aber nichts... Kannst ja mal kucken, der obere Link dürft dich zum Problem füheren...
Fahr mal das Becks hoch!

BowlingX

Oh...mein Fehler! Ich hab die erste while schleife übersehen *gg*

Probiers mal so:

<?
if
(!eregi("modules.php", $PHP_SELF)) {
die ("You can't access this file directly...");
}
require_once("mainfile.php");
include("header.php");
require_once("includes/gp.func.php");
$module_name = basename(dirname(__FILE__));
get_lang($module_name);
$index="1";
global $cat, $prefix, $dbi, $user_prefix;
# Start
if(empty($limit))
{
$limit=0; // wenn $limit noch nicht gesetzt wurde auf Null setzen!
}
# Erster Querry
$result = sql_query("select * from $prefix"._gummipunkte." WHERE active='0'
ORDER by punkte DESC LIMIT $limit,5", $dbi);
$numrows = sql_num_rows($result);
if ($numrows == 0) {
}
else {
$i=1;
$dividid = round($numrows/2);
while(list($uname,$punkte) = sql_fetch_row($result, $dbi)) {


$result2 = sql_query("select user_regdate from $user_prefix"._users." where
uname='$uname' LIMIT $limit,5", $dbi); // So zeigt er 5 User an
// Jetzt der Rest:
list($uregdate) = sql_fetch_row($result2, $dbi);
$name = $uname;
if($i <= $dividid) {
$list[0] .="<b>$i.</b> <a
href=\"modules.php?name=Your_Account&op=userinfo&uname=".$name."\">$name
</a>, <b>$punkte Punkte</b> "._registered."
$uregdate";
}
else {
$list[1] .="<b>$i.</b> <a
href=\"modules.php?name=Your_Account&op=userinfo&uname=".$name."\">$name
</a>, <b>$punkte Punkte</b> "._registered."
$uregdate";
}
$i++;
}
}
opentable();
print( "<b><center>"._gpovheadline."</center></b>"
);
closetable();
print( "<br><br>" );
opentable();
print( "<table width=\"80%\" border=\"0\" cellspacing=\"0\"
cellpadding=\"0\" align=\"center\">\n" );
print( " <tr>\n" );
print( " <td valign=\"top\">$list[0]</td>\n" );
print( " <td valign=\"top\">$list[1]</td>\n" );
print( " </tr>\n" );
print( "</table>" );
$limit=$limit+5; //Limit wird um 5 erhöht
echo "<a href='modules.php?name=gpoints&limit=$limit'>Weitere User
anzeigen</a>";
closetable();





echo "<br><br><table border=\"0\" cellpadding=\"0\"
cellspacing=\"0\" width=\"100%\" align=\"left\"><tr><td
colspan=\"2\"><table border=\"0\" cellpadding=\"3\" cellspacing=\"0\"
width=\"100%\"><tr><td align=\"center\" valign=\"bottom\"
height=\"35\" width=\"100%\"><font class=\"option\"
color=\"#363636\"><b>$title2</b></font></td><
/tr></table></td></tr><tr><td width=\"15\"
height=\"23\"> </td><td width=\"100%\"
height=\"23\"><font
class=\"content\">$content2</font><br><br></tr>&
lt;/table>";



include("footer.php");
?>
Kein Support über Mail, (ungefragter) PN oder ICQ, ausschließlich direkt im Forum!

Atze

Jetzt geht es zumindest wieder den LInk aufzurufen!!
Aber kuck mal jetzt.... Ist nur noch ein schönheitsfehler ;)
Der Link der nächsten User geht auch...
aber da steht dann immer wieder die 1, 2, 3, etc dran..

Könntest du nochmal  :redhead:

Danke Gruß

Fahr mal das Becks hoch!

BowlingX

Öhm...hm
Das ist jetzt etwas aufwendiger...ohne weiteres geht das nicht!
Schau mal ob in der MySQL Datenbank in dieser Tabelle die Spalte id existiert, und ob diese automatisch hochgezählt wird!
Kein Support über Mail, (ungefragter) PN oder ICQ, ausschließlich direkt im Forum!

jubilee

Hallo !
Versuch einmal eine 2. variable mitlaufen zu lassen :
 
Zitat<?
if
(!eregi("modules.php", $PHP_SELF)) {
die ("You can't access this file directly...");
}
require_once("mainfile.php");
include("header.php");
require_once("includes/gp.func.php");
$module_name = basename(dirname(__FILE__));
get_lang($module_name);
$index="1";
global $cat, $prefix, $dbi, $user_prefix;
# Start
if(empty($limit))
{
$limit=0; // wenn $limit noch nicht gesetzt wurde auf Null setzen!
$acount=1;
}
# Erster Querry
$result = sql_query("select * from $prefix"._gummipunkte." WHERE active='0'
ORDER by punkte DESC LIMIT $limit,5", $dbi);
$numrows = sql_num_rows($result);
if ($numrows == 0) {
}
else {
$i=1;
$dividid = round($numrows/2);
while(list($uname,$punkte) = sql_fetch_row($result, $dbi)) {


$result2 = sql_query("select user_regdate from $user_prefix"._users." where
uname='$uname' LIMIT $limit,5", $dbi); // So zeigt er 5 User an
// Jetzt der Rest:
list($uregdate) = sql_fetch_row($result2, $dbi);
$name = $uname;
if($i <= $dividid) {
$list[0] .="<b>$acount.</b> <a
href=\"modules.php?name=Your_Account&op=userinfo&uname=".$name."\">$name
</a>, <b>$punkte Punkte</b> "._registered."
$uregdate";
}
else {
$list[1] .="<b>$acount.</b> <a
href=\"modules.php?name=Your_Account&op=userinfo&uname=".$name."\">$name
</a>, <b>$punkte Punkte</b> "._registered."
$uregdate";
}
$i++;
$acount++;
}
}
opentable();
print( "<b><center>"._gpovheadline."</center></b>"
);
closetable();
print( "" );
opentable();
print( "<table width=\"80%\" border=\"0\" cellspacing=\"0\"
cellpadding=\"0\" align=\"center\">\n" );
print( " <tr>\n" );
print( " <td valign=\"top\">$list[0]</td>\n" );
print( " <td valign=\"top\">$list[1]</td>\n" );
print( " </tr>\n" );
print( "</table>" );
$limit=$limit+5; //Limit wird um 5 erhöht
echo "<a href='modules.php?name=gpoints&limit=$limit &acount=$acount'>Weitere User
anzeigen</a>";
closetable();





echo "<table border=\"0\" cellpadding=\"0\"
cellspacing=\"0\" width=\"100%\" align=\"left\"><tr><td
colspan=\"2\"><table border=\"0\" cellpadding=\"3\" cellspacing=\"0\"
width=\"100%\"><tr><td align=\"center\" valign=\"bottom\"
height=\"35\" width=\"100%\"><font class=\"option\"
color=\"#363636\"><b>$title2</b></font></td><
/tr></table></td></tr><tr><td width=\"15\"
height=\"23\"> </td><td width=\"100%\"
height=\"23\"><font
class=\"content\">$content2</font></tr></table>";

include("footer.php");
?>
MfG
jubilee
 
P.S. das </table> ganz am ende war ein kleiner Schönheitsfehler.
Sah im Original so aus : & lt;/table>"; Datt funzt nich  ;)
Die Variable $i wird eigentlich nur für die Anzeige und das saubere
Aufteilen in 2 Spalten gebraucht. Leider fängt (muss!)  die bei jedem Durchlauf neu an. Ergo packen wir da eine 2. Variable rein, die nach einem
Durchlauf nicht gelöscht sondern wieder neu übergeben wird.

[Editiert am 17/4/2003 von SiteAdmin jubilee]

[Editiert am 17/4/2003 von SiteAdmin jubilee]

BowlingX

LOL...wie dumm von mir...man sollte doch mal etwas früher ins Bett gehen *gg*
Kein Support über Mail, (ungefragter) PN oder ICQ, ausschließlich direkt im Forum!

Atze

Ihr seid spitze!!! Schaut es euch mal an!! Fast perfekt, müste nur noch die User untereinander stehen und das < /tr> ganz unten weg, dann ist Perfekt!!

Danke schon mal euch allen!!!
Fahr mal das Becks hoch!

jubilee

Hallo Atze !
Das hier :  
Zitatif($i <= $dividid) {
$list[0] .="<b>$acount.</b> <a
href=\"modules.php?name=Your_Account&op=userinfo&uname=".$name."\">$name
</a>, <b>$punkte Punkte</b> "._registered."
$uregdate";
}
else {
$list[1] .="<b>$acount.</b> <a
href=\"modules.php?name=Your_Account&op=userinfo&uname=".$name."\">$name
</a>, <b>$punkte Punkte</b> "._registered."
$uregdate";
}

bitte so abändern und ausprobieren :
 
Zitatif($i <= $dividid) {
$list[0] .="<tr><td><b>$acount.</b> <a
href=\"modules.php?name=Your_Account&op=userinfo&uname=".$name."\">$name
</a>, <b>$punkte Punkte</b> "._registered."
$uregdate</td></tr>";
}
else {
$list[1] .="<tr><td><b>$acount.</b> <a
href=\"modules.php?name=Your_Account&op=userinfo&uname=".$name."\">$name
</a>, <b>$punkte Punkte</b> "._registered."
$uregdate</td></tr>";
}
 
MfG
jubilee

[Editiert am 17/4/2003 von SiteAdmin jubilee]

Atze

Past schon, hast ja nochmal editiert! ;)
Kuck es dir jetzt mal an!!


A Traum!!!!!

[Editiert am 17/4/2003 von Atze]
Fahr mal das Becks hoch!

jubilee

Ey, so schnell bin ich nich ......
Schon nicht schlecht.
Für das < /tr> bitte hier editieren (ziemlich weit unten :
Zitatcolor=\"#363636\"><b>$title2</b></font></td> <
/tr>
</table></td></tr><tr><td width=\"15\"
Zitatcolor=\"#363636\"><b>$title2</b></font></td>
</tr>
</table></td></tr><tr><td width=\"15\"
Zeilenumbruch da wegmachen, dann sollte das auch weg sein.
MfG
jubilee


[Editiert am 17/4/2003 von SiteAdmin jubilee]

[Editiert am 17/4/2003 von SiteAdmin jubilee]

Atze

 :D Was soll ich sagen!? Abnormal!!!! Vielen Vielen Dank an dich und BowlingX!! Super gemacht!! So ist perfekt!!!! Genial!! Endlich muß man nicht 3 Minuten auf seine Punkteliste warten!! Und man hat weniger DB Abfragen!! Super!

Wo lernt man so was ;)

Danke, Ihr habt was gut!!

Gruß Atze
aus Augsburg
Fahr mal das Becks hoch!

BowlingX

Kein Support über Mail, (ungefragter) PN oder ICQ, ausschließlich direkt im Forum!