Database connectie met xml files

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Jop B

Jop B

11/04/2014 00:10:13
Quote Anchor link
Beste leden,

Heb me zojuist aangemeld op dit forum omdat ik graag wat hulp wil bij het maken van een connectie met een xml bestand.
Zelf heb ik niet heel veel ervaring met PHP maar begin het te leren (basis dingen).

Zelf heb ik wat xml bestanden in een map staan, in de xml bestanden staan verschillende gegevens.
Nu wil ik als men op een link klikt dat er data uit een xml bestand word gehaald.

De xml bestanden zijn genummerd:

100
1000
10000
enz.

stel ik geef in een link de nummering van de juiste xml file mee hoe kan ik er dan voor zorgen dat er connectie word gemaakt en dat de data uit de xml file word weergegeven?

Wie o wie kan mij hiermee opweg helpen? Dat zou top zijn!

Groetjes Jop
 
PHP hulp

PHP hulp

26/04/2024 11:22:16
 
- Ariën  -
Beheerder

- Ariën -

11/04/2014 00:34:13
 
Jop B

Jop B

11/04/2014 11:19:34
Quote Anchor link
Beste,
dank voor de link!
Echter kom ik er niet goed uit als ik mijn file's erbij pak.

De file structuur wat ik heb is:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?xml version="1.0" encoding="UTF-8"?>
<book>
<book_titel>book 1</book_titel>
<book_gerne>Drama</book_gerne>
</book>


Stel de file naam is: book1.xml
hoe maak ik php duidelijk met een id code dat hij dan book1 moet laden?

bijvoorbeeld:

Link 1: www.boeken.com/index.php?book=book1
Laad book1.xml
link 2: www.boeken.com/index.php?book=book2
Laad book2.xml

enz.

de boeken staan dan in de root --map--> data--map-->books

Groetjes Jop


- Aar -:
Gelieve in het vervolg bij code de [code][/code]-tags gebruiken.
Alvast bedankt!
Gewijzigd op 11/04/2014 11:30:11 door - Ariën -
 
Michael -

Michael -

11/04/2014 11:32:36
Quote Anchor link
Met een GET variabele kun je waardes uit de link halen.

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
if(isset($_GET['book'])) {

    $file = __DIR__.'/map/data-map/books/'.$_GET['book'].'.xml';

    if(file_exists($file)) {
    
        $book = simplexml_load_file($file);
        print_r($book);
    }
else {
        echo 'Bestand niet gevonden';
    }
}

?>
Gewijzigd op 11/04/2014 11:33:50 door Michael -
 
- Ariën  -
Beheerder

- Ariën -

11/04/2014 11:34:26
Quote Anchor link
Je kan iets als dit doen:
if($book->title == $_GET['book']) {
Gewijzigd op 11/04/2014 11:35:06 door - Ariën -
 
Jop B

Jop B

11/04/2014 13:24:03
Quote Anchor link
Bedankt voor de reactie's!

ik hoef dus nu alleen maar een link te maken:

www.boeken.com/index.php?book=book1
www.boeken.com/index.php?book=book2
enz.

als ik dan de genre wil laten echo-en kan ik zoiets als dit doen:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
if($book->gerne == $_GET['book']) {


Gr. Jop
 
Michael -

Michael -

11/04/2014 13:32:29
Quote Anchor link
Ik begreep dat je een met book=book1 wou bepalen welk bestand er moest worden ingeladen, zoals mijn voorbeeld.
Uit Aar's voorbeeld en jouw reactie begrijp ik dat je een deel uit een reeds ingeladen XML wilt weergeven.
 
Jop B

Jop B

11/04/2014 13:42:50
Quote Anchor link
Beste Michael,

Dat klopt, zoals ik boven aan heb gegeven heb ik meerdere xml bestanden.
Deze zijn genummerd:

book1.xml
book2.xml
book3.xml
enz.

Als ik pagina heb waar links opstaan wil ik dat de php code de juiste file pak en daarvan de informatie toont.

bijvoorbeeld:

www.boeken.com/index.php?book=book1
nu is het de bedoeling dat hij book1.xml laad.

Nu wil ik nog een stapje verder:

Ik maak een pagina www.boeken.com/gerne.php?book=book1
hiervan wil ik het genre boek weten.

de file van book1 ziet er als volgt uit:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?xml version="1.0" encoding="UTF-8"?>
<book>
<book_titel>book 1</book_titel>
<book_gerne>Drama</book_gerne>
</book>


De php zou dus nu moet echo-en 'drama'

Als de link verwijst naar book2:
Ik maak een pagina www.boeken.com/gerne.php?book=book2
Moet hij het gerne tonen van boek 2

Gr. Jop
 
- Ariën  -
Beheerder

- Ariën -

11/04/2014 13:47:49
Quote Anchor link
Als je per boek een eigen XML hebt (niet echt geheel handig overigens), dan kan je $book->gerne gewoon echo'en.

Let er wel op dat er in je XML gerne staat, i.p.v. genre.
 
Michael -

Michael -

11/04/2014 13:50:39
Quote Anchor link
Dan was mijn code toch meer in de buurt.

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
/*
 * Geef d.m.v. de url ?book= aan welk boek je wilt laden.
 * ?book=book1 laad book1.xml
 */

if(isset($_GET['book'])) {
    /*
     * ?book is geset. We maken nu een string met het pad en de naam van het boek gevolgd door .xml
     */

    $file = dirname(__FILE__).'/books/'.$_GET['book'].'.xml';

    /*
     * We controleren of dit boek inderdaad in die map voorkomt
     */

    if(file_exists($file)) {
        /*
         * Als het boek voorkomt dan laden we deze in
         */

        $book = simplexml_load_file($file);
        /*
         * en geven het genre weer
         */

        echo $book->book_gerne;
    }
else {
    /*
         * Als het boek niet kan worden gevonden geven we een melding
         */

        echo 'Bestand niet gevonden';
    }
}

?>


edit: genre aangepast naar gerne. correct?
Gewijzigd op 11/04/2014 13:57:22 door Michael -
 
Yoeri Achterbergen

Yoeri Achterbergen

11/04/2014 16:30:53
Quote Anchor link
Hallo,

Deze topic was ik al heel lang het zoeken!!!

Alleen ziet mijn xml file er iets anders uit omdat deze wordt gegeneerd met een programma.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<article>
<LV_ARTICLES_DESCRIPTIONANDMEASURE>
    <LV_ARTICLES_LANG_NL><![CDATA[TGB 303, DELIVERY &amp; EXPRESS GASKABEL UNIVERSEEL ]]></LV_ARTICLES_LANG_NL>
  </LV_ARTICLES_DESCRIPTIONANDMEASURE>
</article>


Waar de
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
echo $book->book_gerne;


staat wat moet ik daar invullen?
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
echo $article->LV_ARTICLES_DESCRIPTIONANDMEASURE->LV_ARTICLES_LANG_NL->![CDATA[;


Groetjes Yoeri
 
- Ariën  -
Beheerder

- Ariën -

11/04/2014 16:36:18
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
echo $book->LV_ARTICLES_DESCRIPTIONANDMEASURE->LV_ARTICLES_LANG_NL;
?>

Je kan $book (waarin laad je je XML-file) voor testdoeleinden een in primt_r() plaatsen. Dan zie je de opbouw.
 
Jop B

Jop B

12/04/2014 10:09:26
Quote Anchor link
Hallo,

Het is allemaal gelukt! Super :) d.m.v. deze code kan ik aan de slag om data te tonen!

Gr. Jop
 



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.