Avatar billede gil-galad Nybegynder
22. januar 2004 - 14:47 Der er 25 kommentarer og
1 løsning

kun vise den første nyhed i en variable? (XML - PHP)

jeg har en rss parser, og så henter jeg en *.xml side fra en en anden hjemmeside. Den bliver så hentet sådan her:

    <?php
    echo "<table width=\"100%\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\">
    <tr><td align=\"center\" valign=\"top\" width=\"1%\"><b>Nyheder:</b>&nbsp;</td>
    <td align=\"left\" valign=\"top\" width=\"99%\">";       
    require('filer/rss/rss_fetch.inc');
    $rss = fetch_rss('http://www.blablablabla.dk/index.xml');
    foreach ($rss->items as $item) {
    $title = $item['title'];
    echo "<a href=\"index.php?action=nyheder\">$title</a><br><br>";
    }
    echo "</td></tr></table>";
    ?>

men da $title indeholder mange flere end én, kommer der en hel masse som jeg ikke vil have.
Kan man ikke på en eller anden på løse det?
Avatar billede jakobclausen Nybegynder
22. januar 2004 - 14:50 #1
Sæt en begrænsning på din sql sætning.

LIMIT 1

- skrives i slutningen
Avatar billede gil-galad Nybegynder
22. januar 2004 - 14:51 #2
sql sætning?? hvor?

(bruger ikke nogen database ;-)
Avatar billede jakobclausen Nybegynder
22. januar 2004 - 14:51 #3
Ahh undskyld, har misforstået spørgsmålet!
Avatar billede gil-galad Nybegynder
22. januar 2004 - 15:02 #4
det er helt ok
Avatar billede Slettet bruger
22. januar 2004 - 15:21 #5
Vil du kun have den første eller hvad?
Avatar billede smirnoff Nybegynder
22. januar 2004 - 16:31 #6
hvad med en simpel break; i din foreach ?
Avatar billede gil-galad Nybegynder
22. januar 2004 - 18:15 #7
ja, jeg vil kun have den første..
>>smirnoff kan du ikke komme med et eksempel??
Avatar billede Slettet bruger
22. januar 2004 - 18:19 #8
<?php
    echo "<table width=\"100%\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\">
    <tr><td align=\"center\" valign=\"top\" width=\"1%\"><b>Nyheder:</b>&nbsp;</td>
    <td align=\"left\" valign=\"top\" width=\"99%\">";     
    require('filer/rss/rss_fetch.inc');
    $rss = fetch_rss('http://www.blablablabla.dk/index.xml');
    $item = each($rss->items)
    $title = $item['title'];
    echo "<a href=\"index.php?action=nyheder\">$title</a><br><br>";
    echo "</td></tr></table>";
    ?>
Avatar billede Slettet bruger
22. januar 2004 - 18:19 #9
Ups, der manglede et ;

<?php
    echo "<table width=\"100%\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\">
    <tr><td align=\"center\" valign=\"top\" width=\"1%\"><b>Nyheder:</b>&nbsp;</td>
    <td align=\"left\" valign=\"top\" width=\"99%\">";   
    require('filer/rss/rss_fetch.inc');
    $rss = fetch_rss('http://www.blablablabla.dk/index.xml');
    $item = each($rss->items);
    $title = $item['title'];
    echo "<a href=\"index.php?action=nyheder\">$title</a><br><br>";
    echo "</td></tr></table>";
    ?>
Avatar billede Slettet bruger
22. januar 2004 - 18:23 #10
Nej, glem det, den virkede ikke lige helt, som jeg havde forestillet mig.
Avatar billede Slettet bruger
22. januar 2004 - 18:25 #11
Til gengæld virker denne, men den piller første element ud af $rss->items og lægger den i $item.

<?php
echo "<table width=\"100%\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\">
<tr><td align=\"center\" valign=\"top\" width=\"1%\"><b>Nyheder:</b>&nbsp;</td>
<td align=\"left\" valign=\"top\" width=\"99%\">"; 
require('filer/rss/rss_fetch.inc');
$rss = fetch_rss('http://www.blablablabla.dk/index.xml');
$item = array_shift($rss->items);
$title = $item['title'];
echo "<a href=\"index.php?action=nyheder\">$title</a><br><br>";
echo "</td></tr></table>";
?>
Avatar billede gil-galad Nybegynder
22. januar 2004 - 18:28 #12
ja, det gjorde den sørme også :-)


Tak
Avatar billede Slettet bruger
22. januar 2004 - 18:32 #13
Så du skal lige være opmærksom på, at $rss->items bagefter kun indeholder de resterende nyheder.
Avatar billede gil-galad Nybegynder
22. januar 2004 - 18:54 #14
hmmm det er faktisk ikke så smart så.. Nyheden kommer ikke på nyhedssiden så...

For ikke at få en fejl sletter jeg disse to linjer:
$rss = fetch_rss('http://www.blablablabla.dk/index.xml');
$item = array_shift($rss->items);
i det script der henter alle overskrifterne, og indholdet... Kan jeg ikke "Lukke" de variabler i det her script, så jeg kan inkludere alle nyhederne i det  scripot der viser alle??
Avatar billede smirnoff Nybegynder
22. januar 2004 - 18:59 #15
mit bud fra før var uden at tænke meget over det ... og ikke specielt optimalt ...

men sådan her:

foreach ($rss->items as $item) {
    $title = $item['title'];
    echo "<a href=\"index.php?action=nyheder\">$title</a><br><br>";
   
    break;

    }
Avatar billede gil-galad Nybegynder
22. januar 2004 - 19:04 #16
tjaaa... det virker. Skal jg oprette et nyt spg. med point?
Avatar billede Slettet bruger
22. januar 2004 - 19:08 #17
Nej, hvad med at lade os dele?

Der var alligevel rigeligt til to for det lille spørgsmål.
Avatar billede Slettet bruger
22. januar 2004 - 19:14 #18
Hvis elementerne i $rss->items bare er nummereret, kan du erstatte

array_shift($rss->items);

i mit forslag med

$rss->items[0];

Det vil ikke pille noget ud af arrayet.
Avatar billede gil-galad Nybegynder
23. januar 2004 - 12:45 #19
denne her løsning piller heller ikke noget ud... MEN jeg har accepteret spørgsmålet. Skal jeg så oprette et nyt?
Avatar billede Slettet bruger
23. januar 2004 - 21:53 #20
spiffsen: Du er da helt vild efter at oprette et nyt spørgsmål med flere point. ;-) Tag det nu bare roligt.

Har du fået det til at virke?
Avatar billede gil-galad Nybegynder
24. januar 2004 - 11:32 #21
jo ja
Avatar billede gil-galad Nybegynder
24. januar 2004 - 12:21 #22
Avatar billede Slettet bruger
24. januar 2004 - 13:22 #23
OK, så du brugte smirnoffs løsning.

Jeg vil foreslå at jeg (ikke du) opretter et nyt spørgsmål med 60 point til smirnoff. Så får han mest for den brugte løsning, og jeg får lidt for forsøget.

Vil dette være tilfredsstillende for alle parter?
Avatar billede gil-galad Nybegynder
24. januar 2004 - 14:21 #24
det ville da være fint for mig ;-)
Avatar billede Slettet bruger
24. januar 2004 - 14:26 #25
Avatar billede smirnoff Nybegynder
24. januar 2004 - 23:18 #26
det er ditto fint med mig :)
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