Changeset 64


Ignore:
Timestamp:
Sep 5, 2003, 9:27:45 PM (21 years ago)
Author:
z0rglub
Message:

Correcting a bug in special categories (favorites, most seen, most
recent... non numeric categories) : when a picture is linked to more than
one category, it's only displayed once.

Location:
trunk
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/category.php

    r61 r64  
    234234  $array_cat_directories = array();
    235235 
    236   $query = 'SELECT id,file,date_available,tn_ext,name,filesize';
    237   $query.= ',storage_category_id,category_id';
    238   $query.= ' FROM '.PREFIX_TABLE.'images';
    239   $query.= ' LEFT JOIN '.PREFIX_TABLE.'image_category ON id = image_id';
     236  $query = 'SELECT distinct(id),file,date_available,tn_ext,name,filesize';
     237  $query.= ',storage_category_id';
     238  $query.= ' FROM '.PREFIX_TABLE.'images AS i';
     239  $query.= ' LEFT JOIN '.PREFIX_TABLE.'image_category AS ic ON id=ic.image_id';
    240240  $query.= $page['where'];
    241241  $query.= $conf['order_by'];
     
    252252  while ( $row = mysql_fetch_array( $result ) )
    253253  {
     254    // retrieving the storage dir of the picture
    254255    if ( $array_cat_directories[$row['storage_category_id']] == '' )
    255256    {
  • trunk/include/functions_category.inc.php

    r61 r64  
    494494        $page['title'] = $lang['favorites'];
    495495
    496         $page['where'] = ', '.PREFIX_TABLE.'favorites';
     496        $page['where'] = ', '.PREFIX_TABLE.'favorites AS fav';
    497497        $page['where'].= ' WHERE user_id = '.$user['id'];
    498         $page['where'].= ' AND image_id = id';
     498        $page['where'].= ' AND fav.image_id = id';
    499499     
    500500        $query = 'SELECT COUNT(*) AS nb_total_images';
  • trunk/picture.php

    r61 r64  
    4141$query = 'SELECT id,date_available,comment,hit,keywords';
    4242$query.= ',author,name,file,date_creation,filesize,width,height';
    43 $query.= ',storage_category_id,category_id';
     43$query.= ',storage_category_id';
     44if ( is_numeric( $page['cat'] ) )
     45{
     46  $query.= ',category_id';
     47}
    4448$query.= ' FROM '.PREFIX_TABLE.'images';
    45 $query.= ' LEFT JOIN '.PREFIX_TABLE.'image_category ON id = image_id';
     49$query.= ' LEFT JOIN '.PREFIX_TABLE.'image_category AS ic ON id = ic.image_id';
    4650$query.= $page['where'];
    4751$query.= ' AND id = '.$_GET['image_id'];
     
    6569$page['storage_category_id'] = $row['storage_category_id'];
    6670// retrieving the number of the picture in its category (in order)
    67 $query = 'SELECT id';
     71$query = 'SELECT DISTINCT(id)';
    6872$query.= ' FROM '.PREFIX_TABLE.'images';
    69 $query.= ' LEFT JOIN '.PREFIX_TABLE.'image_category ON id = image_id';
     73$query.= ' LEFT JOIN '.PREFIX_TABLE.'image_category AS ic ON id = ic.image_id';
    7074$query.= $page['where'];
    7175$query.= $conf['order_by'];
     
    129133    $query = 'SELECT id';
    130134    $query.= ' FROM '.PREFIX_TABLE.'images';
    131     $query.= ' LEFT JOIN '.PREFIX_TABLE.'image_category ON id = image_id';
     135    $query.= ' LEFT JOIN '.PREFIX_TABLE.'image_category  AS ic';
     136    $query.= ' ON id = ic.image_id';
    132137    $query.= $page['where'];
    133138    $query.= $conf['order_by'];
     
    212217{
    213218  $prev = $page['num'] - 1;
    214   $query = 'SELECT id,name,file,tn_ext,storage_category_id';
     219  $query = 'SELECT DISTINCT(id),name,file,tn_ext,storage_category_id';
    215220  $query.= ' FROM '.PREFIX_TABLE.'images';
    216   $query.= ' LEFT JOIN '.PREFIX_TABLE.'image_category ON id = image_id';
     221  $query.= ' LEFT JOIN '.PREFIX_TABLE.'image_category AS ic ON id=ic.image_id';
    217222  $query.= $page['where'];
    218223  $query.= $conf['order_by'];
     
    458463}
    459464//------------------------------------ admin link for information modifications
    460 if ( $user['status'] == "admin" and is_numeric( $page['cat'] ) )
     465if ( $user['status'] == 'admin' )
    461466{
    462467  $vtp->addSession( $handle, 'modification' );
     
    470475{
    471476  $next = $page['num'] + 1;
    472   $query = 'SELECT id,name,file,tn_ext,storage_category_id';
     477  $query = 'SELECT DISTINCT(id),name,file,tn_ext,storage_category_id';
    473478  $query.= ' FROM '.PREFIX_TABLE.'images';
    474   $query.= ' LEFT JOIN '.PREFIX_TABLE.'image_category ON id = image_id';
     479  $query.= ' LEFT JOIN '.PREFIX_TABLE.'image_category AS ic ON id=ic.image_id';
    475480  $query.= $page['where'];
    476481  $query.= $conf['order_by'];
Note: See TracChangeset for help on using the changeset viewer.