[support] Drupal 5 db_query

Fred Jones fredthejonester at gmail.com
Mon Sep 22 22:47:26 UTC 2008


> I must be misunderstanding the issue .. I understood the OP's use of mysql_*
> as simply being for demonstrative purposes to show the difference in the
> returned results, and the actual question being why does db_query return a
> result of 0 for COUNT(*) when mysql_query returns a result of 4 for
> COUNT(*).

That is precisely correct.

> I'd also like to know what the actual string value of $countsql
> is, and like Michael said, whether the query is being rewritten by another
> module.

Yes, it is rewritten I believe. Here is the actual code in question:

	$r = pager_query($sql,10,0,$countsql);
	$rows = array();
	$output = '';
	while ($row = db_fetch_array($r))
	{
		$rows[] = $row;
	}
	if (0 == count($rows))
	{
		$output = '<p>No results found</p>';
	}

I am getting the "No results found" whereas there should be 4 rows
found. That last if has an else clause to display those, when found.

Here is the SQL:

SELECT COUNT(*) from
	(SELECT field_article_title_value FROM
	(SELECT content_type_book.field_article_title_value, term_node.tid,
node_revisions.nid
	FROM (( node_revisions left join node on node.nid = node_revisions.nid )
		left join content_type_book on content_type_book.nid = node_revisions.nid )
		left join term_node on term_node.nid = node_revisions.nid
	WHERE (1=1)
	and ((UCASE(content_type_book.field_article_author_value) like
UCASE('%Black%')))
	and (1=1)
	and (1=1)
	and node.type='book' group by node_revisions.nid order by
node_revisions.nid ) as XXXXX
group by field_article_title_value, tid order by nid ) as temp_table;

Thanks.


More information about the support mailing list