Php in XML flash gallery

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Bas Visscher

Bas Visscher

16/11/2009 10:41:00
Quote Anchor link
Hallo,
Ik heb een site en eerst had ik daar zelf een galerij voor gemaakt.
Maar een flash gallerij leek mij mooier. En nu heb ik er een gevonden die ik mooi vind. Hij haalt de informatie uit een xml bestand met deze opbouw:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
<category name="Catergorie Naam">
        <image>
            <date>Datum</date>
            <title>Titel</title>
            <desc>Iets tekst</desc>
            <thumb>thumbnaam</thumb>
            <img>Plaatje groot naam</img>
        </image>
</category>


Hoe krijg ik mijn database velden in een xml document?
Op elk bezoek van de pagina het bestand unlinken (verwijderen) en dan een nieuwe aanmaken? Of krijgen gebruikers die al aan het kijken dan een melding als er een nieuwe gebruiker op de galerij komt?

Ik heb deze database opbouw:

Tabel: foto
veld: naam
veld: album

Tabel: album
veld: naam

Vraag simpel geformuleerd: Hoe krijg ik mijn database waarden in het xml document?
Gewijzigd op 01/01/1970 01:00:00 door Bas Visscher
 
PHP hulp

PHP hulp

18/04/2024 18:46:50
 
Koen

koen

16/11/2009 10:52:00
Quote Anchor link
als je met php je database uitleest kan je dat in een xml bestand proppen...
zie link:
http://www.developerfusion.com/code/3944/how-to-create-xml-files/

gewoon in plaats van standaard waardes je database waardes erin gooien.
 
Bas Visscher

Bas Visscher

16/11/2009 11:09:00
Quote Anchor link
Ok heel erg bedankt.
Maar betekent dat, dat ik elke keer een nieuw xml bestand moet maken aangezien er nieuwe foto's worden toegevoegd.
En dat ik dan het oude bestand eerst moet verwijderen?
 
Koen

koen

16/11/2009 11:13:00
Quote Anchor link
het oude bestand openen, en dan aanpassen :P
op dezelfde manier als dat je hem aanmaakt kan je toevoegen...
alleen dan moet je je xml eerst openen met aanpasmogelijkheid.
 
Bas Visscher

Bas Visscher

16/11/2009 11:21:00
Quote Anchor link
Probleem 1.
Hieronder de code, hij stopt bij 1 keer schrijven in de loop of waar?
Als ik zeg maar bij functie AlbMake(); in de while loop een 1 echo geeft hij die wel vaker weer dat zou ook moeten, omdat er meer in de database staat. maar waarom schrijft hij gewoon niet meer dan maar 1 album?

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
<?php

MaaknewAlb();

function
MaaknewAlb(){
include('../db/connectie.php');
$queryalb = "SELECT album FROM album WHERE album != 'voorpagina' ";
$albuit = mysql_query($queryalb)or die(mysql_error()."Fout bij aanmaken album.");
    while($alb = mysql_fetch_assoc($albuit)){
    AlbMake($alb['album']);
    }
}

function
AlbMake($alb){
include('../db/connectie.php');
$query = "SELECT * FROM foto WHERE album = '".$alb."'";
$xmldoc= "gallery.xml";
$fp=fopen($xmldoc,'w+');
fwrite($fp,"<?xml version=1.0 ?>\n");  
$foto = mysql_query($query)or die(mysql_error());
     fwrite($fp,"<category name=\"".$alb."\" >\n");
    while($fot = mysql_fetch_assoc($foto)){
    fwrite($fp,"<image>\n");
    fwrite($fp,"<date>2009</date>\n");
    fwrite($fp, "<title></title>\n");
    fwrite($fp,"<desc>".$fot['beschrijving']."</desc>\n");
    fwrite($fp, "<thumb>thumb_".$fot['naam']."</thumb>\n");
    fwrite($fp, "<img>".$fot['naam']."</img>\n");
    fwrite($fp, "</image>\n");
    }

    fwrite($fp,"</category>\n");
    fclose($fp);
}

?>


Output in gallery.xml:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
<?xml version=1.0 ?>
<category name="portretten" >
    <image>
        <date>2009</date>
        <title></title>
        <desc></desc>
        <thumb>thumb_7up_index.jpg</thumb>
        <img>7up_index.jpg</img>
    </image>
