Avatar billede matz Nybegynder
16. august 2007 - 22:04 Der er 8 kommentarer og
1 løsning

Gemme i Mysql og opret xml fil

Hvordan gemmer jeg i mysql hvor den samtidig opretter en xml fil? Min kode her virker hvor den opretter en fil, mangler mysql delen.

Kode:

<?php

//Creates XML string and XML document using the DOM
$dom = new DomDocument('1.0');

//add root - <books>
$books = $dom->appendChild($dom->createElement('books'));

//add <book> element to <books>
$book = $books->appendChild($dom->createElement('book'));

//add <title> element to <book>
$title = $book->appendChild($dom->createElement('title'));

//add <title> text node element to <title>
$title->appendChild(
                $dom->createTextNode('Great American Novel'));

//generate xml
$dom->formatOutput = true; // set the formatOutput attribute of
                            // domDocument to true
// save XML as string or file
$test1 = $dom->saveXML(); // put string in test1
$dom->save('test1.xml'); // save as file
?>
Avatar billede nielle Nybegynder
16. august 2007 - 22:24 #1
Der er da ikke noget i vejen for at si simpelthen smækker et par linjer kode mere på til indsættelse i MySQL. Hvad er problemet?
Avatar billede matz Nybegynder
16. august 2007 - 22:27 #2
Jeg tænkte mere på om der var visse regler omkring det. Om det skal stå før eller efter begyndelsen af DomDocument?
Avatar billede nielle Nybegynder
16. august 2007 - 22:32 #3
Nej, det kan stå stort set hvor det skal være. Har du da oplevet problemer?

Jeg formoder at det er det samme data som skal i XML-filen og i MySQL. I så fald er det vel en fordel hvis data isoleres først og så bliver brugt i de to kodesekmenter bageefter - i indsættelsen i MySQL og i XML-filen.
Avatar billede matz Nybegynder
16. august 2007 - 22:37 #4
Jeg har prøvet følgende, men det virker ikke:

<?php

include_once 'connect.php';

$firstName = $_POST["fornavn"];
$lastName = $_POST["efternavn"];

if(isset($firstName) && isset($lastName)){
  $test_2 = new sql();
  $test_2->connect();
  $test_2->q("INSERT INTO navn (fornavn, efternavn)
  VALUES ('$firstName', '$lastName')");
  $test_2->close();
}

//Creates XML string and XML document using the DOM
$dom = new DomDocument('1.0');

//add root - <books>
$books = $dom->appendChild($dom->createElement('books'));

//add <book> element to <books>
$book = $books->appendChild($dom->createElement('book'));

//add <title> element to <book>
$title = $book->appendChild($dom->createElement('title'));

//add <title> text node element to <title>
$title->appendChild(
                $dom->createTextNode('$firstName'));

//generate xml
$dom->formatOutput = true; // set the formatOutput attribute of
                            // domDocument to true
// save XML as string or file
$test1 = $dom->saveXML(); // put string in test1
$dom->save('test1.xml'); // save as file

echo 'Upload er gennemført';
?>
Avatar billede nielle Nybegynder
16. august 2007 - 22:40 #5
Kan du være lidt mere specifik? I hvilken forstand virker det ikke. Bliver der ikke indsat noget i databasen? Bliver XML-filen ikke oprettet? Får du en fejlbesked? Hvilken? Hvad forventede du at der skal ske? Hvad skete der i stedet for? Den slags oplysninger...
Avatar billede matz Nybegynder
16. august 2007 - 22:43 #6
xml filen bliver oprettet og de rbliver indsat data i mysql. Der står bare ikke det der skal i xml filen.

xml fil:

<?xml version="1.0"?>
<books>
  <book>
    <title>$firstName</title>
  </book>
</books>

I <title> skal der indsættes $firstName - altså det man indtaster i formen. Så der skal ikke stå "$firstName" - men der skal stå det der bliver sendt fra formen.
Avatar billede nielle Nybegynder
16. august 2007 - 22:44 #7
Du skal rette:

//add <title> text node element to <title>
$title->appendChild(
                $dom->createTextNode('$firstName'));

til:

//add <title> text node element to <title>
$title->appendChild(
                $dom->createTextNode($firstName));
Avatar billede matz Nybegynder
16. august 2007 - 22:52 #8
yes det virker! Læg et svar :) og tak!
Avatar billede nielle Nybegynder
16. august 2007 - 22:52 #9
Svar :^)
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
Kurser inden for grundlæggende programmering

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