Version: , by Dean C
Developer Last Online: Nov 2023
Version: Unknown
Rating:
Released: 04-30-2003
Last Update: Never
Installs: 0
No support by the author.
I have this one user on my forums. Lets call him Bob. Now in his profile with the awards each award is listed 5 times. Now as far as i can tell from editing some people's profiles in the ACP it is only happening to this user. I just can't pick up on why this happening.
Now one thing i can confirm is that each award appears 5 times. Now if i click the one awards tick box once out of the five times it appears - when going back to the page all five tickboxes are clicked for that award. So it's definately a case of a faulty loop of some sort.
Here is the code from user.php to generate the list of awards. Can someone perhaps pinpoint any possible problems with a certain users name or if the email contains special characters or something like that...
PHP Code:
// award/medals/card hack by lesane
maketableheader("Awards");
makeyesnocode("Enable awards for $user[username]?","hasaward",$user[award]);
$result = mysql_query("SELECT * FROM useraward where userid='$user[userid]'");
if ($row = mysql_fetch_array($result)) {
$toegang="yes";
} else {
$toegang="no";
}
if ($toegang=="yes") {
$result=$DB_site->query("SELECT awardsid,name,url,userid,aw FROM useraward where userid=$user[userid]");
while($award = mysql_fetch_array($result) ) {
$lesane="yes";
$id = $award[awardsid];
if($award[aw] == "$id" and $award[userid] == "$user[userid]") {
$lala=" checked";
$up="equal";
} else {
$lala="";
$up="not_equal";
}
Useless reply but I ditched that horrible awards hack a long time ago; at WDF I simply have an admin-only-editable hidden profile field that has the actual HTML for the awards
Yesterday at 09:06 PM filburt1 said this in Post #2 Useless reply but I ditched that horrible awards hack a long time ago; at WDF I simply have an admin-only-editable hidden profile field that has the actual HTML for the awards
Hey... thats a really good idea, but I like being able to hit the checkbox to add them. Needless to say though, it was a good move just adding the field, because not only can it display in the postbit, but it shows up in the profile too
Ok i have not found the cause of this problem but i've made some progress. I counted the num of rows outputted by the loop. And outputted it. Now I have 5 awards and for this user the query is looping 5 times so in total it performs 25 queries
Now i kind of solved it in the admin cp by making a new setting in the vbulletin options which i enter how many awards there are and then add a LIMIT $numawards to the query. $numawards being the global variable. Now this solved the problem in the ACP. But in functions.php the global variable cannot be accessed - therefore i can't stop the award looping in the postbit too
I noticed the hack wasn't using some of the standard vB functions for accessing mysql stuff, so I fixed that, but I doubt it will correct the situation with your multiple's of 5...
I'm going to D/L the hack itself and take a look at it, I'm looking at variables that I have no clue what they mean or anything..
PHP Code:
// award/medals/card hack by lesane
maketableheader("Awards");
makeyesnocode("Enable awards for $user[username]?","hasaward",$user[award]);
$result = $DB_site->query_first("SELECT * FROM useraward where userid='$user[userid]'");
if (isset($result[userid])) { $toegang="yes"; } else { $toegang="no"; }