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 07-12-2006, 10:27 AM
Antiblank Antiblank is offline
 
Join Date: May 2005
Location: PDX
Posts: 61
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default Creating new rows in a table dynamically

With some help I've managed to come up with a chunk of code to pull the avatar, username, and a link back to the profile for members of specified usergroups to any page outside of the vB (or could be inside) directory.

The issue I have currently is just with the php code. I need to adapet my code so that after displaying 6 results in the <td> tag they will start a new <tr> for the table. As it stands right now it's just creating a single massivly long row with every result which I can asure you is quite unattractive.

Here is the code I have, thanks for any insight.

Code:
<table width="988" border="0" align="center" cellpadding="0" cellspacing="0" nowrap="nowrap">
  <tr>
    <td align="center" nowrap="nowrap">
<?php
     $query = mysql_query("SELECT customavatar.filename, customavatar.userid, user.username, user.avatarrevision FROM customavatar LEFT JOIN user USING (userid) WHERE user.usergroupid = '10'");
while ($row = mysql_fetch_assoc($query))
{
echo '<td>';
echo '<a href="http://www.mysite.com/boards/'.$row['username'].'">'; 
echo '<img src="http://www.mysite.com/boards/customavatars/avatar'.$row['userid'].'_'.$row['avatarrevision'].'.gif">'; // Avatar image
echo '<br>';
echo '<center><a href="http://www.mysite.com/boards/'.$row['username'].'">'.$row['username'].'</a></center>'; // linked username
echo '</td>';
}
?> 
</td>
  </tr>
</table>
Reply With Quote
  #2  
Old 07-12-2006, 11:20 AM
amykhar's Avatar
amykhar amykhar is offline
 
Join Date: Oct 2001
Location: PA
Posts: 4,438
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Try this:
Code:
<table width="988" border="0" align="center" cellpadding="0" cellspacing="0" nowrap="nowrap">

    
<?php
$counter = 0;
     $query = mysql_query("SELECT customavatar.filename, customavatar.userid, user.username, user.avatarrevision FROM customavatar LEFT JOIN user USING (userid) WHERE user.usergroupid = '10'");
while ($row = mysql_fetch_assoc($query))
{
if($counter == 6 OR $counter==0)
{
$counter = 0;
echo '  <tr><td align="center" nowrap="nowrap">';
echo '<a href="http://www.mysite.com/boards/'.$row['username'].'">'; 
echo '<img src="http://www.mysite.com/boards/customavatars/avatar'.$row['userid'].'_'.$row['avatarrevision'].'.gif">'; // Avatar image
echo '<br>';
echo '<center><a href="http://www.mysite.com/boards/'.$row['username'].'">'.$row['username'].'</a></center>'; // linked username
echo '</td></tr>';
}
else
{
echo '  <td align="center" nowrap="nowrap">';
echo '<a href="http://www.mysite.com/boards/'.$row['username'].'">'; 
echo '<img src="http://www.mysite.com/boards/customavatars/avatar'.$row['userid'].'_'.$row['avatarrevision'].'.gif">'; // Avatar image
echo '<br>';
echo '<center><a href="http://www.mysite.com/boards/'.$row['username'].'">'.$row['username'].'</a></center>'; // linked username
echo '</td>';
}
$counter++;
}
?> 

</table>
Reply With Quote
  #3  
Old 07-12-2006, 11:45 AM
Antiblank Antiblank is offline
 
Join Date: May 2005
Location: PDX
Posts: 61
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Well the code displays the avatars correctly the way mine did, and it is splitting them into rows. But the very odd thing. Out of 10 returned results they are displaying:

Row 1: 1 result
Row 2: 5 results
Row 3: 1 result
Row 4: 3 results

By the way outstanding work getting me this far into row. Almost excitement enough to wake me back up!

I tried changing the number in the conter:

Counter set to 5:
Row 1: 1 result
Row 2: 4 results
Row 3: 1 result
Row 4: 4 results

Counter set to 4:
Row 1: 1 result
Row 2: 3 results
Row 3: 1 results
Row 4: 3 results
Row 5: 1 result
Row 6: 1 result

hehe I'm seeing a pattern but not quite sure how to fix it.

I worked through and was finally able to get it to function. Here is what I came up with so I can share.

Code:
<table width="988" border="0" align="center" cellpadding="0" cellspacing="0" nowrap="nowrap">
<?php
 $counter = 0; 
 $query = mysql_query("SELECT customavatar.filename, customavatar.userid, user.username, user.avatarrevision FROM customavatar LEFT JOIN user USING (userid) WHERE user.usergroupid = '10' ORDER BY 'username' ASC LIMIT 0,60 "); 
 echo '<tr>'; 
 while ($row = mysql_fetch_assoc($query)) 
 { 
   $counter++; 
   echo '<td align="center" nowrap="nowrap">'; 
   echo '<a href="http://www.mysite.com/boards/'.$row['username'].'">'; 
   echo '<img src="http://www.mysite.com/boards/customavatars/avatar'.$row['userid'].'_'.$row['avatarrevision'].'.gif">'; // Avatar image 
   echo '<br>'; 
   echo '<center><a href="http://www.mysite.com/boards/'.$row['username'].'">'.$row['username'].'</a></center>'; // linked username 
   echo '</td>'; 
   if($counter%6==0) 
     echo '</tr><tr>'; 
 } 
 echo '</tr>';
?> 
</table>
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 04:03 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.03852 seconds
  • Memory Usage 2,184KB
  • 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
  • (3)bbcode_code
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)navbar
  • (3)navbar_link
  • (120)option
  • (3)post_thanks_box
  • (3)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (3)post_thanks_postbit_info
  • (3)postbit
  • (3)postbit_onlinestatus
  • (3)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