Ir para conteúdo

Recommended Posts

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.
 
 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites
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

Screenshot_20180414-223711.png

Screenshot_20180414-223501.png

Compartilhar este post


Link para o post
Compartilhar em outros sites

@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

Compartilhar este post


Link para o post
Compartilhar em outros sites
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

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora

  • Conteúdo Similar

    • Por artur0407
      Boa noite;
       
      Estou realizando testes com a biblioteca PDO para banco de dados com PHP;
      Logo de inicio estou realizando minha conexão com o banco utilizando um código simples nativo da biblioteca.
      No entanto, mesmo errando o código propositalmente e tendo setado todos os possíveis erros e tratando com o bloco "try catch" o php não me retorna erro de nenhuma forma.
       
      Abaixo ambos os códigos;
       
      Primeiro sem erros:
      <?php ini_set('display_errors',true); ini_set('display_startup_erros',1); error_reporting(E_ALL); $username = 'root'; $password = ''; $options = [ PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION, PDO::ATTR_CASE => PDO::CASE_NATURAL, PDO::ATTR_ORACLE_NULLS => PDO::NULL_EMPTY_STRING, PDO::ATTR_PERSISTENT => true ]; try { $conn = new PDO('mysql:host=localhost; dbname=test', $username, $password, $options); $conn->exec("set names utf8"); } catch(PDOException $e) { echo 'ERROR: ' . $e->getMessage(); } ?> Posteriormente com erro proposital (na string de conexão da classe PDO)
      <?php ini_set('display_errors',true); ini_set('display_startup_erros',1); error_reporting(E_ALL); $username = 'root'; $password = ''; $options = [ PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION, PDO::ATTR_CASE => PDO::CASE_NATURAL, PDO::ATTR_ORACLE_NULLS => PDO::NULL_EMPTY_STRING, PDO::ATTR_PERSISTENT => true ]; try { $conn = new PDO('mysql:hst=localhost; dbname=test', $username, $password, $options); $conn->exec("set names utf8"); } catch(PDOException $e) { echo 'ERROR: ' . $e->getMessage(); } ?> Observem que no construtor do pdo, no lugar de host escrevi 'hst' e o php não retorna erros!
       
      Como sou novo aqui, me desculpem algum erro de formatação na mensagem, obrigado!
    • Por soaresmetal
      Preciso criar um relatório usando T-SQL onde os resultados das colunas sejam preenchidos automaticamente.
       
      Exemplo:
      Cód | Cliente | Venda jan/18 | Venda fev/18 | Venda mar/18 | ...
       
      As linhas representam os clientes e suas vendas mensais as colunas vão sendo criadas a medida que o tempo for passando e novos dados forem surgindo.
       
      Seria interessante possuir também um limitador de período.
      Por exemplo: criar o relatório apenas até agosto/19.
       
      Suponha as tabelas:
      clientes - contendo dados cadastrais dos clientes
      pedidos - contendo informações dos pedidos, datas e totais gerais
      itens - itens do pedido e confirmação de faturamento ou não do item
    • Por BryanSamuel
      Eu gostaria de importar dados de uma planinha que esteja em .xls para mysql, por exemplo, tem uma página html simples onde o usuário vai enviar a planilha, e com isso eu quero importar para uma base de dados, mas tem um porém, por exemplo, tem uma coluna com o número da matrícula de cada aluno, eu gostaria de fazer uma verificação, para que se já existisse um aluno com a matrícula igual, atualizasse somente determinadas colunas, como por exemplo, a coluna turma e a coluna turno, eu sei que parece pedir demais mas eu sou bem novato em php e mysql, se alguém puder ajudar agradeço desde já, abraço. 
      obs. de preferência, se tiver como importar direto de .xls eu agradeço, mas caso só de com .csv também serve
    • Por sobrinnho
      Olá pessoal, sou novo aqui e preciso da ajuda de vocês, fiz um site no dreamweaver CS6 e preciso conectar ele no BD do meu servidor online, no localhost consigo fazer as conexões, mas na hora de configurar pra o online só aparece erros.

    • Por paulaodaregulage
      Boa noite,
      Alguém saberia me dizer, como eu poderia descobrir o caminho de um arquivo no pc pela página web.
       
      assim:
      <form method="post" action="" enctype="multipart/form-data"> <input type="file" name="arquivo" /> <!--ele so mostra o arquivo que foi clicado e n o caminho completo...--> <input type="submit" value="Enviar" /> </form> e ao clicar no arquivo(arquivo.pdf ou video.mp4) desejado ,ele me daria  o caminho deste ,para que eu pudesse enviar  este caminho para meu banco de dados(mysql)
       
      exemplo : pasta1\pasta2\arquivo.pdf
       
      pq estou tendo dificuldades para enviar arquivos em pdf ou mp4 para uma pasta via web
      e desse jeito eu só teria q colocar o arquivo ou o vídeo na pasta manualmente e depois na pagina web eu só teria que clicar neste caminho para que a página encontrasse.
       
       
       

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.