The Arcive of Official vBulletin Modifications Site.It is not a VB3 engine, just a parsed copy! |
|
#1
|
|||
|
|||
Widget to Show uCash Leaders
Hi All,
I've written some code (my first ever SQL/PHP code write, actually) that simply takes each users' Ucash balance and displays them in descending order, stopping at the 20th ranked person. Running this code directly from a PHP file on my site works great, but I'm trying to get it into a CMS widget and I'm having a little trouble with the concept of using the $output variable rather than echo. Obviously just changing every instance of "echo" to "$output" doesn't work, what am I doing wrong? Here is the code raw: Code:
$user=$_POST['user']; $username=$_POST['username']; $ucash=$_POST['ucash']; $query = "SELECT * FROM `user` ORDER BY `user`.`ucash` DESC"; $result=mysql_query($query); $num="20"; mysql_close(); echo "<b>Vcash Leaderboard</center></b><br><br>"; ?> <table border=0> <tr><td><b>Username</b></td><td><b>vCash</b></td></tr> <? $i=0; while ($i < $num) { $rank=$i+1; $username=mysql_result($result,$i,"username"); $ucash=mysql_result($result,$i,"ucash"); ?> <tr><td><?echo "$rank. $username"; ?> </td> <td>$<?echo ROUND("$ucash"); ?> </td> </tr> <? $i++; } echo "</table>"; Does anyone have any pointers on what I need to change in this code to make it work in the php direct execution widget? Essentially, when I paste this code in exactly as it is, it runs the script just fine... but it displays at the top of the page above the header. --------------- Added [DATE]1323475015[/DATE] at [TIME]1323475015[/TIME] --------------- Whoops, can somebody move this to the VB4 programming section? My apologies! |
#2
|
|||
|
|||
I think you were close with the $output thing, you should just be able to replace each echo with "$output .=", like
Code:
$output .= "<b>Vcash Leaderboard</center></b><br><br>"; You'll also need to change the part where you use ?> and <? around some html to be a string constant instead, and then assign it to $output the same way, like Code:
$output .= "<tr><td>$rank$username</td> <td>$" . ROUND($ucash) . "</td> </tr>"; If you had a lot of code you could also surround it with ob_start() and ob_end_clean() to buffer the output, but you only have a few lines so you might as well make the changes to assign to $output. |
Благодарность от: | ||
ZacFields |
#3
|
|||
|
|||
kh99 - thank you so much. I guess I was just using the output function wrong (I wasn't putting the period in front of it and I think I was messing up the apostrophes and semicolon), but your example helped and I think I've got it working now!
Again, this was my very first raw PHP/SQL code write. Through research I was able to write the code, but my understanding of what I'm writing is still a little fuzzy. Thanks again! |
Thread Tools | |
Display Modes | |
|
|
X vBulletin 3.8.12 by vBS Debug Information | |
---|---|
|
|
More Information | |
Template Usage:
Phrase Groups Available:
|
Included Files:
Hooks Called:
|