vb.org Archive

vb.org Archive (https://vborg.vbsupport.ru/index.php)
-   vB3 Programming Discussions (https://vborg.vbsupport.ru/forumdisplay.php?f=15)
-   -   Users must post before voting (https://vborg.vbsupport.ru/showthread.php?t=240212)

Pandemikk 04-11-2010 06:42 AM

Users must post before voting
 
How would I go about doing this?

I've tried the below to give me an array but it results in a fatal error.


PHP Code:

$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'.

PHP Code:

$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
PHP Code:

$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

Quote:

Originally Posted by Pandemikk (Post 2019769)
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.
Code:

$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']:
Code:

$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.

----
PHP Code:

$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

PHP Code:

 
$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


All times are GMT. The time now is 05:57 AM.

Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2025, vBulletin Solutions Inc.

X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.01343 seconds
  • Memory Usage 1,773KB
  • Queries Executed 10 (?)
More Information
Template Usage:
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (2)bbcode_code_printable
  • (5)bbcode_php_printable
  • (1)bbcode_quote_printable
  • (1)footer
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (6)option
  • (1)post_thanks_navbar_search
  • (1)printthread
  • (16)printthreadbit
  • (1)spacer_close
  • (1)spacer_open 

Phrase Groups Available:
  • global
  • postbit
  • showthread
Included Files:
  • ./printthread.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/class_bbcode_alt.php
  • ./includes/class_bbcode.php
  • ./includes/functions_bigthree.php 

Hooks Called:
  • init_startup
  • init_startup_session_setup_start
  • init_startup_session_setup_complete
  • cache_permissions
  • fetch_threadinfo_query
  • fetch_threadinfo
  • fetch_foruminfo
  • style_fetch
  • cache_templates
  • global_start
  • parse_templates
  • global_setup_complete
  • printthread_start
  • bbcode_fetch_tags
  • bbcode_create
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • printthread_post
  • printthread_complete