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 04-06-2009, 02:17 AM
Excalibur82 Excalibur82 is offline
 
Join Date: Dec 2008
Posts: 175
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default Display issue

I'm having an issue with a mod I'm creating for my site. Right now I have it saving screenshots to the database along with files. When you view the page, it lists the first file in the db twice and since it has 2 screenshots, the first duplicate shows one screenshot, then the second duplicate shows 2 screenshots.

Here is the code:
PHP Code:
$query $db->query_read("SELECT * FROM " TABLE_PREFIX "download AS download 
                          LEFT JOIN " 
TABLE_PREFIX "download_screenshots AS screenshots ON (screenshots.file_id = download.id)");
    while (
$dl $db->fetch_array($query))
        {
            
$id $dl['id'];
            
$version $dl['version'];
            
$name $dl['name'];
            
$size $dl['size'];
            
$description $dl['description'];
            
$username $dl['username'];
            
$userid $dl['userid'];
            
$sid $dl['sid'];
            
$screenshot $dl['sdata'];

            eval(
'$display_shots .= "' fetch_template('bfc_download_screenshot_display') . '";');
            eval(
'$display_bit .= "' fetch_template('bfc_download_bit') . '";');

        }

$navbits = array();
$navbits[$parent] = 'Download :: Index';

$navbits construct_navbits($navbits);

eval(
'$display = "' fetch_template('bfc_download_main') . '";'); 
I have attached a screenshot for you to view.

As you can see from the screenshot, Your Linker.zip is the entry that shows up twice when I have checked the db and it is only in the db once.
Attached Images
File Type: gif screenie.gif (17.3 KB, 0 views)
Reply With Quote
  #2  
Old 04-06-2009, 02:36 AM
Lynne's Avatar
Lynne Lynne is offline
 
Join Date: Sep 2004
Location: California/Idaho
Posts: 41,180
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

If you are only expecting one result, why aren't you using query_first ? Then you don't need to do your while loop.
Reply With Quote
  #3  
Old 04-06-2009, 02:54 AM
Excalibur82 Excalibur82 is offline
 
Join Date: Dec 2008
Posts: 175
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Its supposed to be all records from the database. There are screenshots in the database for each file record that need to be pulled and displayed with the file.

The screenshot only shows those 2 entries as thats where my problem is, there are a total of 3 files in the db. All 3 show though, but the first duplicates.
Reply With Quote
  #4  
Old 04-06-2009, 03:53 AM
Lynne's Avatar
Lynne Lynne is offline
 
Join Date: Sep 2004
Location: California/Idaho
Posts: 41,180
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Each time you go through the loop, you are adding to $display_shots. I assume $display_shots is then used in $display_bit? The first time you go through the loop, you will have one display shot, then the second time, two display shots, then the third time, three display shots, etc. Don't use ".=", use just "=" if you don't want that to happen.
Reply With Quote
  #5  
Old 04-06-2009, 04:01 AM
Excalibur82 Excalibur82 is offline
 
Join Date: Dec 2008
Posts: 175
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Ok, I tried it, did nothing but make it 1 screenshot per duplicate. So I still have duplicates, same issue with screenshots. Do you need to view any templates or anymore php code?
Reply With Quote
  #6  
Old 04-06-2009, 04:09 AM
Dismounted's Avatar
Dismounted Dismounted is offline
 
Join Date: Jun 2005
Location: Melbourne, Australia
Posts: 15,047
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

So what is the code you are using now?
Reply With Quote
  #7  
Old 04-06-2009, 04:11 AM
Excalibur82 Excalibur82 is offline
 
Join Date: Dec 2008
Posts: 175
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

I'm using this, only changed what Lynne suggested above.

PHP Code:
$query $db->query_read("SELECT * FROM " TABLE_PREFIX "download AS download 
                          LEFT JOIN " 
TABLE_PREFIX "download_screenshots AS screenshots ON (screenshots.file_id = download.id)");
    while (
$dl $db->fetch_array($query))
        {
            
$id $dl['id'];
            
$version $dl['version'];
            
$name $dl['name'];
            
$size $dl['size'];
            
$description $dl['description'];
            
$username $dl['username'];
            
$userid $dl['userid'];
            
$sid $dl['sid'];
            
$screenshot $dl['sdata'];

            eval(
'$display_shots = "' fetch_template('bfc_download_screenshot_display') . '";');
            eval(
'$display_bit .= "' fetch_template('bfc_download_bit') . '";');

        }

$navbits = array();
$navbits[$parent] = 'Download :: Index';

$navbits construct_navbits($navbits);

eval(
'$display = "' fetch_template('bfc_download_main') . '";'); 
Reply With Quote
  #8  
Old 04-06-2009, 04:22 AM
Dismounted's Avatar
Dismounted Dismounted is offline
 
Join Date: Jun 2005
Location: Melbourne, Australia
Posts: 15,047
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

What is being displayed? (i.e. provide screenshot)

I'm not really understanding what is duplicating.
Reply With Quote
  #9  
Old 04-06-2009, 04:32 AM
Excalibur82 Excalibur82 is offline
 
Join Date: Dec 2008
Posts: 175
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Oh guess that would help. lol

I took it down to only 2 entries.

First screenshot is the duplicate entries showing.

Second screenshot is the bottom of the record list showing the last entry that has no screenshot attached to it yet.
Attached Images
File Type: gif screenie.gif (12.3 KB, 0 views)
File Type: gif screenie2.gif (6.5 KB, 0 views)
Reply With Quote
  #10  
Old 04-07-2009, 06:14 PM
Excalibur82 Excalibur82 is offline
 
Join Date: Dec 2008
Posts: 175
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Lynne, Dismounted, did you both give up me already? LOL
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 01:25 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.04413 seconds
  • Memory Usage 2,302KB
  • Queries Executed 14 (?)
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
  • (2)bbcode_php
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)navbar
  • (3)navbar_link
  • (120)option
  • (1)pagenav
  • (1)pagenav_curpage
  • (2)pagenav_pagelink
  • (10)post_thanks_box
  • (10)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (10)post_thanks_postbit_info
  • (10)postbit
  • (3)postbit_attachment
  • (10)postbit_onlinestatus
  • (10)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_attachment
  • postbit_display_complete
  • post_thanks_function_can_thank_this_post_start
  • pagenav_page
  • pagenav_complete
  • tag_fetchbit_complete
  • forumrules
  • navbits
  • navbits_complete
  • showthread_complete