The Arcive of Official vBulletin Modifications Site.It is not a VB3 engine, just a parsed copy! |
|
#1
|
|||
|
|||
![]()
Just started to play around with php and sql stuff but don't feel that comfortable with it yet.
I am trying to create a custom page with a member list on the fly. Our member list changes almost every 2 weeks and I wanted my users to be able to get an actual member list without me having to create one every time and post it somewhere. I tried my coding as below out and works pretty well. However I wanted to be sure I didn't forget anything that mitt use a lot of server resources. For example do I have to clear the sql request after the page is created? If so how do I do that. Also I would like to add the "join date" field next to the username. When I just put in "join date" I get just that numeric number from the DB. How do I convert it to a readable date? Thanks for any help or suggestions Code:
<table width="100%" cellspacing="3" cellpadding="20"> <center><b><u><font color=#855b63 size=6>Memberlist <center></b></u></font> <br /> <br /> <?php $result_q = $vbulletin->db->query_read("SELECT username, joindate FROM user WHERE user.usergroupid <> '12' AND user.usergroupid = '9' AND user.membergroupids <> '13' AND user.membergroupids NOT LIKE '%12%' ORDER BY user.username"); if ($vbulletin->db->num_rows($result_q) >0) { $i = 0; $max_columns = 4; while ($result_r = $vbulletin->db->fetch_array($result_q)) { // make the variables easy to deal with // extract($row); // open row if counter is zero if($i == 0) echo "<tr>"; if($result_q != "" && $result_q != null) echo "<td><center><font color=#855b63 size=3>$result_r[username] <center></font></td>"; // increment counter - if counter = max columns, reset counter and close row if(++$i == $max_columns) { echo "</tr>"; $i=0; } // end if } // end while } // end if results // clean up table - makes your code valid! if($i < $max_columns) { for($j=$i; $j<$max_columns;$j++) echo "<td> </td>"; } ?> </tr> <form><input type="button" value=" Print this page " onclick="window.print();return false;" /></form> </table> |
#2
|
|||
|
|||
![]()
I don't think you have to worry about resources. If you're someone who likes to have everything cleaned up you could add $vbulletin->db->free_result($result_q), but I don't think it will make any difference.
As for the date, you can use the vbdate() function to format the value, like: Code:
$datestr = vbdate($vbulletin->options['dateformat'], $joindate); |
#3
|
|||
|
|||
![]()
thx for your quick help.
I tried to put the $datestr at several places in my script but no luck finding where to put it. When I put it below the first "if" statement the it kinda worked but everybody had the same join date in the list. Where should I put it? thx again |
#4
|
|||
|
|||
![]()
You'd want the $datestr line to be after the while() but before it's displayed (of course). I just meant to post an example, but I guess I should have just used the actual join date from the row you're reading:
Code:
$datestr = vbdate($vbulletin->options['dateformat'], $result_r['joindate']); |
#5
|
|||
|
|||
![]() Quote:
![]() Just kidding with you. Works great now. Really appreciate your quick help |
#6
|
|||
|
|||
![]() Quote:
If you have a busy forum and you expect this page to be displayed a lot (and it's not constantly changing - and you don't need it to be instanly up to date), you could save the results in the datastore and only recalculate them periodically. But unless all that's true, or you just want to learn how to do it, it's probably not necessary. |
#7
|
|||
|
|||
![]() Quote:
Going to try to find some threads regarding this how to write my query into the datastore and retrieve it |
![]() |
|
|
X vBulletin 3.8.12 by vBS Debug Information | |
---|---|
|
|
![]() |
|
Template Usage:
Phrase Groups Available:
|
Included Files:
Hooks Called:
|