Forum » Server-Side scripting » Leden lijst
Berichten: 284
avatar
Offline Stuur privebericht
Beste cpers,

Bij mijn ledenlijst zit een bug.
Als iemand op een aantal power komt van:
9.223.381.903.771.219.968 power,

gaat hij terug naar de laatste plaats.
Ik vraag me af hoe ik dit moet oplossen.

Hier het script

Code | Selecteer Alles
minimaliseren
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
<?php
/**
 *
 * @category    System 
 * @package        Criminals game
 * @author        Nick Petyt <nick@straatbaas.nl> 
 * @copyright    2010 
 * @version        1.0
 * @name        leden-lijst.php
 */

 
if ( !@include("./inc/config.inc.php") )
 {    
     
trigger_error('Kan niet verbinden met Configuratie: Contacteer een admin / Please contact a admin!'); 
 }
 
 
logincheck(); //TODO: Kijkt of gebruiker wel is ingelogd.
 
 
mysql_query("UPDATE `[users]` SET `online`=NOW(),`pagina`='Leden Lijst' WHERE `login`='".$data->login."'");

?>

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title>Criminal Investigative</title>
    <link href="../css-v1.css" rel="stylesheet" type="text/css" />
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <meta name="description" content="" />
    <meta name="copyright" http-equiv="copyright" content="Nick Petyt (Straatbaas.nl)" />
    <meta name="keywords" content="'','','','','','','',''" />
    
        <script type="text/javascript">
    function createRequestObject() 
    {
        var req;
        if(window.XMLHttpRequest)
        {
            req = new XMLHttpRequest();
        } 
        else 
        if(window.ActiveXObject) 
        {
            req = new ActiveXObject("Microsoft.XMLHTTP");
        } 
        else 
        {
            alert('Problem creating the XMLHttpRequest object');
        }
        
        return req;
    }
    
    var http = createRequestObject();
    
    function getPhp() 
    {
        http.open('post','leden-lijst.php',true);
        http.onreadystatechange = getPhpResponse;
        http.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
        http.send(null);
    }
    
    function getPhpResponse() 
    {
        if(http.readyState == 1) 
        {
            document.getElementById('resultatenDiv').innerHTML = 'loading';
        }
        else 
        if(http.readyState == 4 && http.status == 200) 
        {
            document.getElementById('resultatenDiv').innerHTML = http.responseText;
        }
    }
    
    setTimeout(function () {
    getPhp();
    },20000);
    </script>
    
</head>
<body>

<table width="100%" align="Center" cellspacing="1" cellpadding="1">
<tbody>
<tr>
    <td width="5%" class="subTitle">&nbsp;</td>
    <td width="5%" class="subTitle">&nbsp;</td>
    <td width="25%" class="subTitle">Gebruiker</td>
    <td width="20%" class="subTitle">Clan</td>
    <td width="20%" class="subTitle">Contant</td>
    <td width="25%" class="subTitle">Power</td>
    <td width="25%" class="subTitle">Attack</td>
</tr>

<?php
 
