Avatar billede oldschool Nybegynder
29. august 2007 - 12:32 Der er 13 kommentarer og
1 løsning

Opdatere xml med php

Hej

Jeg er ved at undersøge hvordan jeg skal løse et flash/php galleri projekt. Meget kort forklaret skal man kunne uploade et billede fra flash sammen med en kommentar. Billedsti og kommentar skal så gemmes i en mysql database og billedfilen i en mappe. Før man skal kunne se billedet online, skal det godkendes af en administrator. Så det jeg tænker er:

En php fil henter alle billeder fra databasen. Her kan administratoren så sige godkendt eller ikke godkendt. Hvis det ikke bliver godkendt skal en variabel fortælle at billedet ikke er godkendt, men hvis det bliver godkendt, skal der opdateres et xml dokument med alle de godkendte billeder.

Grunden til jeg vil have det i et xml dokument er, at jeg ikke har kunnet finde en god løsning på at hente billeder ind i flash fra mysql - samt at der er mange open source projekter der henter billeder fra xml til flash.

Jeg håber i forstår hvad jeg mener?

Det jeg mest er i tvivl om, er det med at opdaterer xml dokumentet ved at trykke "godkendt" (eksempelvis!) Nogle der kan fortælle om dette kan lade sig gøre?

Eller eventutelt har en idé til en bedre løsning?


//Oldschool
Avatar billede yHec Novice
29. august 2007 - 15:34 #1
En xmlfil er jo  grundlæggende en tekstfil. Så jeg ville nok lave noget med følgende:
$xml_billeder="<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?>
<data>\n";
do {
$xml_billeder.=[din xml struktur for hvert billede];
} while etc

$xmlfil="billeder-xml.xml";
    $writexml=fopen($xmlfil, "w+");
    fwrite($writexml, $xml_billeder);
    fclose($writexml);

Så laves der en ny xml-fil, med de nye data i.

Det virker for mig.

Men der findes også en indbygget xml-parser i php - men jeg synes ikke den er specielt anvendelig...

/y
Avatar billede yHec Novice
29. august 2007 - 15:35 #2
Hovsa....
Efter while, skal der lige indsættes følgende:

$xml_billeder.="<data>\n";

/y
Avatar billede yHec Novice
29. august 2007 - 15:35 #3
ARRRRRRGHHHH
"</data>", ikke "<data>"

/y
Avatar billede oldschool Nybegynder
29. august 2007 - 19:34 #4
Tak for svar :)

Vil dog ikke oprette et nyt xml dokument, men bare opdatere det i forvejen eksisterende med data om et nyt billede...

Hvis fx min xml var således:

<images>
 
<pic>
<image>billeder/2.jpg</image>
<caption>caption2</caption>
</pic>

<pic>
<image>billeder/1.jpg</image>
<caption>caption1</caption>
</pic>

</images>

Vil jeg indsætte et nyt "sæt" <pic></pic>.

Håber du kan følge mig :)
Avatar billede yHec Novice
29. august 2007 - 19:39 #5
jamen, det er den gør.

Den gendanner hele dokumentet. Jeg formoder, at du henter dine oplysninger i en DB.

Du kører løkken, med DB-dataene, incl de nye og opdaterede. Så laver den en ny fil, der overskriver den gamle.

Performancemæssigt gør det ingen forskel - med mindre din xml er MEGET, MEGET stor...
Avatar billede olebole Juniormester
29. august 2007 - 19:49 #6
<ole>

Nu har du jo formodentlig ikke dine data liggende XML-formateret i databasen - og i så fald skal du nok ud i noget:
    http://dk.php.net/domxml
- eller:
    http://dk2.php.net/simplexml

/mvh
</bole>
Avatar billede oldschool Nybegynder
29. august 2007 - 20:24 #7
olebole -> tak for dit indlæg :)

Er faktsik ikke fastlagt på hvordan mine data i databasen ser ud. Men måske det smarteste i virkeligheden er mere smart at skrive direkte i et xml dokument og så derefter "skrive de nye data" ind i det publicerede xml dokument?

flash -> php -> xml -> godkendes/godkendes ikke -> xml -> flash
Avatar billede oldschool Nybegynder
29. august 2007 - 20:30 #8
-> y
Cool, der var jeg ikke skarp nok!

Så jeg sætter eksempelvis xml struktur til:

$xml_billeder.=[<pic><image></image><caption></caption></pic>];

Men hvordan får jeg så defineret hvad jeg skriver til xml'en ud fra mysql'en?

Endnu engang mange tak!
Avatar billede yHec Novice
29. august 2007 - 20:38 #9
Hvordan plejer du at hive data ud???

På sammen måde!

/y
Avatar billede oldschool Nybegynder
29. august 2007 - 20:56 #10
:)

Thanks!

Jeg må se om jeg kan få det bixet sammen.

Men smid et svar, så kan du få nogle point - også dig ole...
Avatar billede yHec Novice
29. august 2007 - 21:08 #11
svar
Avatar billede olebole Juniormester
29. august 2007 - 21:09 #12
Er det mon smart at have data liggende i formateret form i databasen? Det er det normalt ikke - ligesom man heller ikke opbevarer HTML-formateret data i databaser.

Hvis du en dag skal til at bruge dine data til noget andet, skal du først parse data, når du henter dem i databasen. I stedet er det somregel bedst at bruge databasen til data - og så formatere dem i overensstemmelse med det, man skal bruge dem til, når de hentes.
Det er ikke uden grund, det hedder en database - og ikke en markup-base  ;o)
Avatar billede yHec Novice
29. august 2007 - 21:41 #13
Data ligger jo netop IKKE formaterede.

Det er først når man skriver/parser xml filen, de formateres. Det er de "rå" data, der bruges til at lave xml-filen.

$xml_billeder.=[<pic><image>[billedefilnavn fra DB]</image><caption>[caption fra DB]</caption></pic>];

/y
Avatar billede olebole Juniormester
29. august 2007 - 22:25 #14
Sorry - så misforstod jeg din kommentar  :)
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