pragmaMx Support Forum

Archive => veraltete bzw. unsupportete Systeme und Module => Alt Archive => PHPNuke 5.2-6.0 & VKP 5.5 => Thema gestartet von: Atze am 16 April 2003, 01:17:50

Titel: Gummipunkte
Beitrag von: Atze am 16 April 2003, 01:17:50
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.
Titel: Re: Gummipunkte
Beitrag von: BowlingX am 16 April 2003, 01:34:52
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]
Titel: Re: Gummipunkte
Beitrag von: Atze am 16 April 2003, 11:36:39
Das hört sich super an, genau so brauch ich es.
Aber wo setzt ich das genau in meinem Code ein??

Gruß
Titel: Re: Gummipunkte
Beitrag von: BowlingX am 16 April 2003, 12:28:41
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");

Titel: Re: Gummipunkte
Beitrag von: Atze am 16 April 2003, 16:15:12
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
Titel: Re: Gummipunkte
Beitrag von: BowlingX am 16 April 2003, 17:10:58
Öhm...was zeigt er denn in der Linkleiste an?


[Editiert am 16/4/2003 von BowlingX]
Titel: Re: Gummipunkte
Beitrag von: Atze am 16 April 2003, 17:23:08
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...
Titel: Re: Gummipunkte
Beitrag von: BowlingX am 16 April 2003, 17:43:15
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");
?>
Titel: Re: Gummipunkte
Beitrag von: Atze am 16 April 2003, 19:53:18
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ß

Titel: Re: Gummipunkte
Beitrag von: BowlingX am 16 April 2003, 21:56:29
Ö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!
Titel: Re: Gummipunkte
Beitrag von: jubilee am 17 April 2003, 10:48:43
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]
Titel: Re: Gummipunkte
Beitrag von: BowlingX am 17 April 2003, 12:20:13
LOL...wie dumm von mir...man sollte doch mal etwas früher ins Bett gehen *gg*
Titel: Re: Gummipunkte
Beitrag von: Atze am 17 April 2003, 12:29:05
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!!!
Titel: Re: Gummipunkte
Beitrag von: jubilee am 17 April 2003, 12:44:03
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]
Titel: Re: Gummipunkte
Beitrag von: Atze am 17 April 2003, 12:48:26
Past schon, hast ja nochmal editiert! ;)
Kuck es dir jetzt mal an!!


A Traum!!!!!

[Editiert am 17/4/2003 von Atze]
Titel: Re: Gummipunkte
Beitrag von: jubilee am 17 April 2003, 12:58:01
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]
Titel: Re: Gummipunkte
Beitrag von: Atze am 17 April 2003, 13:07:54
 :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
Titel: Re: Gummipunkte
Beitrag von: BowlingX am 17 April 2003, 13:36:46
Das lernt man z.B hier:
http://tut.php-q.net/