Jump to content

Recommended Posts

Hello,

i have a table that shows users only if I, as Administrator, want to be shown. But its showing just 1 user and i want to show at least 4. If i copy the code, or use loop, its showing the same user 4 times... How to make it show 4 different users? I tried with "LIMIT 1" changed to LIMIT 4, but nothing happens.

Here are the codes:

PHP code

<?php
////////GET LANG IDS
$aValues = array();
$sSql = " SELECT
`languagevar_id`,
REPLACE(`defVarName`, 'home.', '') AS `key`
FROM `advFetMem_settings` WHERE `defVarName` LIKE '%home.%' ";
$rResult = mysql_query($sSql);
while( ($aRow=mysql_fetch_assoc($rResult)) )
$aValues[ $aRow['key'] ] = $aRow['languagevar_id'];
$smarty->assign('aCusLang_advFetMem', $aValues);

//GET SETTING
$sql ="SELECT `setting_username` FROM `se_settings` LIMIT 1";
$result = mysql_query($sql);
$aRow = mysql_fetch_assoc($result);
$bUserNames = $aRow['setting_username'] == 1 ? TRUE : FALSE;


$iTime = time();
$sql = "SELECT
`u`.`user_id` AS `userId`
FROM `advFetMem_info` AS `i`
INNER JOIN `se_users` AS `u`
ON `u`.`user_id` = `i`.`userid`
WHERE
'".$iTime."' BETWEEN `i`.`start` AND `i`.`end`
ORDER BY RAND()
LIMIT 1";
$result = mysql_query($sql);
$smarty->assign('aAdvFetMem', FALSE);
if( $aRow = mysql_fetch_assoc($result))
{
$tempUser = new se_user(Array($aRow['userId']));
$tempUser->user_displayname();
$aRow['username'] = $tempUser->user_info['user_displayname'];
$aRow['photo'] = $tempUser->user_photo("./images/nophoto.gif", TRUE);
$smarty->assign('aAdvFetMem', $aRow);
}
?>

 

TPL code

{* include_advFetMem_home.tpl 2009-07-21 12:57:53 rhutton *}
{if $aAdvFetMem}

<div class='header'>{lang_print id=$aCusLang_advFetMem.featured_member}</div>
<div class='portal_content'>
<table cellpadding='0' cellspacing='0' align='center'>
<tr>
<td class='portal_member' valign="bottom" style="width:50%;">
<a href='./profile.php?user_id={$aAdvFetMem.userId}'>{$aAdvFetMem.username|truncate:15:"...":true}</a><br />
<a href='./profile.php?user_id={$aAdvFetMem.userId}'><img src='{$aAdvFetMem.photo}' class='photo' width='60' height='60' border='0' alt='' /></a><br />
</td>
</tr>
</table>
</div>
<div class='portal_spacer'></div>
{/if}

 

Thank you!

If using smarty then you need to build an array of users and then pass it into the template. You will then require a foreach construct to display the data

$users = array();
$result = mysql_query("SELECT setting_username FROM se_settings LIMIT 4");
while($row = mysql_fetch_assoc($result)) {
$users[] = $row;
}
$smarty->assign('users', $users);

Then in your tpl

{foreach item=user from=$users}{$user.setting_username}{/foreach}

Add your user objects to an array and then loop out in the template. Use the objects methods in the template i.e. user_displayname();

 

<?php
$aValues = array();
$rResult = mysql_query("SELECT languagevar_id, REPLACE(`defVarName`, 'home.', '') AS key FROM advFetMem_settings WHERE defVarName LIKE '%home.%'");
while($aRow = mysql_fetch_assoc($rResult)) {
$aValues[$aRow['key']] = $aRow['languagevar_id'];
}
$smarty->assign('aCusLang_advFetMem', $aValues);

// obtain settings
$result = mysql_query("SELECT setting_username FROM se_settings LIMIT 1");
$aRow = mysql_fetch_assoc($result);
$bUserNames = $aRow['setting_username'] == 1 ? TRUE : FALSE;

// users
$iTime = time();
$result = mysql_query("SELECT `u`.`user_id` AS `userId` FROM `advFetMem_info` AS `i` INNER JOIN `se_users` AS `u` ON `u`.`user_id` = `i`.`userid` WHERE'".$iTime."' BETWEEN `i`.`start` AND `i`.`end` ORDER BY RAND()");
$smarty->assign('aAdvFetMem', FALSE);
$users = array();
while($row = mysql_fetch_assoc($result)) {
$users[] = new se_user(array($row['userId']));
}
$smarty->assign('users', $users);
?>

i.e loop the users out within the template with a foreach construct

{foreach item=user from=$users}
{$user->user_displayname()}<br />
{/foreach}

If you are not familiar with the code then I suggest you learn from a book or online. http://smarty.net

This thread is more than a year old. Please don't revive it unless you have something important to add.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.