Avatar billede ken9 Nybegynder
07. juni 2006 - 20:30 Der er 17 kommentarer og
1 løsning

Hente 2 seneste nyheder

Hejsa eksperter!

Jeg vil gerne hente mine 2 seneste tilføjede nyheder ned i en tabel med 1 række og 4 kolonner. Altså et billede og en tekst til hver af de 2 nyheder.

Jeg har prøvet med:

<?
$strSQL = "SELECT * FROM nyheder ORDER BY DateTime DESC";
$newslist = mysql_query($comettrawl);
$i=0;
while ($i<2 && $news=mysql_fetch_assoc($newslist))
{
  echo $news['tekst'];
  $i++;
}
?>


men det giver følgende fejl:

Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in /var/www/kenni.eu/public_html/comettrawl/nyheder/index.php on line 73

---

Nogen som kan hjælpe? :)
Avatar billede ken9 Nybegynder
07. juni 2006 - 20:30 #1
Nyhedssiden kan ses på www.kenni.eu/comettrawl/
Avatar billede iss Novice
07. juni 2006 - 20:33 #2
Nummer et kig efter limit i din SQL manual, nummer to DateTime ligner ikke t felt du har lavet...
Avatar billede hmortensen Nybegynder
07. juni 2006 - 20:36 #3
Du kan sætte en limit på, og så skal du bruge den rigtige variabel:
<?php
$strSQL = "SELECT * FROM nyheder ORDER BY DateTime DESC LIMIT 2";
$newslist = mysql_query($strSQL) or die(mysql_error());
while ($news = mysql_fetch_assoc($newslist))
{
  echo $news['tekst'];
}
?>
Avatar billede ken9 Nybegynder
07. juni 2006 - 20:38 #4
njoo men det giver vel problemer når det skal udskrives i en tabel?

Problemet er jo ikke at jeg ikke kan finde ud af at få udskrevet de 2 seneste nyheder, men at få den 2 seneste nyhed over i min højre tabel ;)
Avatar billede Slettet bruger
07. juni 2006 - 21:30 #5
Jamen hvordan vil sætte dem op, i en ny tabel?
Eller skal der bare være breaks i mellem nyhederne?

Men den rigtige måde er at sætte limit på, for der er ingen grund til at trække alle nyhederne ud fra basen, hvis du kun skal bruge 2 af dem. Hvis du forstår.

Hvis de skal være i en tabel:
<table width="100%" cellspacing="0" cellpadding="0">
<?PHP
while($news = mysql_fetch_assoc($newslist)) {
echo "\n\t<tr>"; //vi indsætter en <tr> for hver nyhed.
echo "\n\t\t<td class=\"overskrift\">".$news['overskrift']."</td>";
echo "\n\t</tr>";

echo "\n\t<tr>"; //Så en <tr> til selveteksten i nyheden
echo "\n\t\t<td class=\"text\">".$news['tekst']."</td>";
echo "\n\t</tr>";

echo "\n\t<tr>"; //Vi indsætter en tom tabel for at få det adskildt.
echo "\n\t\t<td class=\"text\">&nbsp;</td>"; //&nbsp; = mellemrum
echo "\n\t</tr>";
}
?>
</table>
Avatar billede Slettet bruger
07. juni 2006 - 21:30 #6
alt hvad der er inde i din while-løkke som det hedder, vil blive gentaget igen og igen.
Avatar billede wetdog Nybegynder
07. juni 2006 - 21:33 #7
kan du fortælle hvilke felter du har i tabellen nyheder - som iss antyder tror jeg ikke du har et felt som hedder datetime
Avatar billede ken9 Nybegynder
07. juni 2006 - 21:33 #8
Jeg fandt selv ud af det med:

<table width="100%"  border="0" cellspacing="0" cellpadding="2">
<tr>
  <?php
$strSQL = "SELECT * FROM nyheder ORDER BY id DESC LIMIT 2";
$newslist = mysql_query($strSQL) or die(mysql_error());
while ($row_rsNyheder = mysql_fetch_assoc($newslist))
{  ?>
       
    <td><a href="nyhed.php?id=<?php echo $row_rsNyheder['id']; ?>"><img src="<?php echo $row_rsNyheder['billede']; ?>" border="0"></a></td>
    <td><b><?php echo $row_rsNyheder['overskrift']; ?></b><br><?php echo substr($row_rsNyheder[tekst], 0, 22); ?>...</td>

  <?php
}
?>
</tr>
</table>
Avatar billede ken9 Nybegynder
07. juni 2006 - 21:34 #9
/lukket
Avatar billede wetdog Nybegynder
07. juni 2006 - 21:34 #10
sorry - glem min kommentar. Jeg fik ikke læst det hele :-)
Avatar billede iss Novice
07. juni 2006 - 21:35 #11
$strSQL = "SELECT * FROM nyheder ORDER BY id DESC LIMIT 2";

Den fandt du selv ud af??? Sjovt nok var det præcist det jeg skrev til dig...
Avatar billede ken9 Nybegynder
07. juni 2006 - 21:39 #12
iss, du opnår det samme med:

$i=0;
while ($i<2 && $news=mysql_fetch_assoc($newslist))
{

.. så det var ikke det jeg ledte efter :)
Avatar billede iss Novice
07. juni 2006 - 21:43 #13
Christ, du skal bare sige til du ikke vil have hjælp igen, for du får den ikke... Fuck de skide point, men at påstår man selv er kommet på det, det er jo en direkte løgn...
Avatar billede hmortensen Nybegynder
07. juni 2006 - 21:43 #14
Langt fra det samme, eftersom at du henter alt fra databasen, istedet for at begrænse dit udtræk.
Avatar billede ken9 Nybegynder
07. juni 2006 - 21:45 #15
Jeg ledte efter det med tabel hvilket jeg også tydeligt forklarede, og du havde heller ikke angivet et svar, men en kommentar.
Avatar billede ken9 Nybegynder
07. juni 2006 - 21:47 #16
hmortensen - var jeg så ikke klar over :o)
Avatar billede Slettet bruger
07. juni 2006 - 22:38 #17
Ja fuck points, men at man bruger tid på at hjælpe og det er takken... fint nok..
Avatar billede Slettet bruger
07. juni 2006 - 22:40 #18
Men som hmortensen siger, så er det meget meget langt fra det samme, da du trækker alle tingene ud fra databasen.

Tænk hvis du har 3.000.000 vare eller kunder i din database, og du kun skal have statisk på den ene, så er det squ da spild af tid, at hente de 2.999.999 andre synes du ikke?
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