Avatar billede prodigy01 Nybegynder
10. maj 2008 - 14:56 Der er 20 kommentarer og
2 løsninger

Order by klik virker ikke?

Hej folk på eksperten :)
Når jeg vil sortere efter nyeste, så sortere den det i rigtige rækkefølge.
Men når jeg vil sortere i popular - så kommer de ikke i rigtige række følge.
Jeg ved sku ikke hvad der skulle være galt :S.
Lidt af koden:

    <?
if($_GET["valg"] == "popular")
{
echo("");
?>
    <?
include "connect.php";

$sql = mysql_query("select * from jokes ORDER BY klik");
while($row = mysql_fetch_array($sql)){
$id = '$_GET[id]';
?>
    <td width="500"><a href="?side=visjoke&id=<? echo $row[id]; ?>"><? echo substr($row[joken],0,100); ?>...</a> </td>
    <td width="80"><div align="right"><? echo $row[klik]; ?> hits</div></td>
  </tr>
  <tr>
    <td width="500" colspan="2"><hr color="#EAEAEA" size="1"/></td>
  </tr>
  <?

  }
?>
  <?
}
?>
Avatar billede blackscorpion Nybegynder
10. maj 2008 - 15:07 #1
if(!isset($_GET['valg'])) {
$valg = "nyeste";
}
else {
$valg = $_GET['valg'];
}

$sql = mysql_query("select * from jokes ORDER BY $valg");

prøv evt. dette. :)
Avatar billede nielle Nybegynder
10. maj 2008 - 15:18 #2
Din kode skrevet lidt mere korrekt:<?
if ($_GET["valg"] == "popular") {
    include "connect.php";

    $sql = mysql_query("SELECT id, joken, kilk FROM jokes ORDER BY klik");
    while ($row = mysql_fetch_assoc($sql)) {
?>
        <tr>
            <td width="500"><a href="?side=visjoke&id=<? echo $row['id']; ?>"><? echo substr($row['joken'], 0, 100); ?>...</a> </td>
            <td width="80"><div align="right"><? echo $row['klik']; ?> hits</div></td>
        </tr>
        <tr>
            <td width="500" colspan="2"><hr color="#EAEAEA" size="1"/></td>
        </tr>
<?
    }
}
?>


Det ændre formentlig ikke på rækkefølgen. Men du fortæller heller ikke ret meget om hvordan denne er forkert?
Avatar billede prodigy01 Nybegynder
10. maj 2008 - 15:23 #3
blackscorpion ->
Som sagt, jeg kan godt sortere efter nyeste, men når jeg vil sortere popular så kommer de ikke i rigtige rækkefølge...

Nielle -> Tak, men det hjalp ikke. =S
Avatar billede blackscorpion Nybegynder
10. maj 2008 - 15:27 #4
prodigy.. jamen din "klik" så vidt vi kan se i din kode, hører ingen steder henne... hvor og hvordan definerer du "klik" ?

i min kodestump, tjekker den om man har trykket på et soterings link, og hvis man ikke har, soterer den efter nyeste, ellers efter det der er blevet klikket på.

efter din sort by klik, prøv at smide ASC ind... hvis resultatet vender forkert, så udskift ASC med DESC. :)
Avatar billede nielle Nybegynder
10. maj 2008 - 15:31 #5
Du har stadig ikke fortalt på hvilken måde at række følgen er forkert.
Avatar billede blackscorpion Nybegynder
10. maj 2008 - 15:33 #6
Altså var det min kode, ville jeg have den nyeste øverst og så ældre og ældre derned af, men nu må vi se hvad han/hun siger. ;)
Avatar billede prodigy01 Nybegynder
10. maj 2008 - 19:11 #7
http://www.bloddue.dk/jokes.php?valg=popular - Den viser ikke dem med flest hits først..
Kan du se ?
Avatar billede blackscorpion Nybegynder
10. maj 2008 - 19:15 #8
hvordan PRÆCIST ser din $sql sætning ud ?
Avatar billede blackscorpion Nybegynder
10. maj 2008 - 19:17 #9
og hvordan ser din tabel ud som de jokes lægger i ?
Avatar billede prodigy01 Nybegynder
10. maj 2008 - 19:18 #10
$sql = mysql_query("select * from jokes ORDER BY klik");
while($row = mysql_fetch_array($sql)){
$id = '$_GET[id]';
Avatar billede blackscorpion Nybegynder
10. maj 2008 - 19:20 #11
prøv med :

$sql = mysql_query("select * from jokes ORDER BY klik ASC");
while($row = mysql_fetch_array($sql)){
$id = '$_GET[id]';
Avatar billede prodigy01 Nybegynder
10. maj 2008 - 19:44 #12
Jeg har prøvet.. Uden held..

Det lader til at den går i rigtig rækkefølge der er bare 2 jokes med 13 hits, som bliver vist forkert.. midt på siden?:S
Avatar billede blackscorpion Nybegynder
10. maj 2008 - 20:19 #13
okey 2 ting jeg lige skal vide...

1.) klik.... hvad bruger du den til.. det er ren tekst.. forklar om den.

2.) Hvordan ser din tabel ud ?
Avatar billede prodigy01 Nybegynder
10. maj 2008 - 20:31 #14
1. Klik = hvor mange gange man har trykket på den.

2.Jokes | id  joken  klik  kategori  ip  afsender  dato  ?
-------------
Den sortere kun efter det første nr har jeg lagt mærke til
Altså, hvis det er over 10, så falder den ned i bunden, fordi den opfatter den som et 1 tal.. Hvordan ændrer jeg dette?
Avatar billede nielle Nybegynder
10. maj 2008 - 20:31 #15
Jeg tror at klik er sat til at være en tekst-type. Ret den til en taltype, og så burde problemet løse sig.
Avatar billede prodigy01 Nybegynder
10. maj 2008 - 20:35 #16
Undskyld - hvordan gør jeg det ?:/
Avatar billede nielle Nybegynder
10. maj 2008 - 20:39 #17
Har du adgang til at bruge phpmyadmin?
Avatar billede prodigy01 Nybegynder
10. maj 2008 - 20:55 #18
Yes
Avatar billede nielle Nybegynder
10. maj 2008 - 21:00 #19
Så går du ind til der hvor at tabellen er defineret.
Kigger på hvilken datatype klik er - jeg gætter på at den er en varchar(255) eller noget lignende.
Og så ændre du den til at være en taltype - f.eks. int.
Avatar billede prodigy01 Nybegynder
10. maj 2008 - 21:01 #20
aahh fucking spade jeg er .
har ik sat den til tal derinde..
tusind tak..
Vil i dele?  - for synes i begge har været til hjælp.
Avatar billede blackscorpion Nybegynder
10. maj 2008 - 21:20 #21
Glad for at kunne hjælpe. :P
Avatar billede nielle Nybegynder
10. maj 2008 - 21:23 #22
Svar :^)
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