Avatar billede julemandenb Nybegynder
23. oktober 2010 - 10:57 Der er 6 kommentarer og
1 løsning

Sorter efter flest logins. virker ikke rigtig

Hej eksperten.

Jeg er igang med www.coolboom.dk
denne gang med noget Counter Strike.

Jeg er igang med at lave en lille admin statestik.
Jeg ønsker i den statistik at vise de 3 brugere med flest logins
til det har hver bruger i ders tabel et felt der hedder "logins" når man så logget ind laver jeg en update med $logins+1

mit problem ligger i at jeg har denne stump kode:
_______________________________________________________________
<?php
$sql = "select * from brugere order by logins desc limit 3";
$result = mysql_query($sql)or die(mysql_error());

while ($aktive = mysql_fetch_assoc($result))
{
?>
<tr>
<td>
<a href="index.php?fil=profil&bn_id=<?=$aktive['id']; ?>"><?=$aktive['bn']; ?></a> - ( <?=$aktive['logins']; ?> )
</td>
</tr>
<?php
}
?>
_______________________________________________________________

Når jeg køre dette script skriver den 3 brugere. en med 8, 5 & 5 logins. Hvis jeg fjerner DESC skriver den 3 brugere med 0 logins.
Hvis jeg så skriver asc skriver den igen 3 brugere med med 0 logins.

Her er hele min kode:
_________________________________________________________________
<?php
//SELECT FROM SYSTEM
$select_user = mysql_query("SELECT * FROM statistik")or die(mysql_error());
while($row = mysql_fetch_array($select_user)){

$stat_logins = $row['logins'];
$stat_gb = $row['gb'];
$stat_debatter = $row['debatter'];
$stat_debat_indlaeg = $row['debat_indlaeg'];
$stat_vidoer = $row['vidoer'];
$stat_online = $row['online'];
}

if($_SESSION['user_online'] == "online"){
if($_SESSION['user_admin'] == "online" && $ses_adm == "sa"){
?>
<table>
<tr>
<td><h3><u>Sidens statistikker</u></h3></td><td> - <a href="index.php?fil=adm/index">Tilbage</a></td>
</tr>
</table>
<br>
<table width="100%" style="border:1px solid #000;">
<tr>
<td>

<table width="100%">
<tr>
<td>
<?php echo "Antal logins  $stat_logins"; ?>
</td>
</tr>
</table>
<br>

<table width="100%">
<tr>
<td>
<?php echo "Antal beskeder skrevet i g&aelig;steb&oslash;ger  $stat_gb"; ?>
</td>
</tr>
</table>
<br>

<table width="100%">
<tr>
<td>
<?php echo "Antal debatter opretter $stat_debatter"; ?>
</td>
</tr>
</table>
<br>

<table width="100%">
<tr>
<td>
<?php echo "Antal debat indl&aelig;g  $stat_debat_indlaeg"; ?>
</td>
</tr>
</table>
<br>

<table width="100%">
<tr>
<td>
<?php echo "Antal vidoer  $stat_vidoer"; ?>
</td>
</tr>
</table>
<br>

<table width="100%">
<tr>
<td>
<?php echo "Antal flest online $stat_online"; ?>
</td>
</tr>
</table>
<br>

<table width="100%">
<tr>
<td>
<?php echo "3 brugere med flest logins"; ?>
</td>
</tr>
<?php
$sql = "select * from brugere order by logins asc limit 3";
$result = mysql_query($sql)or die(mysql_error());

while ($aktive = mysql_fetch_assoc($result))
{
?>
<tr>
<td>
<a href="index.php?fil=profil&bn_id=<?=$aktive['id']; ?>"><?=$aktive['bn']; ?></a> - ( <?=$aktive['logins']; ?> )
</td>
</tr>
<?php
}
?>

</table>
<br>

</td>
</tr>
</table>
<?php
} else {
    echo "Adgang N&aelig;gtet!";
}
} else {
    echo "Du er ikke logget ind!";
}
?>
______________________________________________________________

Med venlig hilsen
Mikkel
Avatar billede julemandenb Nybegynder
23. oktober 2010 - 10:59 #1
Det skal siges at jeg ved at højeste bruger har 122 logins.
Avatar billede anderskm Nybegynder
23. oktober 2010 - 12:46 #2
Hvilken datatype er feltet "logins"? Hvis det er varchar kan databasen vist godt finde på at sortere "alfabetisk" i stedet for "numerisk". Dvs. den tolker "1" "11" "111" som værende mindre end "2", da det første tegn, "1", i hver af de tre strenge er mindre end "2".
Prøv at ændre feltet til en "int". Jeg ved ikke om du kan risikere at komme til at slette dataen når feltets datatype ændres, så prøv evt. at lave et andet felt, "logins2", først og test på det.
Avatar billede julemandenb Nybegynder
23. oktober 2010 - 12:51 #3
Gør ik noget, jeg tager en backup og indsætter det via der. Der er ikke ret mange brugere. men vil da lige prøve.
Avatar billede julemandenb Nybegynder
23. oktober 2010 - 12:55 #4
Mange tak, det virker. smider du et svar? :)
Avatar billede anderskm Nybegynder
24. oktober 2010 - 09:12 #5
Det var så lidt. Er glad for at kunne hjælpe :-)
Avatar billede wanze Nybegynder
24. oktober 2010 - 12:53 #6
Noget helt andet er - du skriver du opdaterer logins med $logins+1. Betyder det, at du først henter nuværende logins ud, lægger én til og indsætter igen? I så fald kan du gøre det meget smartere bare ved at bruge queryen "update table set logins = logins+1 where ..".
Avatar billede julemandenb Nybegynder
30. oktober 2010 - 00:06 #7
Okay, Tak anderskm & wanze :)
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