PDA

View Full Version : Query to recount the number of images into profile albums


tintin74
07-26-2011, 08:02 AM
Hello,

after importing image from a large photopost album into vbulletin profile album, I need to "recount" the total number images for each album but I don't know how to build a query to do this.

Vbulletin Maintenance doesn't have an option to do this.

Does anyboy could help me to build this query please?

Thank you in advance

tintin74
07-29-2011, 12:02 PM
Uhm... is it impossible?

kh99
07-29-2011, 01:07 PM
It might be able to be done with a query, I'm not sure. But I put together this small script that should do it:

<?php

error_reporting(E_ALL ^ E_NOTICE ^ 8192);

require('./global.php');

// Rebuild counts for all albums
$album_results = $db->query_read("SELECT * FROM " . TABLE_PREFIX . "album");

$albums = array();

while ($album = $db->fetch_array($album_results))
$albums[] = $album;

$db->free_result($album_results);

// update all albums that pictures were moved to
foreach ($albums as $album)
{
$albumdata =& datamanager_init('Album', $vbulletin, ERRTYPE_SILENT);
$albumdata->set_existing($album);

$albumdata->rebuild_counts();
$albumdata->save();
unset($albumdata);
}

exit('Done');


Put that in a php file, upload it your forum directory, and point your browser to it. (Then probably delete it from the server).

Boofo
07-29-2011, 01:10 PM
Admin CP -> Maintenance -> Update Counters -> Rebuild Recently Updated Albums

kh99
07-29-2011, 01:18 PM
Admin CP -> Maintenance -> Update Counters -> Rebuild Recently Updated Albums

That doesn't seem to update the count of pictures in each album, but maybe I misunderstood the question.

Boofo
07-29-2011, 01:25 PM
Or I did.

tintin74
07-31-2011, 07:17 AM
It might be able to be done with a query, I'm not sure. But I put together this small script that should do it:

<?php

error_reporting(E_ALL ^ E_NOTICE ^ 8192);

require('./global.php');

// Rebuild counts for all albums
$album_results = $db->query_read("SELECT * FROM " . TABLE_PREFIX . "album");

$albums = array();

while ($album = $db->fetch_array($album_results))
$albums[] = $album;

$db->free_result($album_results);

// update all albums that pictures were moved to
foreach ($albums as $album)
{
$albumdata =& datamanager_init('Album', $vbulletin, ERRTYPE_SILENT);
$albumdata->set_existing($album);

$albumdata->rebuild_counts();
$albumdata->save();
unset($albumdata);
}

exit('Done');


Put that in a php file, upload it your forum directory, and point your browser to it. (Then probably delete it from the server).

Great! Thank you very much kh99! It solve the problem. This is the end of my nightmare ;-)

Admin CP -> Maintenance -> Update Counters -> Rebuild Recently Updated Albums

No Boofo, this process doesn't count the album profile images. I hope It will be added in the future release by vbulletin team.

Boofo
07-31-2011, 08:03 AM
My bad.