Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá pessoal,
Primeiramente agradecer a todos a colaboração, e meu primeiro post gostaria de dizer que todos obrigado pela hospitalidade e pretendo colaborar bastante aqui!
Bom, estou fazendo um CMS para fotografos e queria que a capa de cada álbum fosse a última foto postada.
SELECT photo_id, photo_path, photo_album, album_id, album_nome
FROM photos
INNER JOIN albuns
ON photos.photo_album = albuns.album_id
GROUP BY albuns.album_nome
Eu usei essa query, porém me retorna as primeiras fotos adicionadas, tentei usar:
ORDER BY photos.photo_id DESC
Mas msm assim, não consigo que as últimas Photo_id (adicionadas) exiba nos resultados.>
3 minutos atrás, TUAN disse:
USA O ASC
Usei ASC e DESC
Eu tenho 3 álbuns, e o ID já está no 20
Mas msm assim ele pega os primeiros

.
@Alexandro Castro Boa noite, vou te mandar um modelo do que eu uso na minha galeria onde eu eu defino o asc e o desc na hora que vou publicar esta assim
<?php
header('Access-Control-Allow-Origin: *');
require_once('../../includes/funcoes.php');
require_once('../../database/config.database.php');
require_once('../../database/config.php');
$categoria = get('categoria');
if (ModoManutencao()) { header("Location: ../manutencao.php"); }
$data_atual = date('Y-m-d');
$QueryCat = DBRead('c_album','*',"WHERE id = '{$categoria}'"); if (is_array($QueryCat)) { foreach ($QueryCat as $c_album) {
$p = $c_album['paginacao'];
$ordenar_por = $c_album['ordenar_por'];
$asc_desc = $c_album['asc_desc'];
$background = $c_album['background'];
$cor_titulo = $c_album['cor_titulo'];
$url = $c_album['url'];
} }
if ($categoria != '0') {
$QueryNum = DBCount('album','*',"WHERE status = 1 AND id_categoria = '{$categoria}' AND data <= '{$data_atual}' AND status = '1' ORDER BY {$ordenar_por} {$asc_desc}");
} else {
$QueryNum = DBCount('album','*',"WHERE status = 1 AND data <= '{$data_atual}' AND status = '1' ORDER BY {$ordenar_por} {$asc_desc}");
}
$pag = (isset($_GET['pag']))? $_GET['pag'] : 1;
$registros = $p;
$numPaginas = ceil($QueryNum/$registros);
$inicio = ($registros*$pag)-$registros;
if ($categoria != '0') {
$Query = DBRead('album','*',"WHERE status = 1 AND id_categoria = '{$categoria}' AND data <= '{$data_atual}' AND status = '1' ORDER BY {$ordenar_por} {$asc_desc} LIMIT {$inicio}, {$registros}");
} else {
$Query = DBRead('album','*',"WHERE status = 1 AND data <= '{$data_atual}' AND status = '1' ORDER BY {$ordenar_por} {$asc_desc} LIMIT {$inicio}, {$registros}");
}
?>
<style>
.thumbnail:hover{ border-radius: 0px !important; border: 1px transparent !important;}
.bg:hover { opacity: 0; }
</style>
<div class="row">
<div class='list-group'>
<?php if (is_array($Query)) { foreach ($Query as $album) { ?>
<div class='col-sm-4 col-xs-12 col-md-3 col-lg-3'>
<a onmouseover="bg(<?php echo $album['id']; ?>)" onmouseout="bgnormal(<?php echo $album['id']; ?>)" class="thumbnail" style="background-color:<?php echo $background; ?>; border-radius: 0px !important; position: relative !important; border: 1px transparent !important;" href="#!" onclick="AbreAlbum(<?php echo $album['id']; ?>, <?php echo $categoria; ?>, <?php echo $pag; ?>, <?php echo $pag; ?>)">
<img class="img-responsive" alt="<?php echo $album['titulo']; ?>" src="<?php echo ConfigPainel('base_url'); ?>/wa/thumb.php?src=<?php echo ConfigPainel('base_url'); ?>/wa/album/uploads/<?php echo $album['imagem']; ?>&w=500&h=500&q=90" />
<div class='legenda' onmouseover="bg(<?php echo $album['id']; ?>)" onmouseout="bgnormal(<?php echo $album['id']; ?>)" style="margin-left: 4px; width: calc(100% - 8px); height: calc(55px + 5%); left: 0px; position: absolute; text-align: center; background-color: rgba(0,0,0,0.5); z-index: 2; padding: 1px; bottom: 4px;">
<small class='text-muted' style="font-size: 15px; color: #FFF;"><?php echo LimitarTexto($album['titulo'],50,'...'); ?></small>
</div>
<div id="bg<?php echo $album['id']; ?>" class="bg" style="margin-left: 4px; width: calc(100% - 8px); height: calc(100% - 8px); top: 4px; left: 0px; position: absolute; text-align: center; background-color: rgba(0,0,0,0.5); transition: 0.4s; z-index: 1; padding: 1px; bottom: 4px;"></div>
</a>
</div>
<?php } } ?>
</div>
</div>
a minha tabela sql
SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
SET time_zone = "+00:00";
INSERT INTO `modulos` (`id`, `nome`, `url`, `icone`, `status`, `ordem`, `tabela`, `cod_head`) VALUES (3, 'Ãlbum de Fotos', 'album.php', 'fa-camera', 1, 0, 'album', 'album/album.js');
CREATE TABLE IF NOT EXISTS `album` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`titulo` varchar(255) NOT NULL,
`imagem` varchar(255) NOT NULL,
`autor` varchar(50) NOT NULL,
`data` date NOT NULL,
`status` enum('1','2') NOT NULL,
`id_categoria` int(11) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=0 ;
CREATE TABLE IF NOT EXISTS `c_album` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`categoria` varchar(255) NOT NULL,
`paginacao` int(11) NOT NULL,
`paginacao_fotos` int(11) NOT NULL,
`background` varchar(50) NOT NULL,
`cor_titulo` varchar(50) NOT NULL,
`url` varchar(255) NOT NULL,
`ordenar_por` varchar(50) NOT NULL,
`asc_desc` varchar(50) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=0 ;
INSERT INTO `c_album` (`id`, `categoria`, `paginacao`, `background`, `cor_titulo`, `url`, `ordenar_por`, `asc_desc`) VALUES (0, 'Todos os Itens', 10, 'rgba(0,0,0,0)', '#242424', '', 'id', 'DESC');
CREATE TABLE IF NOT EXISTS `fotos_album` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`titulo` varchar(255) NOT NULL,
`imagem` varchar(255) NOT NULL,
`data` date NOT NULL,
`id_album` int(11) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=0 ;
Bom espero que possa te ajudar em algo com o seu ai.
>
19 minutos atrás, TUAN disse:
@Alexandro Castro Boa noite, vou te mandar um modelo do que eu uso na minha galeria onde eu eu defino o asc e o desc na hora que vou publicar esta assim
<?php
header('Access-Control-Allow-Origin: *');
require_once('../../includes/funcoes.php');
require_once('../../database/config.database.php');
require_once('../../database/config.php');
$categoria = get('categoria');
if (ModoManutencao()) { header("Location: ../manutencao.php"); }
$data_atual = date('Y-m-d');
$QueryCat = DBRead('c_album','*',"WHERE id = '{$categoria}'"); if (is_array($QueryCat)) { foreach ($QueryCat as $c_album) {
$p = $c_album['paginacao'];
$ordenar_por = $c_album['ordenar_por'];
$asc_desc = $c_album['asc_desc'];
$background = $c_album['background'];
$cor_titulo = $c_album['cor_titulo'];
$url = $c_album['url'];
} }
if ($categoria != '0') {
$QueryNum = DBCount('album','*',"WHERE status = 1 AND id_categoria = '{$categoria}' AND data <= '{$data_atual}' AND status = '1' ORDER BY {$ordenar_por} {$asc_desc}");
} else {
$QueryNum = DBCount('album','*',"WHERE status = 1 AND data <= '{$data_atual}' AND status = '1' ORDER BY {$ordenar_por} {$asc_desc}");
}
$pag = (isset($_GET['pag']))? $_GET['pag'] : 1;
$registros = $p;
$numPaginas = ceil($QueryNum/$registros);
$inicio = ($registros*$pag)-$registros;
if ($categoria != '0') {
$Query = DBRead('album','*',"WHERE status = 1 AND id_categoria = '{$categoria}' AND data <= '{$data_atual}' AND status = '1' ORDER BY {$ordenar_por} {$asc_desc} LIMIT {$inicio}, {$registros}");
} else {
$Query = DBRead('album','*',"WHERE status = 1 AND data <= '{$data_atual}' AND status = '1' ORDER BY {$ordenar_por} {$asc_desc} LIMIT {$inicio}, {$registros}");
}
?>
<style>
.thumbnail:hover{ border-radius: 0px !important; border: 1px transparent !important;}
.bg:hover { opacity: 0; }
</style>
<div class="row">
<div class='list-group'>
<?php if (is_array($Query)) { foreach ($Query as $album) { ?>
<div class='col-sm-4 col-xs-12 col-md-3 col-lg-3'>
<a onmouseover="bg(<?php echo $album['id']; ?>)" onmouseout="bgnormal(<?php echo $album['id']; ?>)" class="thumbnail" style="background-color:<?php echo $background; ?>; border-radius: 0px !important; position: relative !important; border: 1px transparent !important;" href="#!" onclick="AbreAlbum(<?php echo $album['id']; ?>, <?php echo $categoria; ?>, <?php echo $pag; ?>, <?php echo $pag; ?>)">
<img class="img-responsive" alt="<?php echo $album['titulo']; ?>" src="<?php echo ConfigPainel('base_url'); ?>/wa/thumb.php?src=<?php echo ConfigPainel('base_url'); ?>/wa/album/uploads/<?php echo $album['imagem']; ?>&w=500&h=500&q=90" />
<div class='legenda' onmouseover="bg(<?php echo $album['id']; ?>)" onmouseout="bgnormal(<?php echo $album['id']; ?>)" style="margin-left: 4px; width: calc(100% - 8px); height: calc(55px + 5%); left: 0px; position: absolute; text-align: center; background-color: rgba(0,0,0,0.5); z-index: 2; padding: 1px; bottom: 4px;">
<small class='text-muted' style="font-size: 15px; color: #FFF;"><?php echo LimitarTexto($album['titulo'],50,'...'); ?></small>
</div>
<div id="bg<?php echo $album['id']; ?>" class="bg" style="margin-left: 4px; width: calc(100% - 8px); height: calc(100% - 8px); top: 4px; left: 0px; position: absolute; text-align: center; background-color: rgba(0,0,0,0.5); transition: 0.4s; z-index: 1; padding: 1px; bottom: 4px;"></div>
</a>
</div>
<?php } } ?>
</div>
</div>
a minha tabela sql
SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
SET time_zone = "+00:00";
INSERT INTO `modulos` (`id`, `nome`, `url`, `icone`, `status`, `ordem`, `tabela`, `cod_head`) VALUES (3, 'Ãlbum de Fotos', 'album.php', 'fa-camera', 1, 0, 'album', 'album/album.js');
CREATE TABLE IF NOT EXISTS `album` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`titulo` varchar(255) NOT NULL,
`imagem` varchar(255) NOT NULL,
`autor` varchar(50) NOT NULL,
`data` date NOT NULL,
`status` enum('1','2') NOT NULL,
`id_categoria` int(11) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=0 ;
CREATE TABLE IF NOT EXISTS `c_album` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`categoria` varchar(255) NOT NULL,
`paginacao` int(11) NOT NULL,
`paginacao_fotos` int(11) NOT NULL,
`background` varchar(50) NOT NULL,
`cor_titulo` varchar(50) NOT NULL,
`url` varchar(255) NOT NULL,
`ordenar_por` varchar(50) NOT NULL,
`asc_desc` varchar(50) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=0 ;
INSERT INTO `c_album` (`id`, `categoria`, `paginacao`, `background`, `cor_titulo`, `url`, `ordenar_por`, `asc_desc`) VALUES (0, 'Todos os Itens', 10, 'rgba(0,0,0,0)', '#242424', '', 'id', 'DESC');
CREATE TABLE IF NOT EXISTS `fotos_album` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`titulo` varchar(255) NOT NULL,
`imagem` varchar(255) NOT NULL,
`data` date NOT NULL,
`id_album` int(11) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=0 ;
Bom espero que possa te ajudar em algo com o seu ai
Bom, me ajudou um pouco em algumas ideias no PHP, mas a ideia é apenas a query no MySQL, por isso postei aqui nessa área. Gostaria de resolver apenas com query, não com PHP.
Eu consigo os resultados dos últimos, se eu tirar o group by, mas vai repetir os nomes dos álbuns e não funcionaria em um foreach
USA O ASC