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:)
Annonceindlæg fra FPT Software
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 ?>
2c
Nybegynder
12. november 2011 - 21:07
#2
Jeg går ud fra at det er en mysql database?
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?
2c
Nybegynder
12. november 2011 - 21:29
#4
LIMIT 0, 3 efter tabel navnet. Det er forskellen.
12. november 2011 - 21:33
#5
okay lækkert men det virker ikke :(
2c
Nybegynder
12. november 2011 - 21:36
#6
Hvad får du af fejl? Og virkede det uden Limit?
12. november 2011 - 21:45
#7
jeg har lavet 4 test ting og det virker overhovedet. :(
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.
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.
12. november 2011 - 22:39
#12
men hvordan helt den alle de 3 første nytste?
12. november 2011 - 22:40
#13
Jo det skal jeg nok , skrive det om lidt :D
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?
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.
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?
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.
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.
12. november 2011 - 23:17
#19
#18 Sorry - jeg forvekslede dig med en anden, der spurgte om noget lignende tidligere.
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> }
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>"; }
12. november 2011 - 23:30
#23
Der skal stå "ORDER BY id" - ikke "ORDER BY tid"
12. november 2011 - 23:37
#24
#nemlig der ske intet ud over at den sidste kommer frem.. :(
12. november 2011 - 23:39
#25
Vil du vise os koden med dit udtræk og din while?
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
12. november 2011 - 23:42
#27
udtræk og while? hvad mener du helt? jeg er lidt ordblind.
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.
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>
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?
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 ?
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.
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!..
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:
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>"; } ?>
13. november 2011 - 15:29
#36
Den kode bør liste de 3 seneste poster. Gør den ikke det?
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?
13. november 2011 - 16:14
#38
Ellers tak.
13. november 2011 - 16:19
#39
Vil du have noget for hjælpen?
13. november 2011 - 16:23
#40
nej tak - ellers tak.
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?
13. november 2011 - 16:33
#42
Tak og i lige måde :)
Vi tilbyder markedets bedste kurser inden for webudvikling