Problemen met FOR en IF

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Niels van Hoogdalem

Niels van Hoogdalem

14/04/2017 14:56:42
Quote Anchor link
Hoi allen,

Ik ben nog relatief onervaren op het gebied van PHP, dus bij voorbaat excuses als ik domme vragen stel. :)

Ik ben bezig met een scriptje voor het binnenhalen van files op wegen in Nederland vanuit een xml-feed.

Zie onder. Het werkt zoals ik wil.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
<?php


    $url
= "http://xml.fileindex.nl/";
 
 
    $data = simplexml_load_file($url);
    $aantalFiles = count($data->filedata->meldingen->melding);
    $fileSamenvatting = $data->filedata->samenvatting;
    $weg = $data->filedata->meldingen->melding->wegnr;

 echo "Een overzicht van de actuele files in Nederland:";
 echo "<br />";
    echo $fileSamenvatting->tekst . "<br />";
  
 
    for($i = 0; $i < $aantalFiles; $i++) {
 
        $fileMelding = $data->filedata->meldingen->melding[$i];
 
        
         echo "<font color='red'><mark>&nbsp;&nbsp;$fileMelding->wegnr &nbsp;</mark></font>";
        echo " van " . $fileMelding->van . " richting " . $fileMelding->naar . "<br />";
        echo round($fileMelding->afstand) . " km (HMP " . $fileMelding->hectostart . " &#8594; HMP " . $fileMelding->hectoeind . ")<br />";
      
 
 
        echo "<br /><br />";
    }


?>


Nu probeerde ik middels onderstaande te filteren op bepaalde wegen in Nederland. Maar als output krijg ik hier alleen de eerst genoemde file op die weg. Als het er meerdere zijn, wordt dus alleen de eerste getoond.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35


<?php


    $url
= "http://xml.fileindex.nl/";
 
 
    $data = simplexml_load_file($url);
    $aantalFiles = count($data->filedata->meldingen->melding);
    $fileSamenvatting = $data->filedata->samenvatting;
    $weg = $data->filedata->meldingen->melding->wegnr;

 echo "Een overzicht van de actuele files in Nederland:";
 echo "<br />";
    echo $fileSamenvatting->tekst . "<br />";
  
      if ($weg = "A1") {
 
        $fileMelding = $data->filedata->meldingen->melding;
 
        
         echo "<font color='red'><mark>&nbsp;&nbsp;$fileMelding->wegnr &nbsp;</mark></font>";
      
        
        
        echo " van " . $fileMelding->van . " richting " . $fileMelding->naar . "<br />";
        echo round($fileMelding->afstand) . " km (HMP " . $fileMelding->hectostart . " &#8594; HMP " . $fileMelding->hectoeind . ")<br />";
      
 
 
        echo "<br /><br />";
    }


?>


Is het gebruik van IF hier überhaubt wel op zijn plaats? Of kan ik beter met FOR gaan proberen?

Nogmaals, het gaat hier om basiskennis, maar kan wel een zetje in de juiste richting gebruiken :) thanks!
- Ariën -:
Gelieve in het vervolg bij code de [code][/code]-tags gebruiken.
Hier kan je meer lezen over de mogelijke opmaakcodes.
Alvast bedankt!
Gewijzigd op 14/04/2017 14:58:13 door - Ariën -
 
PHP hulp

PHP hulp

06/11/2024 00:11:50
 
- Ariën  -
Beheerder

- Ariën -

14/04/2017 14:59:25
Quote Anchor link
Ik denk foreach nog makkelijker is, als je een array uit wilt lezen.
 
- SanThe -

- SanThe -

14/04/2017 15:02:01
Quote Anchor link
Dit geeft altijd true:
if ($weg = "A1") {

Bij een vergelijking gebruik je ==
if ($weg == "A1") {
 
Ivo P

Ivo P

14/04/2017 16:02:00
Quote Anchor link
zoeken door simplexml laten doen:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php
$url
= "http://xml.fileindex.nl/";
$data = simplexml_load_file($url);

$opA2 = $data->xpath("//wegnr[. ='A2']/parent::*");

printf('<pre>%s</pre>', print_r($opA2, 1));

foreach($opA2 as $fileMelding) {

    echo " van " . $fileMelding->van . " richting " . $fileMelding->naar . "<br />";
    echo round($fileMelding->afstand) . " km (HMP " . $fileMelding->hectostart . " &#8594; HMP " . $fileMelding->hectoeind . ")<br />";
}

?>
 
Ozzie PHP

Ozzie PHP

14/04/2017 16:05:20
Quote Anchor link
>> Ik ben nog relatief onervaren op het gebied van PHP, dus bij voorbaat excuses als ik domme vragen stel. :)

>> Nogmaals, het gaat hier om basiskennis, maar kan wel een zetje in de juiste richting gebruiken :) thanks!

Er bestaan (bijna) geen domme vragen. Hooguit domme antwoorden ;-)

Als je gewoon netjes je vraag stelt (en dat doe jij) zal je ook gewoon netjes geholpen worden, dus je hoeft je nergens voor te verontschuldigen.

Welkom op het forum.
 
Niels van Hoogdalem

Niels van Hoogdalem

16/04/2017 09:12:46
Quote Anchor link
Bedankt allemaal! Met jullie tips is het me inmiddels gelukt!

Thanks :)
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.