View Full Version : Users must post before voting
Pandemikk
04-11-2010, 06:42 AM
How would I go about doing this?
I've tried the below to give me an array but it results in a fatal error.
$checkpost = $vbulletin->db->query_read("
SELECT username
FROM " . TABLE_PREFIX . "post
WHERE threadid = '".$threadid."'
");
killa seven
04-11-2010, 06:56 AM
what your array code look like
you need to fetch through the results
Pandemikk
04-11-2010, 07:38 AM
I've fixed the fatal error issue. But the following isn't working. It should print out the array but it isnt'.
$threadid = $vbulletin->db->query_first("
SELECT threadid
FROM " . TABLE_PREFIX . "thread
WHERE pollid = '".$pollida."'
");
$checkpost = $vbulletin->db->query_read("
SELECT username
FROM " . TABLE_PREFIX . "post
WHERE threadid = '".$threadid."'
");
while ($posts = $db->fetch_array($checkpost))
{
print_r($posts);
}
killa seven
04-11-2010, 04:35 PM
while($post = $vbulletin->db->fetch_array)
Pandemikk
04-11-2010, 07:49 PM
That returns mysqli_result Object ( ).
killa seven
04-12-2010, 04:03 AM
i had this problem on one of my plugins and thats how i fixed it
$threadid = $vbulletin->db->query_first("
SELECT threadid
FROM " . TABLE_PREFIX . "thread
WHERE pollid = '".$pollida."'
");
$checkpost = $vbulletin->db->query_read("
SELECT username
FROM " . TABLE_PREFIX . "post
WHERE threadid = '".$threadid."'
");
while ($posts = $vbulletin->db->fetch_array($checkpost))
{
print_r($posts);
}
try it like that
Pandemikk
04-12-2010, 05:31 AM
That's what returns mysqli_result Object ( ).
killa seven
04-12-2010, 05:34 AM
That's what returns mysqli_result Object ( ).
weird i didn't know vbulletin has mysqli methods.. could be wrong
its best practice to use $vbulletin-> if your using db->
always fixes most of my problems when i put it in
Marco van Herwaarden
04-12-2010, 09:16 AM
In the following code, $threadid is an array with the contents of a single database row.
$threadid = $vbulletin->db->query_first("
SELECT threadid
FROM " . TABLE_PREFIX . "thread
WHERE pollid = '".$pollida."'
");
So to use the threadid in the next query, you will need to use $threadid['threadid']:
$checkpost = $vbulletin->db->query_read("
SELECT username
FROM " . TABLE_PREFIX . "post
WHERE threadid = ".$threadid['threadid']."
Pandemikk
04-13-2010, 12:42 AM
Ahhh^
I should have known that!
Thanks Marco.
----
$posthreadid = $vbulletin->db->query_first("
SELECT threadid
FROM " . TABLE_PREFIX . "thread
WHERE pollid = '".$pollida."'
");
$checkpost = $vbulletin->db->query_read("
SELECT username
FROM " . TABLE_PREFIX . "post
WHERE threadid = ".$posthreadid['threadid']."
");
while ($posts = $vbulletin->db->fetch_array($checkpost))
{
if ($posts['username'] != $vbulletin->userinfo['username'])
{
standard_error(fetch_error('bs_postfirst'));
}
}
The array is perfect. But how would I go about checking each result to $vbulletin->userinfo['username'] ?
I thought the above code would work.
Marco van Herwaarden
04-13-2010, 07:55 AM
And what still doesn't work now? On first sight it looks ok.
Pandemikk
04-13-2010, 08:08 PM
All users are getting you must post before voting error messages even if they have posted before.
killa seven
04-13-2010, 08:10 PM
$pollida = $pollinfo['pollid'];
$posthreadid = $vbulletin->db->query_first("
SELECT threadid
FROM " . TABLE_PREFIX . "thread
WHERE pollid = '".$pollida."'
");
$checkpost = $vbulletin->db->query_read("
SELECT username
FROM " . TABLE_PREFIX . "post
WHERE threadid = ".$posthreadid['threadid']."
");
while ($posts = $vbulletin->db->fetch_array($checkpost))
{
if ($posts['username'] != $vbulletin->userinfo['username'])
{
standard_error(fetch_error('bs_postfirst'));
}
}
on line 4 you don't have $pollida equal to anything i fixed it
Pandemikk
04-13-2010, 09:11 PM
I have $pollida = $pollinfo['pollid']; earlier in my code.
Pandemikk
04-16-2010, 11:58 PM
Bump
Pandemikk
04-26-2010, 06:14 AM
bump
vBulletin® v3.8.12 by vBS, Copyright ©2000-2025, vBulletin Solutions Inc.