Php in XML flash gallery
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:
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?
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)
1
2
3
4
5
6
7
8
9
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>
<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
Gesponsorde koppelingen:
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.
zie link:
http://www.developerfusion.com/code/3944/how-to-create-xml-files/
gewoon in plaats van standaard waardes je database waardes erin gooien.
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?
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?
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.
op dezelfde manier als dat je hem aanmaakt kan je toevoegen...
alleen dan moet je je xml eerst openen met aanpasmogelijkheid.
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?
Output in gallery.xml:
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)
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
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);
}
?>
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)
1
2
3
4
5
6
7
8
9
10
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>
<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
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
Deze werkte wel bij mij: http://www.dynamicdrive.com/forums/showthread.php?t=14165
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...
heb daar niet zozeer een concreet antwoord op gegeven...
Gewijzigd op 01/01/1970 01:00:00 door koen
Maar jullie weten niet waardoor het komt dat hij maar 1 stukje schrijft?
Of kan je een functie niet in een loop zetten?
Of kan je een functie niet in een loop zetten?
ik kan zo geen problemen in je script zien. Of er moet natuurlijk maar 1 waarde opgehaald worden? mysql_num_row?
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.
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
net even gegoogled
edit:
de site erbij:
http://www.php-learn-it.com/php_files/php_file_write.html
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.
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
Opgelost!
Bedankt iedereen!
oplossing:
Bedankt iedereen!
oplossing:
Code (php)
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
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);
}
?>
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);
}
?>
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?
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?



