You want to export data from ALL the rows in a db table into ONE file, right?
Quote:
<category>
<pattern>what does {word} mean?<pattern>
<template>{word} means {definition}</template>
</category>
<category>
<pattern>What is the meaning of {word}<pattern>
<template>{word} means {definition}</template>
</category>
|
If that's the case, and you are comfortable executing queries from the MySQL commandline (or you have mysqladmin installed) you can just run a query to achieve the export -- you won't even need to wrap it in a PHP script.
You'll use a MySQL query like this:
SELECT... INTO OUTFILE '/path/from/root/filename.ext'
Code:
SELECT
'<category>\n<pattern>What is the meaning of ',
field1,
'<pattern>\n<template>',
field1,' means ',field2,'</template>\n</category>\n\n'
INTO OUTFILE '/path/from/root/filename.AIML'
I marked up verbatim what you posted.
Does a "forward slash" belong in the second <pattern> tag ???
Since it's just a query & doesn't have to echo anything to a browser, it'll run extremely fast. No need to chop it into multiple passes; the query will probably only take about 30-40 seconds to complete 286,000 rows. At that point, you'll just go retrieve the output file from whatever directory you told MySQL to write it to.
Prior to running the "full version" you might want to test the output & verify that the data will be in the "desired format".
Here's an example query to use in order to check:
Code:
SELECT
'<category>\n<pattern>What is the meaning of ',
field1,
'<pattern>\n<template>',
field1,' means ',field2,'</template>\n</category>\n\n'
LIMIT 2;
this will just echo 2 rows worth of output to your commandline ---------^
This assumes you're on a unix server.
If you're running on a Windows server, you'll need to use \r\n for the linebreak character.
Hmm...
I just checked the "formatting" using this query against our vbb.thread table:
Code:
select '<hello>',trim(threadid),'</hello>\r',trim(title),' </JUSTanENDtag>\r\r'
from post limit 5 INTO outfile '/backup/helo.txt';
...and the trim() isn't helping.
So, your output file may need to be tweaked in a text editor using search/replace before you use it as an AIML file.
You might want to search/replace multiple spaces with a single space, and search/replace to remove the tailend space between the "word" and the closing "pattern" tag.