if ($_GET['p'] >= 1
 {
     
$start = ($_GET['p'] - 1) * 25;
 } 
 else 
 {
     
$start 0;
 }

 
 
$Query mysql_query("SELECT `id`,`login`,UNIX_TIMESTAMP(`signup`) AS `signup`,`attack`,`defence`,`gebeldmvip`,`hulpadmin`,`cash`,`superdagen`,`level`,`clan`,`vipdagen` FROM `[users]` ORDER BY (`attack`+`defence`) DESC,`login` ASC LIMIT $start,25");
 
 if(
mysql_num_rows($Query) == '0'
 {
     die(
'<tr><td class="maintxt" colspan="6"><font color="#FF0000"><i>Er zijn leden beschikbaar in deze lijst !</i></font></td></tr>');
 }
 
 for(
$id $start +1$info mysql_fetch_assoc($Query); $id++)
 {
     
//TODO: Eerste 3 krijgen kleuren Beker.
     
if($id == '1')
     {
         
$i "<img src='images/layout/trophy.png' alt='".$id."'>";
     }
     else
      if(
$id == '2')
     {
         
$i "<img src='images/layout/trophy-silver.png' alt='".$id."'>";
     }
     else
     if(
$id == '3')
     {
         
$i "<img src='images/layout/trophy-bronze.png' alt='".$id."'>";
     }
     else
     {
         
$i number_format($id,0,",",".");
     }

    
$power number_format(round(($info['attack'] + $info['defence'])),0,",",".");
    
$geld  number_format(round($info['cash']),0,",",".");
    
$clan  = (empty($info['clan'])) ? "<b>Geen</b>" " <a href='clan/clanprofiel.php?x=".$info['clan']."'>".$info['clan']."</a>";
    
    echo(
'
    <tr>
        <td class="mainTxt" width="5%" align="center">'
.$i.'</td>
        <td class="mainTxt" width="5%" align="center">'
.online($info['id']).'</td>
        <td class="mainTxt" width="25%"><a href="profile.php?x='
.$info['login'].'">'.check_user($info['id']).'</a> '.check_mega($info['id']).'</td>
        <td class="mainTxt" width="25%">'
.$clan.'</td>
        <td class="mainTxt" width="20%">&euro; '
.$geld.',-</td>
        <td class="mainTxt" width="25%">'
.$power.'</td>
        <td class="mainTxt" width="25%"><a href="attack.php?x='
.$info['login'].'">Attack</td>
    </tr>
    '
);
     

 }
 
 
//TODO: Paginas Berekenen
 
$Users   mysql_query("SELECT `id` FROM `[users]`");
 
$Paginas ceil(mysql_num_rows($Users) / 25);
 
 if(empty(
$_GET['p'])) 
 {
     
$_GET['p'] = 1;
 }
 
 echo(
'<tr><td class="maintxt2" colspan="7"><b><i>Status:</i></b> <font color="red"><b>Administrator</b></font> - 
                                                                 <font color="orange"><b>Moderator</b></font> - <font color="purple"><b>Mede Scripter</b></font> -
                                                                 <font color="yellow"><b>Vip Lid</b></font> -
                                                                 <font color="blue"><b>Super Member</b></font> -
                                                                 <b>Mega Member</b> <img src="images/layout/star-small.png" />
 </td></tr>'
);
 
 echo(
'<tr><td class="maintxt" colspan="7"> <b><i>Navigatie:</i></b>');
 
 for (
$i=1;$i<=$Paginas;$i++) 
 {
     if (
$_GET['p'] == $i
    {
         echo 
' <font color="lime"><b>' $i '</b></font>';
    }
    else 
    {
         echo 
' <a href="?p=' $i '">' $i '</a>';
    }
 }
 
 echo(
'</td></tr>');
?>

</tbody>
</table>

</body>
</html>


Hoopelijk kunnen jullie me heirbij helpen.

Met vriendelijke groeten,
Kevin
06-01-2011 21:04
Dit topic is 393 keer bekeken door 53 verschillende leden
Reacties op: "Leden lijst"
1 | 2 Volgende pagina
Hardstyle
Berichten: 225
avatar
Offline Stuur privébericht
Code | Selecteer Alles
minimaliseren
1
$Query mysql_query("SELECT `id`,`login`,UNIX_TIMESTAMP(`signup`) AS `signup`,`attack`,`defence`,`gebeldmvip`,`hulpadmin`,`cash`,`superdagen`,`level`,`clan`,`vipdagen` FROM `[users]` ORDER BY (`attack`+`defence`) DESC,`login` ASC LIMIT $start,25");


Je ziet daar helemaal achteraan 'DESC' staan, verander die naar ASC.

off:
Waarom heb jij scripts van nick?
06-01-2011 21:09
Skype & Microsoft
Berichten: 3096
avatar
Offline Stuur privébericht
@ Jackie,

Nick heeft zover ik weet het spel ontwikkeld.
06-01-2011 21:10
Hardstyle
Berichten: 225
avatar
Offline Stuur privébericht
Ik weet wie nick is, Ik weet wat hij heeft gemaakt.

Ik stel hem een vraag, en zou graag het antwoord willen.
Wat jij bent nick niet lijkt me?

EDIT:

Als je wilt kijken of je config bestaat doe het dan zo:

Code | Selecteer Alles
minimaliseren
1
2
3
4
5
6
7
8
9
10
11
12
13
try {
    if(!
file_exists("inc/config.php"))
    {
        throw new 
Exception("De config is niet gevonden.");
    }
    else
    {
        include(
"inc/config.php");
    }
}
catch(
Exception $e) {
    echo 
$e->getMessage();
}
06-01-2011 21:13
Berichten: 284
avatar
Offline Stuur privébericht
Ik heb 'DESK' verandert in 'ASK' maar nu komt hij wel bovenaan maar de rest staat met 0 power onder hem.


kevin
06-01-2011 21:24
Rapifia Europe
Berichten: 3716
avatar
Offline Stuur privébericht
@Kevin,
Hopelijk bedoel je "DESC" & "ASC"?

Dan moet je ORDER BY gebruiken.
Dus bijvoorbeeld ORDER BY power en dan DESC (aflopend) of ASC (oplopend).
06-01-2011 21:26
Berichten: 284
avatar
Offline Stuur privébericht
Code | Selecteer Alles
minimaliseren
1
$Query mysql_query("SELECT `id`,`login`,UNIX_TIMESTAMP(`signup`) AS `signup`,`attack`,`defence`,`gebeldmvip`,`hulpadmin`,`cash`,`superdagen`,`level`,`clan`,`vipdagen` FROM `[users]` ORDER BY (`attack`+`defence`) DESC,`login` ASC LIMIT $start,25");


deze DESK moest ik veranderen in ASK maar dan krijg ik dat die persoon die laatste stond met hoog aantal power nu wel 1e staat maar de rest is 0 power.

met vriendelijke groeten,
Kevin
06-01-2011 21:37
Rapifia Europe
Berichten: 3716
avatar
Offline Stuur privébericht
Even snel unbugged:
Code | Selecteer Alles
minimaliseren
1
$Query mysql_query("SELECT id, login, UNIX_TIMESTAMP(signup) AS signup, attack, defence, gebeldmvip, hulpadmin, cash, superdagen, level, clan, vipdagen FROM [users] ORDER BY (attack+defence) DESC LIMIT $start, 25");


Hopelijk werkt ie
06-01-2011 21:46
Berichten: 284
avatar
Offline Stuur privébericht
Ik krijg nu deze fout;

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /home/kbrinkman/domains/criminalinvestigative.nl/public_html/leden-lijst1.php on line 109

en dit is het stukje script wat fout is:

Code | Selecteer Alles
minimaliseren
1
2
3
4
5
6
$Query mysql_query("SELECT id, login, UNIX_TIMESTAMP(signup) AS signup, attack, defence, gebeldmvip, hulpadmin, cash, superdagen, level, clan, vipdagen FROM [users] ORDER BY (attack+defence) DESC LIMIT $start, 25");

 if(
mysql_num_rows($Query) == '0'
 {
     die(
'<tr><td class="maintxt" colspan="6"><font color="#FF0000"><i>Er zijn leden beschikbaar in deze lijst !</i></font></td></tr>');
 }
06-01-2011 21:54
Berichten: 2123
avatar
Offline Stuur privébericht
Dit komt doordat 9.223.381.903.771.219.968 de maximale waarde is van een signed integer van 64 bit lang. Dit is dus de maximale waarde van een SIGNED BIGINT in een (MySQL) database. Je kunt deze waarde nog verdubbelen door van je velden UNSIGNED BIGINT's te maken, hierdoor wordt de maximale waarde 18446744073709551616 (2^64).
06-01-2011 21:56
What else?
Berichten: 1180
avatar
Online Stuur privébericht
Vind het knap dat jij van 3 selectie's zoveel namen kan geven achter de AS, kijk daar is naar
06-01-2011 21:58
Reageer op: "Leden lijst"
1 | 2 Volgende pagina
Je kan niet reageren omdat je niet bent ingelogd. Inloggen of Aanmelden