vb.org Archive

vb.org Archive (https://vborg.vbsupport.ru/index.php)
-   vB3 General Discussions (https://vborg.vbsupport.ru/forumdisplay.php?f=111)
-   -   What Am I Doing Wrong? (https://vborg.vbsupport.ru/showthread.php?t=92572)

ManagerJosh 07-20-2005 09:13 PM

What Am I Doing Wrong?
 
Tried executing this query, but keep getting a database error, 1064



PHP Code:

$pms $db->query_read("
  SELECT pm.*, pmtext.*
   " 
iif($vbulletin->options['privallowicons'], ", icon.title AS icontitle, icon.iconpath") . "
  FROM " 
TABLE_PREFIX "pm AS pm
  LEFT JOIN " 
TABLE_PREFIX "pmtext AS pmtext ON(pmtext.pmtextid = pm.pmtextid)
  " 
iif($vbulletin->options['privallowicons'], "LEFT JOIN " TABLE_PREFIX "icon AS icon ON(icon.iconid = pmtext.iconid)") . "
  WHERE pm.userid=
$userid AND pm.folderid=$folderid
  ORDER BY pmtext.dateline DESC
 "
); 



MySQL Error : You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'ORDER BY pmtext.dateline DESC' at line 7

Error Number : 1064

Brad 07-20-2005 10:57 PM

Unless it changed in a later beta, iif is no longer a vaild function AFAIK.

Link14716 07-20-2005 10:59 PM

iif sucked anyways.

iif($condition, $true, $false) should be ($condition ? $true : $false).

Marco van Herwaarden 07-21-2005 03:39 AM

Check if $folderid is not empty.

ManagerJosh 07-23-2005 10:10 AM

I'm using:

PHP Code:

$messagecounters = array();
$pmcounts $db->query_read("
    SELECT COUNT(*) AS total, folderid
    FROM " 
TABLE_PREFIX "pm AS pm
    LEFT JOIN " 
TABLE_PREFIX "pmtext AS pmtext USING(pmtextid)
    WHERE userid = 
$userid
    GROUP BY folderid
"
);
while (
$pmcount $db->fetch_array($pmcounts))
{
    
$messagecounters["$pmcount[folderid]"] = intval($pmcount['total']);
}

$links = array();
foreach (
$folders AS $key => $value)
{
    
$links[] = '<a href="' THIS_SCRIPT "?userid=$userid&amp;folderid=$key\">$value (" intval($messagecounters["$key"]) . ")</a>";


What did I do wrong?

Marco van Herwaarden 07-23-2005 10:31 AM

PHP Code:

while ($pmcount $db->fetch_array($pmcounts)) 

    
$messagecounters["$pmcount[folderid]"] = intval($pmcount['total']); 


$links = array(); 
foreach (
$folders AS $key => $value

Shouldn't that be:
PHP Code:

while ($pmcount $db->fetch_array($pmcounts)) 

    
$messagecounters["$pmcount[folderid]"] = intval($pmcount['total']); 


$links = array(); 
foreach (
$messagecountersAS $key => $value


Logikos 07-23-2005 10:52 AM

Acually you made a type-o Marco.
PHP Code:

 while ($pmcount $db->fetch_array($pmcounts)) 

    
$messagecounters["$pmcount[folderid]"] = intval($pmcount['total']); 


$links = array(); 
foreach (
$messagecountersAS $key => $value

Should be:
PHP Code:

 while ($pmcount $db->fetch_array($pmcounts)) 

    
$messagecounters["$pmcount[folderid]"] = intval($pmcount['total']); 


$links = array(); 
foreach (
$messagecounters AS $key => $value

You forgot the space before AS :)

ManagerJosh 07-23-2005 11:26 AM

Quote:

Originally Posted by Live Wire
Acually you made a type-o Marco.
PHP Code:

while ($pmcount $db->fetch_array($pmcounts)) 

$messagecounters["$pmcount[folderid]"] = intval($pmcount['total']); 

 
$links = array(); 
foreach (
$messagecountersAS $key => $value

Should be:
PHP Code:

while ($pmcount $db->fetch_array($pmcounts)) 

$messagecounters["$pmcount[folderid]"] = intval($pmcount['total']); 

 
$links = array(); 
foreach (
$messagecounters AS $key => $value

You forgot the space before AS :)

Database error in vBulletin 3.5.0 Beta 4:

Invalid SQL:

Code:

SELECT pm.*, pmtext.*
                        , icon.title AS icontitle, icon.iconpath
                FROM pm AS pm
                LEFT JOIN pmtext AS pmtext ON(pmtext.pmtextid = pm.pmtextid)
                LEFT JOIN icon AS icon ON(icon.iconid = pmtext.iconid)
                WHERE pm.userid=1 AND pm.folderid=
                ORDER BY pmtext.dateline DESC;
 
MySQL Error : You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'ORDER BY pmtext.dateline DESC' at line 7
Error Number : 1064


Appears to be:

PHP Code:

if (empty($_REQUEST['pmid']))
{
$vbulletin->input->clean_array_gpc($_REQUEST, array('folderid' => INT));
$pms $db->query_read("
SELECT pm.*, pmtext.*
iif($vbulletin->options['privallowicons'], ", icon.title AS icontitle, icon.iconpath") . "
FROM " 
TABLE_PREFIX "pm AS pm
LEFT JOIN " 
TABLE_PREFIX "pmtext AS pmtext ON(pmtext.pmtextid = pm.pmtextid)
iif($vbulletin->options['privallowicons'], "LEFT JOIN " TABLE_PREFIX "icon AS icon ON(icon.iconid = pmtext.iconid)") . "
WHERE pm.userid=
$userid AND pm.folderid=$folderid
ORDER BY pmtext.dateline DESC
"
); 

Okay, looking at that SQL query....ARGH :| No idea what's wrong :|

Marco van Herwaarden 07-23-2005 11:28 AM

Yeah i saw after i submitted (double click not only select the word, but also the space after), but i thought he would figure that out.

Logikos 07-23-2005 11:50 AM

That error is due to one of two possiablities.
1) pm.userid is showing up as empty.
Or
2) pm.folderid is showing up as empty

ManagerJosh 07-23-2005 06:02 PM

Quote:

Originally Posted by Live Wire
That error is due to one of two possiablities.
1) pm.userid is showing up as empty.
Or
2) pm.folderid is showing up as empty

i'm leaning towards pm.folderid being empty as if you look at the SQL error, a userid is specified.

Now to figure out why folderid isn't being generated...

Logikos 07-23-2005 07:40 PM

Well your default inbox is folderid 0. Do some debugging. Change this line:

PHP Code:

WHERE pm.userid=$userid AND pm.folderid=$folderid 

To
PHP Code:

WHERE pm.userid=$userid AND pm.folderid='0' 

If you do not get an error when you refresh the page then you need to make sure that the $folderid variable is holding some information. Look above your code and see if anything says $folderid = $var.

ManagerJosh 07-23-2005 10:08 PM

1 Attachment(s)
Quote:

Originally Posted by Live Wire
Well your default inbox is folderid 0. Do some debugging. Change this line:

PHP Code:

WHERE pm.userid=$userid AND pm.folderid=$folderid 

To
PHP Code:

WHERE pm.userid=$userid AND pm.folderid='0' 

If you do not get an error when you refresh the page then you need to make sure that the $folderid variable is holding some information. Look above your code and see if anything says $folderid = $var.

or you could take a look at the hack yourself :p

I'm trying to port one of Scott's other hacks..

Logikos 07-23-2005 11:02 PM

1 Attachment(s)
As supected, $folderid was empty and not defined. vBulletin 3.5.0 no longer uses INT .
This:
PHP Code:

$vbulletin->input->clean_array_gpc($_REQUEST, array('folderid' => INT)); 

Should Be:
PHP Code:

$vbulletin->input->clean_array_gpc($_REQUEST, array('folderid' => TYPE_INT)); 

But for some reason that was not working, i'm not going to lose sleep over why that isn't working as it should so I just replaced it with
PHP Code:

$folderid $_REQUEST['folderid']; 

Does the job for now.

Marco van Herwaarden 07-24-2005 05:00 AM

Then at least make that:
PHP Code:

$folderid intval($_REQUEST['folderid']); 


Dream 07-24-2005 06:03 AM

Quote:

Originally Posted by ManagerJosh
or you could take a look at the hack yourself :p

I'm trying to port one of Scott's other hacks..

what does this one do that mine doesnt?

Logikos 07-24-2005 06:57 AM

Opps, good point Marco, Thanks for that

ManagerJosh 07-24-2005 08:01 AM

Quote:

Originally Posted by MarcoH64
Then at least make that:
PHP Code:

$folderid intval($_REQUEST['folderid']); 


Okay, dealing with a small bug here....it appears to be only listing the number of PMs in the folder

ie: # (#) rather than Inbox (#)

Logikos 07-24-2005 04:25 PM

The inbox is also considered a folder.


All times are GMT. The time now is 02:17 PM.

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.01368 seconds
  • Memory Usage 1,813KB
  • 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
  • (1)bbcode_code_printable
  • (18)bbcode_php_printable
  • (5)bbcode_quote_printable
  • (1)footer
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (6)option
  • (1)post_thanks_navbar_search
  • (1)printthread
  • (19)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