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 manoaj
      Pessoal estou usando o long polling pra me retornar notificacoes em tempo real, esta tudo funcionando normalmente, estou inserindo os dados no db e o codigo me retorna as novas notificacoes, mas se eu der um refresh na pagina ela fica em um loop infinito tentando atualizar e gerando esse erro no meu php MySQL server has gone away.
      Como resolvo e o que siguinifica esse erro dentro desse contexto?
    • Por clickanapolis
      Bom dia amigos, estou criando uma agenda de serviços para um cliente e me surgiu uma duvida que nunca fiz.
       
      O profissional faz o cadastro dele e no cadastro ele determina por exemplo.
       
      Hora inicio e Hora fim que ele trabalha, podendo colocar por exemplo
       
      horainicio: 08:00:00
      horafim: 18:00:00
       
      Quando o cliente vai na agenda para marcar um serviço por exemplo preciso de uma consulta que veja no cadastro do profissional o seu horario de cadastro, na tabela profissionais tenho esses 2 campos abaixo:
       
      horainicio time default null, horafim time default null, e na tabela servicos_contratados
       
      create table servicos_contratados ( id_servico int(11) not null auto_increment, id_solicitante int(11) default null, id_profissional int(11) default null, horainicio time default null, horafim time default null, valor float(9,2) default null, status varchar(255) default null, primary key(id_servico) );  
      tenho o dia e horainicio e horafim.
       
      O que preciso e que por exemplo, o usuario quer um horario no dia 24/04/2018 das 12:00 as 13:00 a consulta me retornar apenas profissioanais que não tenha horario marcado.
       
      o problema tambem e que o horario e livre, então o usuario pode marcar por exemplo das 11:00 as 12:30 fazendo com que esse profissional fique bloqueado para a consulta acima e mostrando apenas profissionais com esses horarios livres.
    • Por WitchMad
      Olá Gente! Se pudessem me ajudar agradeceria bastante!
      Seguinte: Estou precisando cadastrar um valor do INPUT em dois bancos de dados. Onde eu vi a solução acabou não funcionando. Ainda sou um pouco noob em PHP, então se for algo óbvio perdoai
       
      Aqui o arquivo que processa os dados para enviar:
      <?php session_start(); include_once("conexao-alunos.php"); $matricula = filter_input(INPUT_POST, 'matricula', FILTER_SANITIZE_NUMBER_INT); $nome = filter_input(INPUT_POST, 'nome', FILTER_SANITIZE_STRING); $ensino = filter_input(INPUT_POST, 'ensino', FILTER_SANITIZE_STRING); $ano = filter_input(INPUT_POST, 'ano', FILTER_SANITIZE_STRING); $turno = filter_input(INPUT_POST, 'turno', FILTER_SANITIZE_STRING); $nascimento = filter_input(INPUT_POST, 'nascimento', FILTER_SANITIZE_STRING); $situacao = filter_input(INPUT_POST, 'situacao', FILTER_SANITIZE_STRING); $responsavel = filter_input(INPUT_POST, 'responsavel', FILTER_SANITIZE_STRING); $contato = filter_input(INPUT_POST, 'contato', FILTER_SANITIZE_NUMBER_INT); $email = filter_input(INPUT_POST, 'email', FILTER_SANITIZE_EMAIL); $endereco = filter_input(INPUT_POST, 'endereco', FILTER_SANITIZE_STRING); $cargo = filter_input(INPUT_POST, 'cargo', FILTER_SANITIZE_STRING); $empresa = filter_input(INPUT_POST, 'empresa', FILTER_SANITIZE_STRING); // Aonde eu vi era pra deixar dessa forma na sintaxe "INSERT INTO 'nome da tabela, $nomedobanco'" $result_usuarios = "INSERT INTO 'medio', $dbname (matricula, nome, turno, nascimento, responsavel, contato, email, endereco, cargo, empresa, situacao) VALUES ('$nome', '$turno', '$nascimento', '$responsavel', '$contato', '$email', '$endereco', '$cargo', '$empresa', '$situacao')"; $resultado_usuario = mysqli_query($conn, $result_usuarios); $result_usuarios_tran = "INSERT INTO 'mensalidade', $dbname_tran (matricula) VALUES ('$matricula')"; $resultado_usuario_tran = mysqli_query($conn_tran, $result_usuarios_tran); if (mysqli_insert_id($conn)){ $_SESSION['msg'] = "<p style='color:#00ff2a;'>Usuário Cadastrado com Sucesso</p>"; header("Location: index.php"); } else{ $_SESSION['msg'] = "<p style='color:red;'>Falha ao Cadastrar Usuário</p>"; header("Location: cad_aluno.php"); } ?> E aqui o arquivo de conexão:
      <?php $servidor = "localhost"; $usuario = "root"; $senha = ""; $dbname = "medio"; $conn = mysqli_connect($servidor, $usuario, $senha, $dbname); ?> <?php $dbname_tran = "transacoes"; $conn_tran = mysqli_connect($servidor, $usuario, $senha, $dbname_tran); ?>  
       
    • Por WitchMad
      Olá gente, seguinte:
      Estou desenvolvendo um Sistema de Boletim Online, com no total de 110 notas editáveis para o administrador.
      Tendo tudo isso em vista, preparei o código e colunas na tabela do banco de dados para recebimento das notas.
      Acontece que quando eu clico para editar o boletim ele imprime a mensagem de "Edição feita com sucesso" mas as colunas no banco de dados não são alteradas.
       
      Vou por o código de processo para averiguarem se há algo de errado
      <?php session_start(); include_once("conexao.php"); //ID do Aluno $id = filter_input(INPUT_POST, 'id', FILTER_SANITIZE_NUMBER_INT); //Notas da Matéria de Português $portugues121 = filter_input(INPUT_POST, 'portugues-1/2_1', FILTER_SANITIZE_NUMBER_INT); $portugues221 = filter_input(INPUT_POST, 'portugues-2/2_1', FILTER_SANITIZE_NUMBER_INT); $portugues122 = filter_input(INPUT_POST, 'portugues-1/2_2', FILTER_SANITIZE_NUMBER_INT); $portugues222 = filter_input(INPUT_POST, 'portugues-2/2_2', FILTER_SANITIZE_NUMBER_INT); $portugues123 = filter_input(INPUT_POST, 'portugues-1/2_3', FILTER_SANITIZE_NUMBER_INT); $portugues223 = filter_input(INPUT_POST, 'portugues-2/2_3', FILTER_SANITIZE_NUMBER_INT); $portugues124 = filter_input(INPUT_POST, 'portugues-1/2_4', FILTER_SANITIZE_NUMBER_INT); $portugues224 = filter_input(INPUT_POST, 'portugues-2/2_4', FILTER_SANITIZE_NUMBER_INT); $portugues125 = filter_input(INPUT_POST, 'portugues-1/2_5', FILTER_SANITIZE_NUMBER_INT); $portugues225 = filter_input(INPUT_POST, 'portugues-2/2_5', FILTER_SANITIZE_NUMBER_INT); $result_usuarios = "UPDATE fundamental SET portugues-1/2_1='$portugues121', portugues-2/2_1='$portugues221', portugues-1/2_2='$portugues122', portugues-2/2_2='$portugues222', portugues-1/2_3='$portugues123', portugues-2/2_3='$portugues223', portugues-1/2_4='$portugues124', portugues-2/2_4='$portugues224', portugues-1/2_5='$portugues125', portugues-2/2_5='$portugues225' WHERE id='$id'"; $resultado_usuario = mysqli_query($conn, $result_usuarios); if (mysqli_affected_rows($conn)){ $_SESSION['msg'] = "<p style='color:#00ff2a;'>Usuário Editado com Sucesso</p>"; header("Location: index.php"); } else{ $_SESSION['msg'] = "<p style='color:red;'>Falha ao Editar Usuário</p>"; header("Location: editar.php?id='$id'"); } ?>  
    • Por Marcos RJ
      Pessoal. Na paz?
       
      É o seguinte, tenho um cliente do qual é muito exigente, pois o sistema dele terá múltiplos acessos e desses acessos seus respectivos clientes. Estamos buscando um bom servidor  do qual possa manter o projeto dele sem quedas ou problemas de IP na blacklist. Ele quer ter um serviço de hospedagem de uma empresa séria e não de  pessoa que aloca revenda e depois oferece hospedagens para outras pessoas sentadas em seu quarto, pois se esse cara morrer ou surtar, já era! Perde-se tudo.... sem contar se essa pessoa que faz isso é confiável ou vai ficar olhando seu código-fonte ou pegar seu sistema, mudar a interface e sair vendendo por aí....
       
      Entre os servidores que buscamos, levando em consideração as pesquisas levantadas no Reclame Aqui e até no próprio Facebook, desde quedas constantes, suporte que não funciona, blacklist, valores abusivos e que não não uma empresa são:
       
      UolHost RaveHost Super Domínios Umbler KingHost ISBrasil DadoBrasil Hospeda Meu site HostInger Solus Host HomeHost MochaHost RedeHost ValueHost Locaweb HostGator GoDaddy WebLink ITMNetworks DreamHost Host1Plus
      DialHost
       
      As que foram aprovadas:
       
      Host Dime IntelHost  
      Além dessas duas que foram aprovadas, alguém poderia indicar um host que não tenha quedas constantes e que realmente seja uma empresa?
       
      Obrigado!
       
×

Informação importante

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