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 09-28-2005, 07:16 PM
Lionel Lionel is offline
 
Join Date: Dec 2001
Location: Delray Beach, Florida
Posts: 3,277
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default extracting from a pattern

I've got this pattern in a category table:
PHP Code:
 3#35#0:2#15#0:7#93#0:7#101#0:1#1#0:1#3#0:5#71#0:6#86#0:4#57#0 
I must do a query to extract only what is between the # e.g. 35 15 93 101 etc... as subcats

then from those results I need to do another query in another subcategory table in order to get the name from those subcats id

and create a list with a link for each one of them like

a href= view.php?subcat=35>subcat 35 name
a href= view.php?subcat=15>subcat 15 name

etc....

if extracted list count ==1 then instead of displaying a link I simply do a redirect to that subcat (no need to display it for selection)



That one is a big toughy for me. Can someone please help?

Thanks.
Reply With Quote
  #2  
Old 09-28-2005, 08:43 PM
Marco van Herwaarden Marco van Herwaarden is offline
 
Join Date: Jul 2004
Posts: 25,415
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

You can do it with an REGEX, but you should think about normalizing your tables and create new rows for each sub category.
Reply With Quote
  #3  
Old 09-28-2005, 08:57 PM
Lionel Lionel is offline
 
Join Date: Dec 2001
Location: Delray Beach, Florida
Posts: 3,277
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

That's a premade script from which I am trying to extract that info. I am looking at ereg_replace. That will give me 35 15 93 101 as one line but how do I get them individually as items?
Reply With Quote
  #4  
Old 09-28-2005, 10:38 PM
AN-net's Avatar
AN-net AN-net is offline
 
Join Date: Dec 2003
Location: AnimationTalk.com
Posts: 2,367
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

explode the spaces and make them into an array
Reply With Quote
  #5  
Old 09-28-2005, 11:52 PM
Lionel Lionel is offline
 
Join Date: Dec 2001
Location: Delray Beach, Florida
Posts: 3,277
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

That's easy to say :speechless:
I got somewhere the hard way
PHP Code:
 $string $f[category];
$string2 ereg_replace('^.[#]'''$string);
$string3 ereg_replace('[#].[:].[#]'','$string2);
$string4 ereg_replace('[#].',''$string3);
$array = array($string4); 
before
PHP Code:
3#35#0:2#15#0:7#93#0:7#101#0:1#1#0:1#3#0:5#71#0:6#86#0:4#57#0 
after
PHP Code:
35,15,93,101,1,3,71,86,57 
now I have to find a way to put quotes around the values

then I'll struggle to extract each one of them individually from array

now that my $string5 looks like this
PHP Code:
"35" "15" "93" "101" "1" "3" "71" "86" "57" 
if I do
PHP Code:
$array = ("35" "15" "93" "101" "1" "3" "71" "86" "57" );
echo 
count($array); 
the count correctly returns 9

but if I do
PHP Code:
$array = array($string5);
echo 
count($array); 
I get only one :disappointed:
Reply With Quote
  #6  
Old 09-29-2005, 12:35 AM
AN-net's Avatar
AN-net AN-net is offline
 
Join Date: Dec 2003
Location: AnimationTalk.com
Posts: 2,367
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

just explode() $string5 using ',' as the separator
Reply With Quote
  #7  
Old 09-29-2005, 12:40 AM
Lionel Lionel is offline
 
Join Date: Dec 2001
Location: Delray Beach, Florida
Posts: 3,277
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

I did that and I get
PHP Code:
35 15 93 101 1 3 71 86 57 
but I am still getting 1 for count

PHP Code:
$subcats explode(","$string5);
 
$array = array($subcats);
echo 
"<br />";
echo 
count($array); 
Reply With Quote
  #8  
Old 09-29-2005, 03:24 AM
Marco van Herwaarden Marco van Herwaarden is offline
 
Join Date: Jul 2004
Posts: 25,415
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

There is no need for the line: $array = array($subcats);

Remove that and it will work.
Reply With Quote
  #9  
Old 09-29-2005, 03:37 AM
Lionel Lionel is offline
 
Join Date: Dec 2001
Location: Delray Beach, Florida
Posts: 3,277
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

:banana: I found a nice article about arrays and I've got everything where I wanted it, only one problem remains and you just gave me perhaps a solution. The count is what is wrong. I have nine items but it is printing 90...

edit: hihihi take that back... the "0" was from an echo I forgot to remove.
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 02:38 PM.


Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2025, vBulletin Solutions Inc.
X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.04751 seconds
  • Memory Usage 2,252KB
  • Queries Executed 11 (?)
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
  • (9)bbcode_php
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)navbar
  • (3)navbar_link
  • (120)option
  • (9)post_thanks_box
  • (9)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (9)post_thanks_postbit_info
  • (9)postbit
  • (9)postbit_onlinestatus
  • (9)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_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