Avatar billede tobrukDk Novice
12. november 2011 - 20:57 Der er 41 kommentarer og
1 løsning

hente de 3 sidste nytste

Hej

Hvordan kan jeg gør sådan at jeg kun tag de 3 sidste nytste fra databasen

min kode er

<?php
    $query = "SELECT * FROM dj_nyheder"; //Opbygger  forespørgsels streng
    $result = mysql_query($query); //Forespørgslen fortages i databasen
    $row = mysql_fetch_assoc($result); //Henter resultatet ned på siden
?>


Håber du kan hjælp mig ellers må du lige spørger hvis der er mere infomation du vil vide omkring det:)
Avatar billede 2c Nybegynder
12. november 2011 - 21:07 #1
<?php
    $query = "SELECT * FROM dj_nyheder LIMIT 0, 3 "; //Opbygger  forespørgsels streng
    $result = mysql_query($query); //Forespørgslen fortages i databasen
    $row = mysql_fetch_assoc($result); //Henter resultatet ned på siden
?>
Avatar billede 2c Nybegynder
12. november 2011 - 21:07 #2
Jeg går ud fra at det er en mysql database?
Avatar billede tobrukDk Novice
12. november 2011 - 21:23 #3
ja det er det også jeg har lavet 4 og det virker ikke helt?, er det ikke noget med at man kan sig til sql at den skal kun hente den 3 første eller sådan?
Avatar billede 2c Nybegynder
12. november 2011 - 21:29 #4
LIMIT 0, 3 efter tabel navnet. Det er forskellen.
Avatar billede tobrukDk Novice
12. november 2011 - 21:33 #5
okay lækkert men det virker ikke :(
Avatar billede 2c Nybegynder
12. november 2011 - 21:36 #6
Hvad får du af fejl?
Og virkede det uden Limit?
Avatar billede tobrukDk Novice
12. november 2011 - 21:45 #7
jeg har lavet 4 test ting og det virker overhovedet. :(
Avatar billede 2c Nybegynder
12. november 2011 - 21:52 #8
Virker det første kode du har skrevet?

Altså på den måde, at den bare henter alle nyheder?
12. november 2011 - 22:18 #9
Du vil have de tre nyeste nyheder fra tabellen dj_nyheder, siger du.  Hvordan ved du, og hvordan skal din kode vide hvor gammel en nyhed er?  Har tabellen dj_nyheder et felt id der auto nummereres, således at de nyeste nyheder er dem med de højeste id numre?  I så fald reduceres problemet til at finde nyhederne med de tre højeste id numre.  Det skulle du kunne gøre således:

<?php
    $query = "SELECT * FROM dj_nyheder ORDER BY id DESC LIMIT 3";
    $result = mysql_query($query);
    $row = mysql_fetch_assoc($result);
?>

Jeg håber det virker. 

Hvis det ikke virker, så fortæl hvad præcist du havde forventet (måske har jeg misforstået problemstillingen) og hvad queryen leverede i stedet for. Ved kun at sige: "det virker ikke" giver du ingen oplysninger der kan bruges til at forbedre det.
Avatar billede tobrukDk Novice
12. november 2011 - 22:24 #10
Tak Christian_belgien Jeg mener også det var sådan min lærer vist mig at jeg skulle gøre det men det er lidt svært at husk det når man lige er start på php & mysql database :)

ja jeg har id og tid har jeg også :)
12. november 2011 - 22:38 #11
Så hvad er det du skal bruge?  De tre nyheder med den seneste tid?  I så fald prøv:

<?php
    $query = "SELECT * FROM dj_nyheder ORDER BY tid DESC LIMIT 3";
    $result = mysql_query($query);
    $row = mysql_fetch_assoc($result);
?>

Gider du prøve det af og så fortælle hvilke resultater du får og om det var de resultater du var ude efter.
Avatar billede tobrukDk Novice
12. november 2011 - 22:39 #12
men hvordan helt den alle de 3 første nytste?
Avatar billede tobrukDk Novice
12. november 2011 - 22:40 #13
Jo det skal jeg nok , skrive det om lidt :D
Avatar billede tobrukDk Novice
12. november 2011 - 22:57 #14
#Christian_Belgien

det som jeg søger efter er hvordan jeg gøre sådan at jeg har 3 sidste nyheder altså det jeg mener helt er at f.eks

http://www.screencast.com/t/aWPMwH4e

altså den har top 3 af tid, hvor den hente den helt ny af dem alle sammen.

spørger hvis der er mere du vil vide nu?
Avatar billede erikjacobsen Ekspert
12. november 2011 - 23:11 #15
Der mangler i hvert fald lige en while løkke til at løbe de tre rækker igennem. Og velsagtens en udskrift.
Avatar billede tobrukDk Novice
12. november 2011 - 23:13 #16

<?php
    $query = "SELECT * FROM dj_nyheder ORDER BY tid DESC LIMIT 3";
    $result = mysql_query($query);
    $row = mysql_fetch_assoc($result);
?>
<li><?php echo $row['tid'];?> - <?php echo $row['tekst'];?></li>


sådan har jeg skrevet det :)

Hvad mener du helt erikjacobsen?
Avatar billede nemlig Professor
12. november 2011 - 23:14 #17
Christian_Belgien har givet dig svaret i #9.

Har du prøvet det????