</category>
Gewijzigd op 01/01/1970 01:00:00 door Bas Visscher
 
Tobias Tobias

Tobias Tobias

16/11/2009 13:15:00
Quote Anchor link
ik kreeg de link van Koen niet aan de praat (foutmelding waar ik via google gen oplossing voor kon vinden)

Deze werkte wel bij mij: http://www.dynamicdrive.com/forums/showthread.php?t=14165
 
Koen

koen

16/11/2009 13:16:00
Quote Anchor link
die link die ik postte was om het aan te maken, read/write komt daarna... maar daar heb ik alleen naar verwezen(het wijzigen)
heb daar niet zozeer een concreet antwoord op gegeven...
Gewijzigd op 01/01/1970 01:00:00 door koen
 
Bas Visscher

Bas Visscher

16/11/2009 13:26:00
Quote Anchor link
Maar jullie weten niet waardoor het komt dat hij maar 1 stukje schrijft?
Of kan je een functie niet in een loop zetten?
 
Tobias Tobias

Tobias Tobias

16/11/2009 13:55:00
Quote Anchor link
ik kan zo geen problemen in je script zien. Of er moet natuurlijk maar 1 waarde opgehaald worden? mysql_num_row?
 
Bas Visscher

Bas Visscher

16/11/2009 14:04:00
Quote Anchor link
Ik weet al waaraan het ligt maar niet hoe ik dit oplos.
Het ligt aan de +w in de write functie.
Maar hoe krijg ik het voor elkaar dat hij er weer achter schrijft.
Gewijzigd op 01/01/1970 01:00:00 door Bas Visscher
 
Koen

koen

16/11/2009 14:31:00
Quote Anchor link
net even gegoogled
Quote:
Writing at the end of a file

the mode "a+" automatically places the file pointer at the end of the file so we don't have to do anything extra in this case.


edit:
de site erbij:
http://www.php-learn-it.com/php_files/php_file_write.html
Gewijzigd op 01/01/1970 01:00:00 door koen
 
Bas Visscher

Bas Visscher

16/11/2009 14:37:00
Quote Anchor link
Opgelost!
Bedankt iedereen!
oplossing:

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
36
37
38
39
40
41
42
<?php

MaaknewAlb();

function
MaaknewAlb(){
include('../../db/connectie.php');
$queryalb = "SELECT album FROM album WHERE album != 'voorpagina' ";
$albuit = mysql_query($queryalb)or die(mysql_error()."Fout bij aanmaken album.");
$i=0;
unlink("gallery.xml");
    while($alb = mysql_fetch_assoc($albuit)){
    AlbMake($alb['album'], $i);
    $i++;
    }
}

function
AlbMake($alb, $aantal){
include('../../db/connectie.php');
$query = "SELECT * FROM foto WHERE album = '".$alb."'";
$xmldoc= "gallery.xml";
if($aantal > 0){
$fp=fopen($xmldoc,'a+');
}

if($aantal < 1){
$fp=fopen($xmldoc,'w+');
fwrite($fp, "<gallery title=\"Henriette's Gallery\" thumbDir=\"../../uploader/thumbs/\" imageDir=\"../../uploader/images/\" random=\"true\">\n");
}

$foto = mysql_query($query)or die(mysql_error());
     fwrite($fp,"<category name=\"".$alb."\" >\n");
    while($fot = mysql_fetch_assoc($foto)){
    fwrite($fp,"<image>\n");
    fwrite($fp,"<date>2009</date>\n");
    fwrite($fp, "<title></title>\n");
    fwrite($fp,"<desc>".$fot['beschrijving']."</desc>\n");
    fwrite($fp, "<thumb>thumb_".$fot['naam']."</thumb>\n");
    fwrite($fp, "<img>".$fot['naam']."</img>\n");
    fwrite($fp, "</image>\n");
    }

    fwrite($fp,"</category>\n");
    fclose($fp);
}

?>
 
Boris Mattijssen

Boris Mattijssen

16/11/2009 19:49:00
Quote Anchor link
Het kan ook on-the-fly.
Gewoon een content-type header boven aan je php bestand zetten. En dan je php-pagina openen in flash.
Of gaat dat niet in flash?
 



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.