PDA

View Full Version : Loop within a loop


Mythotical
12-14-2009, 04:43 AM
I am trying to display 2 screenshots for one file and 1 screenshot for another file but the second file takes on all 3 screenshots while the first file takes on its 1 screenshot which it should do.

Screenshot provide as to what it is doing.

Here is the code:
$query = $db->query_read("SELECT * FROM " . TABLE_PREFIX . "download WHERE catid = '" . $cid . "' LIMIT " . ($limitlower - 1) . ", $perpage");
$pagenav = construct_page_nav($pagenumber, $perpage, $filecount['filecount'], 'download.php?' . $vbulletin->session->vars['sessionurl'] . 'do=cat&catid='. $cid . '');
while ($dl = $db->fetch_array($query))
{
$fid = $dl['file_id'];

$moderated = $dl['moderated'];
$version = $dl['version'];
$name = $dl['name'];
$title = $dl['title'];
$size = $dl['size'];
$description = $dl['description'];
$username = $dl['username'];
$userid = $dl['userid'];
$ugpid = $dl['usergroupid'];
$bytes = vbmksize($size);
$fileview = $ugpid;

if (!empty($ugpid))
{
$ugpids = explode(',', $ugpid);
}
else
{
$ugpids = array('0');
}
$myids = '';
if ($vbulletin->userinfo['membergroupids'] == '')
{
$myids = array($vbulletin->userinfo['usergroupid']);
}
else
{
$myids = explode(',',$vbulletin->userinfo['membergroupids']);
}

$showfile = 0;

if (!empty($ugpid))
{
for ($i=0; $i<=20; $i++)
{
if (in_array($ugpids[$i], $myids))
{
$showfile = 1;
}
}
}

$screenshots = $vbulletin->db->query_read("SELECT * FROM download_screenshots WHERE file_id = '".$fid."' LIMIT 3");
$screenshotcount = $vbulletin->db->num_rows($screenshots);
while ($screenshota = $vbulletin->db->fetch_array($screenshots))
{
$sid = $screenshota['sid'];
$screenshot = $screenshota['sdata'];
eval('$screenshots_dis .= "' . fetch_template('bfc_download_screenshot_bit') . '";');
}

eval('$display_bit .= "' . fetch_template('bfc_download_bit') . '";');
unset($sid);
}

I wanted to do a more accurate loop before displaying but for the life of me I can't figure out one that will work.

Lynne
12-14-2009, 03:43 PM
Perhaps you need to zap $screenshots_dis to '' before going into the loop otherwise it is already has content.

Mythotical
12-14-2009, 03:53 PM
LOL what in the world are you talking about? I'm confused now.

Lynne
12-14-2009, 03:57 PM
$screenshots_dis = '';
while ($screenshota = $vbulletin->db->fetch_array($screenshots))
{
$sid = $screenshota['sid'];
$screenshot = $screenshota['sdata'];
eval('$screenshots_dis .= "' . fetch_template('bfc_download_screenshot_bit') . '";');
}

Mythotical
12-14-2009, 04:39 PM
Oh duh, didn't realize that is what you meant, '' looks like quotes instead of ' '. Got it now, thanks alot.