ORDER BY id, sorterer på dit id-felt
DESC, sorterer med højeste værdi først (dermed nyeste)
LIMIT 3, henter de 3 øverste i din sortering.
Avatar billede nemlig Professor
12. november 2011 - 23:15 #18
Du skal gøre det på samme måde som dit spørgsmål med at trække navn og brugernavn ud. Her anvendes du while for at liste dine brugere.
Avatar billede nemlig Professor
12. november 2011 - 23:17 #19
#18 Sorry - jeg forvekslede dig med en anden, der spurgte om noget lignende tidligere.
Avatar billede nemlig Professor
12. november 2011 - 23:20 #20
$query = "SELECT * FROM dj_nyheder ORDER BY tid DESC LIMIT 3";
$result = mysql_query($query);

while($row = mysql_fetch_array( $result))
{
echo "<li>".$row['tid'];?> - <?php echo $row['tekst'];?></li>
}
Avatar billede nemlig Professor
12. november 2011 - 23:21 #21
Lige en lille rettelse:

$query = "SELECT * FROM dj_nyheder ORDER BY tid DESC LIMIT 3";
$result = mysql_query($query);

while($row = mysql_fetch_array( $result))
{
echo "<li>".$row['tid']." - ".$row['tekst']."</li>";
}
Avatar billede tobrukDk Novice
12. november 2011 - 23:27 #22
Jamen på det her billede vise den kun 1 ,
http://www.screencast.com/t/NOnghEX2h5h


men vil gerne have den skal skrive 3
Avatar billede nemlig Professor
12. november 2011 - 23:30 #23
Der skal stå "ORDER BY id" - ikke "ORDER BY tid"
Avatar billede tobrukDk Novice
12. november 2011 - 23:37 #24
#nemlig der ske intet ud over at den sidste kommer frem.. :(
Avatar billede nemlig Professor
12. november 2011 - 23:39 #25
Vil du vise os koden med dit udtræk og din while?
Avatar billede nemlig Professor
12. november 2011 - 23:42 #26
Du skal jo gerne have 3 poster med i dit udtræk. Antallet af poster kan du fx. tjekke med:

$echo mysql_num_rows($result); //skal stå lige før din while
Avatar billede tobrukDk Novice
12. november 2011 - 23:42 #27
udtræk og while?

hvad mener du helt?

jeg er lidt ordblind.
Avatar billede nemlig Professor
12. november 2011 - 23:45 #28
Vis os din kode, som henter dine data fra MySQL og hvordan du lister dem.

Altså den kode, der ligner det, som jeg fx. skrev i #21.
Avatar billede tobrukDk Novice
12. november 2011 - 23:50 #29
#nemlig jeg tog bare din kode som du skrive i 21 og det virker nu!!

jeg har bare skrevet det op på en anden måde



<?php
    $query = "SELECT * FROM events ORDER BY id DESC LIMIT 3";
    $result = mysql_query($query);
    $row = mysql_fetch_assoc($result);
?>
<li><?php echo $row['tid'];?> - <?php echo $row['tekst'];?></li>

Avatar billede nemlig Professor
12. november 2011 - 23:52 #30
Det du skriver i #29 viser kun 1 post.

Skal jeg forstå det sådan, at du har det til virke korrekt nu?
Avatar billede tobrukDk Novice
13. november 2011 - 00:04 #31
jeps det har jeg :)

okay kan du forklare mig hvad jeg gøre galt siden det ikke vil virker ?
Avatar billede nemlig Professor
13. november 2011 - 09:29 #32
Jeg forstår ikke din seneste kommentar, idet du:

1. Skriver at du har det til at virke korrekt
2. Skriver om jeg vil forklare, hvad der er galt.

Jeg er ikke helt med.
Avatar billede tobrukDk Novice
13. november 2011 - 14:29 #33
Jeg vil gerne vide hvad jeg gøre galt siden det ikke vil virker?,

ja det virker 100% som jeg vil have det skulle!..
Avatar billede nemlig Professor
13. november 2011 - 14:54 #34
Sorry - jeg er lidt langsom.
Jeg synes du skriver, at det ikke virker, og så skriver du at det virker 100%. Det er da modsigende.

Må jeg se din kode:
Avatar billede tobrukDk Novice
13. november 2011 - 15:21 #35
<?php
    $query = "SELECT * FROM dj_nyheder ORDER BY id DESC LIMIT 3";
    $result = mysql_query($query);
   
    while($row = mysql_fetch_array( $result))
    {
    echo "<li>".$row['tid']." - ".$row['tekst']."</li>";
    }
?>
Avatar billede nemlig Professor
13. november 2011 - 15:29 #36
Den kode bør liste de 3 seneste poster. Gør den ikke det?
Avatar billede tobrukDk Novice
13. november 2011 - 15:58 #37
Den virker 100% og det var lige det jeg søgt efter og vil du have noget for det?
Avatar billede nemlig Professor
13. november 2011 - 16:14 #38
Ellers tak.
Avatar billede tobrukDk Novice
13. november 2011 - 16:19 #39
Vil du have noget for hjælpen?
Avatar billede nemlig Professor
13. november 2011 - 16:23 #40
nej tak - ellers tak.
Avatar billede tobrukDk Novice
13. november 2011 - 16:26 #41
Okay så tag jeg dem selv men det var altså dig som hjælp mig med det rigtigt svar!. kan du have en god dag?
Avatar billede nemlig Professor
13. november 2011 - 16:33 #42
Tak og i lige måde :)
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