Go Back   vb.org Archive > vBulletin 3 Discussion > vB3 Programming Discussions
FAQ Community Calendar Today's Posts Search

Reply
 
Thread Tools Display Modes
  #1  
Old 03-12-2003, 09:33 AM
Automated Automated is offline
 
Join Date: Sep 2002
Posts: 266
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default PHP/Mysql Help

HI Guys,

Due to the Amount of help i got with the first stage of this script, i would like some assistance with the second/final stage.

What i have is a DB with over 268,000 entries into it, each one containing a word and it's definition. (AKA the whole English dictionary)

What i am doing is going to create the AIML (Artificial intelligence Mark-up language) so that i can "teach" this knowledge to my artificially intelligent chat bot.

I have written the AIML and need a sort of Mail Merge script that will replace each existence of {word} and {definition} with the appropriate information in the DB.

Here is the AIML i have written, i have given a simple version for the moment;
Code:
<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>
What needs to happen is for the script to do the replace and then export the output to a file (any name) now to prevent time outs maybe it could do 1000 records each time before i refresh the page to do the next.

Once each record has been done and exported it should set a sort of "flag" next to that record in the DB so the same thing isnt exported twice.

I appreciate that this probably isnt a small project so i will see what i can offer you in exchange for your expertise

Thanks.
Matthew
Reply With Quote
  #2  
Old 03-15-2003, 09:09 PM
sparky2 sparky2 is offline
 
Join Date: Jul 2002
Posts: 31
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

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.
Reply With Quote
Reply


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT. The time now is 06:26 PM.


Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2024, vBulletin Solutions Inc.
X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.04396 seconds
  • Memory Usage 2,175KB
  • Queries Executed 13 (?)
More Information
Template Usage:
  • (1)SHOWTHREAD
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (1)ad_showthread_beforeqr
  • (1)ad_showthread_firstpost
  • (1)ad_showthread_firstpost_sig
  • (1)ad_showthread_firstpost_start
  • (4)bbcode_code
  • (1)bbcode_quote
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)navbar
  • (3)navbar_link
  • (120)option
  • (2)post_thanks_box
  • (2)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (2)post_thanks_postbit_info
  • (2)postbit
  • (2)postbit_onlinestatus
  • (2)postbit_wrapper
  • (1)spacer_close
  • (1)spacer_open
  • (1)tagbit_wrapper 

Phrase Groups Available:
  • global
  • inlinemod
  • postbit
  • posting
  • reputationlevel
  • showthread
Included Files:
  • ./showthread.php
  • ./global.php
  • ./includes/init.php
  • ./includes/class_core.php
  • ./includes/config.php
  • ./includes/functions.php
  • ./includes/class_hook.php
  • ./includes/modsystem_functions.php
  • ./includes/functions_bigthree.php
  • ./includes/class_postbit.php
  • ./includes/class_bbcode.php
  • ./includes/functions_reputation.php
  • ./includes/functions_post_thanks.php 

Hooks Called:
  • init_startup
  • init_startup_session_setup_start
  • init_startup_session_setup_complete
  • cache_permissions
  • fetch_postinfo_query
  • fetch_postinfo
  • fetch_threadinfo_query
  • fetch_threadinfo
  • fetch_foruminfo
  • style_fetch
  • cache_templates
  • global_start
  • parse_templates
  • global_setup_complete
  • showthread_start
  • showthread_getinfo
  • forumjump
  • showthread_post_start
  • showthread_query_postids
  • showthread_query
  • bbcode_fetch_tags
  • bbcode_create
  • showthread_postbit_create
  • postbit_factory
  • postbit_display_start
  • post_thanks_function_post_thanks_off_start
  • post_thanks_function_post_thanks_off_end
  • post_thanks_function_fetch_thanks_start
  • post_thanks_function_fetch_thanks_end
  • post_thanks_function_thanked_already_start
  • post_thanks_function_thanked_already_end
  • fetch_musername
  • postbit_imicons
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • postbit_display_complete
  • post_thanks_function_can_thank_this_post_start
  • tag_fetchbit_complete
  • forumrules
  • navbits
  • navbits_complete
  • showthread_complete