[Mediawiki-l] Any help on sophisticated MySQL-Statemanet

Stefan Werthmann werthmann at psycholutions.de
Thu Apr 14 15:42:15 UTC 2011


Hey daniel,


you'r not working blind. It's exactly what I needed (results compared with
the ugly code) :-)!
Never really realized that $wg is reserved.
I'm doing this for a function called: wfAjaxSexyHistoryUpdate() :-).

Could you prepare a last translation?

$qString = "SELECT cl_to,count(*) as cl_count from
".$wgDBprefix."categorylinks where cl_from='".$pidsArray[$i]."' group by
cl_to having cl_count >0";

It would be for another, last case. Maybe I should try it by myself- but I'
am a API-beginner and you are very quick ;-).            

c u stevie



-----Ursprüngliche Nachricht-----
Von: mediawiki-l-bounces at lists.wikimedia.org
[mailto:mediawiki-l-bounces at lists.wikimedia.org] Im Auftrag von Daniel
Friesen
Gesendet: Donnerstag, 14. April 2011 17:13
An: MediaWiki announcements and site admin list
Betreff: Re: [Mediawiki-l] Any help on sophisticated MySQL-Statemanet

I'm still working a little blind, I don't have enough detailed information
and context on what exactly you're trying to do to give the best suggestion.
I don't know if this is exactly what is wanted since I don't have data to
test it on. And I'm not sure atm if a JOIN, LEFT JOIN, or RIGHT JOIN is
best.

$res = $db->select(
	array( 'categorylinks', 'imagelinks', 'page' ),
	array( 'page_id', 'cl_to', 'COUNT(cl_to) as cl_count' ),
	array(
		'page_id' => $pidsArray,
		'page_namespace' => NS_FILE,
	),
	__METHOD__,
	array( 'GROUP BY' => 'cl_to' ),
	array(
		'imagelinks' => array( 'JOIN', 'il_from=cl_from' ),
		'page' => array( 'JOIN', 'page_title=il_to' ),
	)
);
foreach ( $res as $row ) {
	$row->page_id;
	$row->cl_to;
	$row->cl_count;
	// [...]
}

~Daniel Friesen (Dantman, Nadir-Seen-Fire) [http://daniel.friesen.name]

On 11-04-14 07:54 AM, Stefan Werthmann wrote:
> Hey! Wow!
>
> yes it's very blaming. Your code looks mutch more better!
>
> The $e was just for convenience.
>
> Actually I need something like this as end result:
>
> for($i=1;$i<count($pidsArray);$i++):
>             $qString = "SELECT cl_to,count(*) as cl_count from 
> ".$wgDBprefix."categorylinks where cl_from='".$pidsArray[$i]."' group 
> by cl_to having cl_count >0";
>             $wgRes   = $db->query($qString);
>             while($row = $db->fetchObject($wgRes)):
>                 $categories[$i]['cl_to']=$row->cl_to;
>                 $categories[$i]['cl_count']=$row->cl_count; 
>             endwhile;
>         endfor;   
>
> Is there a way to modify your code in this direction?

_______________________________________________
MediaWiki-l mailing list
MediaWiki-l at lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-l




More information about the MediaWiki-l mailing list