Avatar billede kmart Nybegynder
19. juni 2008 - 13:16 Der er 18 kommentarer

php til xml

Hej,

Jeg søger et php script som kan lave følgende xml udfra php, da jeg har en mysql db og gerne vil have xml'en dynamisk opdateret ifh. til db'en...

Håber nogle kan hjælpe da jeg ikke er så stærk i php/ xml

Mvh
Martin

----
<?xml version="1.0"?>
<content>
  <gallery Name="All Images">
    <image Large="image1.jpg" Caption="Reflective Spiral" Colour="3c0000">
    <copy><![CDATA[<p>This is a text ></copy>
    </image>
      </gallery>
 
</content>

-----
Avatar billede w13 Novice
19. juni 2008 - 13:18 #1
Du bør vel bare generere det direkte med PHP så? Altså echo'e det og indskrive de rigtige data de rigtige steder..
Avatar billede w13 Novice
19. juni 2008 - 13:19 #2
I øvrigt er der vist lidt galt her:
    <copy><![CDATA[<p>This is a text ></copy>
Avatar billede kmart Nybegynder
19. juni 2008 - 13:28 #3
tjooo har denne her, men den spiller ikke lige

så jeg sætter pris på hjælp.....

<?php
header ("content-type: text/xml");
print "<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?>\n";
require_once('connections/config.php');
$urlid = $HTTP_GET_VARS["urlid"];

$query = "SELECT * FROM photo ORDER BY Timestamp desc";
//$query = "SELECT * FROM photo ORDER BY Timestamp desc";

$result = mysql_query($query);

print "<content>";
print "<gallery>\n";

while($image = mysql_fetch_object($result)) {   
print "<pic>\n";   
print "<image>".$image->photo."</image>\n";
print "<gruppe>".$image->Gruppe."</gruppe >\n"; 
print "<overskrift>".$image->Overskrift."</overskrift >\n";
print "</pic>\n";
}
print "</gallery>\n";
print "</content>";
?>
Avatar billede kmart Nybegynder
19. juni 2008 - 13:31 #4
altså jeg ved ikke hvordan jeg får indsat flere værdier indenfor samme felt.... hvis du forstår.....
Avatar billede w13 Novice
19. juni 2008 - 13:40 #5
Flere værdier indenfor samme felt? Jeg er ikke helt med.
Avatar billede kmart Nybegynder
19. juni 2008 - 13:46 #6
Hvordan jeg echo'er / printer

<image Large="image1.jpg" Caption="Reflective Spiral" Colour="3c0000">

da de kommer fra forskellige tabeller i DB'en...

print "<image>".$image->photo."</image>\n";
viker fint, men jeg skulle gerne have de andre felter ind i samme sætning, hvis du forstå.
Avatar billede w13 Novice
19. juni 2008 - 13:50 #7
Så må du jo indsætte en ekstra mysql_query. Jeg tror, det bliver noget i retning af:

<?php
header ("content-type: text/xml");
print "<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?>\n";
require_once('connections/config.php');
$urlid = $HTTP_GET_VARS["urlid"];

$query = "SELECT * FROM photo ORDER BY Timestamp desc";
$result = mysql_query($query);

print "<content>";
print "<gallery>\n";

while($image = mysql_fetch_object($result)) {   
print "<pic>\n";

$query2 = "SELECT * FROM andentabel WHERE id = ".$image->id;
$result2 = mysql_query($query2);

print "<image caption=\"".$result->caption."\">".$image->photo."</image>\n";
print "<gruppe>".$image->Gruppe."</gruppe >\n"; 
print "<overskrift>".$image->Overskrift."</overskrift >\n";
print "</pic>\n";
}
print "</gallery>\n";
print "</content>";
?>

Men jeg ved jo ingenting om din database og felterne deri, så yderligere kan jeg ikke specificiere det.
Avatar billede kmart Nybegynder
19. juni 2008 - 14:11 #8
Takker, men ja er desværre ikke så stærk i php, men hvis jeg bare for skrevet nedenstående xml vedhælp af php så ændre jeg bare databasen - det er kun en tabel men med mange felter (colonner)

<?xml version="1.0"?>
<content>
  <gallery Name="All Images">
    <image Large="Gallery3/image4.jpg" Caption="Skyscrapers" Colour="0e1b20">
    <copy>This is text </copy>
    </image>

Håber du kan hjælpe mig.
  </gallery>
 
</content>
Avatar billede kmart Nybegynder
19. juni 2008 - 14:43 #9
please help! ;)
Avatar billede w13 Novice
19. juni 2008 - 14:50 #10
Så skal jeg vide, hvilke data der ligger i hvilke tabeller og hvad kolonnerne hedder. Kan du ikke skrive det sådan her f.eks.:

<?xml version="1.0"?>
<content>
  <gallery Name="All Images">
    <image Large="table2/large" Caption="table2/caption" Colour="table2/color">
    <copy>table1/text</copy>
    </image>
  </gallery>
</content>
Avatar billede kmart Nybegynder
19. juni 2008 - 15:00 #11
jo ud over at der kun er tale om en tabel så ser det rigtigt ud.
Avatar billede w13 Novice
19. juni 2008 - 15:09 #12
Du skrev da ellers "da de kommer fra forskellige tabeller i DB'en", det er derfor, jeg er lidt forvirret.
Avatar billede w13 Novice
19. juni 2008 - 15:11 #13
Hvis de kommer fra samme tabel, er det jo bare:

<?php
header ("content-type: text/xml");
print "<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?>\n";
require_once('connections/config.php');
$urlid = $HTTP_GET_VARS["urlid"];

$query = "SELECT * FROM photo ORDER BY Timestamp desc";
$result = mysql_query($query);

print "<content>";
print "<gallery Name=\"All Images\">\n";

while($image = mysql_fetch_object($result)) {   

print "<image Large=\"".$image->large."\" Caption=\"".$image->caption."\" Colour=\"".$image->colour."\">".$image->photo."</image>\n";
print "<copy>".$image->text."</gruppe >\n"; 

}
print "</gallery>\n";
print "</content>";
?>
Avatar billede kmart Nybegynder
19. juni 2008 - 15:26 #14
ja næsten - det skal bare være sådan her:

<image Large="Gallery1/image1.jpg" Caption="Reflective Spiral" Colour="3c0000">

Altså uden </image> tilsidst (\">".$image->photo."</image>\n"; )

Kan bare ikke finde ud af hvor det skal slettes fra og til.....

???

På forhånd mange tak ;)
Avatar billede w13 Novice
19. juni 2008 - 15:27 #15
Ah ja, ok:

<?php
header ("content-type: text/xml");
print "<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?>\n";
require_once('connections/config.php');
$urlid = $HTTP_GET_VARS["urlid"];

$query = "SELECT * FROM photo ORDER BY Timestamp desc";
$result = mysql_query($query);

print "<content>";
print "<gallery Name=\"All Images\">\n";

while($image = mysql_fetch_object($result)) {   

print "<image Large=\"".$image->large."\" Caption=\"".$image->caption."\" Colour=\"".$image->colour."\">\n";
print "<copy>".$image->text."</gruppe >\n"; 
print "</image>\n";
}
print "</gallery>\n";
print "</content>";
?>
Avatar billede kmart Nybegynder
19. juni 2008 - 15:35 #16
ja men uden "/" til sidst - kan desværre ikke hitte ud af alle de anførselstegn eller hvordan det er bygget op???

På forhånd tak ;)
igen!
Avatar billede kmart Nybegynder
19. juni 2008 - 16:00 #17
jeg forstå det simpelthen ikke .....

mangler kun at fjerne "/"
Avatar billede w13 Novice
19. juni 2008 - 17:23 #18
Hvilket "/"?

I øvrigt skal:
print "<copy>".$image->text."</gruppe >\n";
være:
print "<copy>".$image->text."</copy>\n";
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