2009-07-14 2 views
0

Я создал файл XML автоматически из приведенного ниже кода.Как сохранить XML-файл в mysqldatabase и получить его?

if (isset($_POST["song"])&& $_POST['song'] != "") { 
    $song = $_POST["song"]; 
} else { 
    $song = array(); 
} 
$dom = new DOMDocument("1.0"); 
// display document in browser as plain text 
// for readability purposes 

// create root element 
$root = $dom->createElement("playlist"); 
$dom->appendChild($root); 
$root->setAttribute('version', "1"); 
$root->setAttribute('xmlns', "http://xspf.org/ns/0/"); 
$rootnext = $dom->createElement("trackList"); 
$root->appendChild($rootnext); 
foreach ($song as $counter) { 
    $tokens = ","; 
    $tokenized = strtok($counter, $tokens); 
    // create child element 
    $song = $dom->createElement("track"); 
    $rootnext->appendChild($song); 
    $song1 = $dom->createElement("creator"); 
    $song->appendChild($song1); 
    $text = $dom->createTextNode("www.musicking.in"); 
    $song1->appendChild($text); 
    $song1 = $dom->createElement("title"); 
    $song->appendChild($song1); 
    // create text node 
    $text = $dom->createTextNode($tokenized); 
    $song1->appendChild($text); 
    $tokenized = strtok($tokens); 
    $song1 = $dom->createElement("location"); 
    $song->appendChild($song1); 
    $text = $dom->createTextNode($tokenized); 
    $song1->appendChild($text); 
} 
$dom->save("playlist.xml"); 

Фактически после генерации файла XML он хранится в корневом каталоге.

Не могли бы вы рассказать мне, как хранить сгенерированный XML-файл в базе данных MySQL?

После создания файла XML я должен вызвать этот файл. Я использую ниже код для вызова:

<object data="musicplayer.swf?autostart=true&playlist=playlist.xml" type="application/x-shockwave-flash" width="400" height="300"> 
    <param name="movie" value="musicplayer.swf?autostart=true&playlist=playlist.xml"/> 
</object> 

Пожалуйста, скажите мне, как хранить и извлекать этот playlist.xml файл из базы данных MySQL?

ответ

2

Используйте DOMDocument::saveXML(), чтобы получить строковое представление вашего xml-файла и вставить эту строку в столбец approrpiate в вашей базе данных. В зависимости от размера ваших данных используйте столбец типа TINYBLOB (2^8 байт), BLOB (2^16 байт), MEDIUMBLOB (2^24 байта) или LONGBLOB (2^32 байта) (при использовании MySQL или соответствующего тип данных в СУБД по вашему выбору).

+0

am пытается сделай это. что я должен дать ****** для этого? – musicking123

+0

******* должно быть ". Mysql_escape_string ($ xmlString)." –

+0

может у, пожалуйста, проверьте приведенный выше код ответа, его не работает – musicking123

-2

Я думаю, что нет смысла хранить его в базе данных, если вы используете решение из другого вопроса, что проблема с одним файлом IS SOLVED (AGAIN !!), если вы храните его в базе данных и получаете его от там или что-то еще это может сработать и, возможно, даже лучшее решение, но это не решит вашу проблему с неправильными значениями, так как этот php-скрипт будет ТОЧНО теми же значениями, что и другой, это приведет к ТОЧНО тому же.

снова:

проверить код ГДЕ POST данные в PHP SCRIPT!

+1

-1 что со всеми криками? –

+0

Извините, если я спрашиваю столько раз , но я пытаюсь здесь ... befor u дал решение с помощью функции microtime() ..... на самом деле это превосходно , но я не знаю, почему его создание xml-файла каждый раз, но его не получая доступ к этому файлу. показывая только плейлист, который мы выберем первым. – musicking123

+0

Посмотрите на другие вопросы. Есть несколько вещей, которые могут пойти не так: Сценарий отправки снова отправляет те же данные -> u получите те же самые вещи Flash не загружает правильный xml -> u получает те же самые вещи проблемы кеширования. Возможно, другие вещи, но ни один из них не должен ничего с этим справляться. Если другой скрипт делает не то, передавая одни и те же данные в флешку по-другому, не улучшится. Делайте отладку или показывайте другие файлы здесь, с этим никто не сможет вам помочь. – Flo

0
<?php 
if(isset($_POST["song"])&& $_POST['song'] != "") 
    { 
     $song = $_POST["song"]; 
    } 
    else {$song=array();} 
$dom = new DOMDocument("1.0"); 
// display document in browser as plain text 
// for readability purposes 

// create root element 
$root = $dom->createElement("playlist"); 
$dom->appendChild($root); 
$root->setAttribute('version', "1"); 
$root->setAttribute('xmlns', "http://xspf.org/ns/0/"); 
$rootnext = $dom->createElement("trackList"); 
$root->appendChild($rootnext); 
foreach ($song as $counter) { 
    $tokens = ","; 
    $tokenized = strtok($counter, $tokens); 
// create child element 

$song = $dom->createElement("track"); 
$rootnext->appendChild($song); 
$song1 = $dom->createElement("creator"); 
$song->appendChild($song1); 
$text = $dom->createTextNode("www.musicking.in"); 
$song1->appendChild($text); 
$song1 = $dom->createElement("title"); 
$song->appendChild($song1); 
// create text node 
$text = $dom->createTextNode($tokenized); 
$song1->appendChild($text); 
$tokenized = strtok($tokens); 
$song1 = $dom->createElement("location"); 
$song->appendChild($song1); 
$text = $dom->createTextNode($tokenized); 
$song1->appendChild($text); 

} 
DOMDocument::saveXML(); 

$con = mysql_connect("localhost","music123_sri","password"); 
if (!$con) 
    { die('Could not connect: ' . mysql_error()); } 
mysql_select_db("music123_telugu", $con); 
$sql="INSERT INTO xml (File) VALUES (" . mysql_escape_string($xmlString) . ")"; 
$data = mysql_query("SELECT File FROM xml") 

$info = mysql_fetch_array($data); 
?> 
<object data="musicplayer.swf?autostart=true&playlist=<?php $info ?>"  type="application/x-shockwave-flash" width="400" height="300"><param name="movie" value="musicplayer.swf?autostart=true&playlist=<?php $info ?>"/></object> 



can u check the above code its not working. 
+0

INSERT INTO xml (Файл) VALUES <- (why (File)? Имя таблицы должно быть здесь вы вообще создали таблицу базы данных? Какие поля там? Не будет работать, это будет заменен вам целым xml как строкой, вам придется использовать идентификатор или что-то в этом роде, которое выглядит бесполезным, если вы не можете получить доступ к базе данных со вспышкой (думаю, вы не хотите менять плагин для флеш-памяти). Но, как было сказано ранее, даже если вы получите эту работу, она будет делать то же самое, что и xml вещь раньше (такая же ошибка), но вы должны сделать много вещей, чтобы добраться туда. – Flo

+0

ya xactly, что вы сказали, это обряд. Я не у какой из них идеально подходит? Flo может помочь мне, пожалуйста. Если я просто прошу вас, оставьте его – musicking123

+0

придерживайтесь xml-решения, забудьте о sql-материале, который будет тонны работы и не имеет никакого значения. add: var_dump ($ _ POST ["song"]); где-нибудь, чтобы вы могли видеть, что отправлено в файл php. Затем попробуйте немного обойтись и сравните результат с тем, что играет в flashplayer – Flo