Jump to content
maurohpg

Listar categorias de pratos com erro

Recommended Posts

Boa tarde pessoal, estou montando um sistema de delivery, estou com um erro que não consigo achar, sei que é na montagem da programação abaixo.

Na página eu listo com botões os tipo de pratos, mais com essa programação abaixo só está listando a categoria de Yakisoba, as demais não listam os pratos, o que posso estar fazendo de errado na montagem?

 

<section class="section-50 section-sm-top-90 section-sm-bottom-100 bg-image-6">
  <div class="shell-wide isotope-wrap">
  <h3 class="text-center">Our Menu</h3>
  <div class="range range-sm-center">
  <div class="cell-xs-12">
    <div class="cell-box">
      <ul class="isotope-filters-responsive">
        <li>
          <p>Choose your category:</p>
        </li>
        <li class="block-top-level"> 
          <!-- Isotope Filters-->
          <button data-custom-toggle="#isotope-1" data-custom-toggle-disable-on-blur="true" class="isotope-filters-toggle btn btn-primary-lighter btn-shape-circle">Categorias<span class="caret"></span></button>
          <div id="isotope-1" class="isotope-filters isotope-filters-buttons isotope-filters-buttons-primary-lighter">
            <ul class="inline-list">
	<?php
	$consultaCategoria = "SELECT a.idCatPrato, a.NomeCatPrato
	FROM tb_catpratos a
	WHERE a.idCatPrato in ( SELECT DISTINCT b.idCatPrato 
		FROM tb_pratos b
		WHERE b.idCatPrato = a.idCatPrato
		AND b.status = 's')
		ORDER BY a.NomeCatPrato";
	$resultadoCategoria = mysql_query($consultaCategoria) 
	or die("Erro ao acessar base de dados de categorias");
	while ($linhaCategoria = mysql_fetch_assoc($resultadoCategoria))
    {
	$idCatPrato = $linhaCategoria["idCatPrato"];	
	$NomeCatPrato = $linhaCategoria["NomeCatPrato"];
	echo"<li><a data-isotope-filter='$idCatPrato' data-isotope-group='gallery' href='#' class='btn-shape-circle btn active'>$NomeCatPrato</a></li>";	
} /*End while categoria*/
 ?>
            </ul>
          </div>
        </li>
      </ul>
    </div>
  </div>
  </div>
  <div class="cell-xs-12 offset-top-40"> 
    <!-- Isotope Content-->
    <div data-isotope-layout="fitRows" data-isotope-group="gallery" class="row isotope isotope-menu isotope-menu-offsets">
      <?php
/* Pratos */
	$consultaPratos = "SELECT a.idPrato, a.maisAmados, a.resumoPrato, a.tituloPrato, 
	a.valorB_Prato, b.foto
		FROM tb_pratos a
		LEFT JOIN galeria b ON b.idPrato = a.idPrato
		WHERE a.idCatPrato = $idCatPrato
		AND a.status = 's'";
	$resultadoPratos = mysql_query($consultaPratos) 
	or die("Erro ao acessar base de dados de pratos");;
	while ($linhaPratos = mysql_fetch_assoc($resultadoPratos))
	{
	$valorPrato = $linhaPratos["valorB_Prato"];
	$idPrato = $linhaPratos["idPrato"];
	$maisAmados = $linhaPratos["maisAmados"];
	$resumoPrato = $linhaPratos["resumoPrato"];
	$tituloPrato = $linhaPratos["tituloPrato"];
	$imagemProduto = $linhaPratos["foto"];
	if ($imagemProduto == ""){ 
	$imagemProduto = "no-image.png";
	}
	$foto = "../sistema/imagens/thumb/".$imagemProduto;
		echo "<div data-id='$idPrato' data-name='$tituloPrato' data-price='$valorPrato' data-qtde='1' data-filter='$idCatPrato' class='col-xs-12 col-sm-6 isotope-item'>
						<div class='thumbnail-menu-modern thumbnail-menu-modern-horizontal'>
							<div class='unit unit-lg-horizontal unit-spacing-sm unit-middle'>
								<div class='unit-left'>
									<figure>
										<img src='$foto' alt='' width='310' height='260' class='img-responsive'/>
									</figure>
								</div>
								<div class='unit-body'>
									<div class='caption text-center'>
										<h5>$tituloPrato</h5>
										<p class='text-italic'>$resumoPrato</p>";		  
										if ( $statusAtiva == "s") {			  
											echo "<a class=\"button white-btn clicked\" href=\"javascript:Cart('$idPrato', 'add');\">
													<span class='desk'>Adicionar</span>
													<span class='mob'><i class='fa fa-check'></i></span>
													</a>";
										}
											echo "<p class='price'>$valorPrato</p><a href='shop-single.html' class='btn btn-shape-circle btn-burnt-sienna offset-top-15'>Pedir</a>
									</div>
								</div>
							</div>
						</div>
					</div>";}		
				?>
  </div>
  </div>
  </div>
</section>

 

Share this post


Link to post
Share on other sites

Olá!

Acredito que a busca pelas categorias deva ser no trecho:

5 hours ago, maurohpg said:

<?php $consultaCategoria = "SELECT a.idCatPrato, a.NomeCatPrato FROM tb_catpratos a WHERE a.idCatPrato in ( SELECT DISTINCT b.idCatPrato FROM tb_pratos b WHERE b.idCatPrato = a.idCatPrato AND b.status = 's') ORDER BY a.NomeCatPrato"; $resultadoCategoria = mysql_query($consultaCategoria)

 

Uma das possibilidades é que naquele select dentro do WHERE a.idCatPrato in(SELECT ...) talvez esteja retornando uma única categoria cadastrada em tb_pratos.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By Rogeriodc9
      Bom dia à todos.

      Estou tendo problemas em colocar um valor, oriundo de uma tabela de dados, no lugar do valor de condição de testes, no comendo While. Abaixo uma parte da expressão, preciso colocar no lugar do valor que condiciona o contador, uma variavel contendo um valor de um registro de uma tabela de dados.

      $conta=1;
          while($conta<=$qpa){

      A variável $qpa deve conter o valor de uma linha de uma tabela. Mas não consigo fazer com que a variável retorne o valor, ela entra na expressão do comando com o valor zerado.

      Estou "pegando" da tabela acordos, a quantidade de parcelas ($qpa), que deve fazer um loop, gerando o parcelamento que será incluído em outra tabela.

      Agradeço se puderem me ajudar.
    • By Mardscrash
      Codifique um programa em java que:
           a – permita a entrada via teclado de uma qtde de números tipo inteiro;
           b – calcule e exiba na tela a soma dos números informados;
           Obs. A qtde de números deverá ser informado via teclado, antes dos números serem lidos.
       
      Eu cheguei a montar a estrutura while, mas não sei como exibir a soma desses números informados. Procurei no google, mas é sempre algo mais simples, como exibir a soma de 2 ou 3 números. Ficaria muito grato a quem pudesse me ajudar
      Segue o que eu consegui fazer:
       
      package exercicio;
      import java.util.Scanner;
      public class Exercicio5 {
          public static void main(String[] args) {
              Scanner scan = new Scanner(System.in);
              //a – permita a entrada via teclado de uma qtde de números tipo inteiro;
              System.out.print("Digite a quantidade de números inteiros: ");
              int quantidade = scan.nextInt();
              while(quantidade > 0) { 
                  //quantidade de de números informados via teclado antes de serem lidos
                   System.out.print("Digite um número: ");
                   int num = scan.nextInt();
                   quantidade--; 
              }
              //b – calcule e exiba na tela a soma dos números informados;
              System.out.println("A soma dos números digitados é igual a: ");   
          }
      }
    • By JurisCode
      OLÁ A TODOS, Boa tarde. Preciso de ajuda com o seguinte script.
       
      eu tenho uma array que é a seguinte:
       
      array (size=7)   0 => string 'gu' (length=2)   1 => string 'tr' (length=2)   2 => string 'fr' (length=2)   3 => string 'ip' (length=2)   4 => string 'al' (length=2)   5 => string 'po' (length=2)   6 => string 'xa' (length=2) Cada string da array de duas letra é a abreviatura de uma cidade; eu quero fazer uma pesquisa na base da dados para cada sigla dessa para ver qual a cidade correspondente. Como vai ser necessariamente um resultado apenas, eu tive que usar o foreach.
       
      Tipo
      foreach($array as $variavel);         {         $busca = $conn->query("SELECT * FROM tabela WHERE sigla = '$variavel'");         $resultado = $busca->fetch_assoc();         echo ' - '. $resultado['significado_da_sigla'];         } } Não está funcionando perfeitamente, mas imprime apenas o último resultado.
       
      Eu já tentei uma variável para ir acumulando o resultado, tipo
       
      if (empty('$resultado_busca')) {     $resultado_busca = $resultado['significado_da_sigla'];     }     else {     $resultado_busca = $resultado_busca . ' - ' . $resultado['significado_da_sigla'];     } ou seja, se a variável foi vazia (da primeira vez), então vai criar uma variável com o primeiro resultado, se a variável já existir (das outras vezes), então a variável vai ser igual à variavel anteriormente criado adicionando um traço e o próximo resultado.
       
      E depois, em vez de imprimir a variável com fetch_assoc $resultado['significado_da_sigla'] eu imprimiria a variável &resultado_busca, que em cada ciclo iria acumulando os resultados, mas também não está funcionando, essa não imprime nada na tela.
       
      Alguém pode dar uma ajuda?
       
      OBRIGADO, DESDE JÁ
    • By JurisCode
      eu tenho uma array que é a seguinte:
      array (size=7)   0 => string 'gu' (length=2)   1 => string 'tr' (length=2)   2 => string 'fr' (length=2)   3 => string 'ip' (length=2)   4 => string 'al' (length=2)   5 => string 'po' (length=2)   6 => string 'xa' (length=2) eu quero fazer uma pesquisa na base da dados para cada sigla dessa para ver qual o significado correspondente. Como vai ser necessariamente um resultado apenas, não tem motivo para usar o while, mas fazer via foreach.
       
      Tipo
      foreach($array as $variavel); { $busca = $conn->query("SELECT * FROM tabela WHERE sigla = '$variavel'"); $resultado = $busca->fetch_assoc(); echo ' - '. $resultado['significado_da_sigla']; } }  
      Mas tá imprimindo só o último resultado.
    • By Aureo Almeida
      Problema em definir largura e disposição horizontal de tabelas com resultado de while
      Como iniciante em programação estou tendo problemas para estilizar uma tabela dentro de um script PHP. Possuo o seguinte script:
      <?php $sql = 'SELECT * FROM psd_produtos'; $stmt = $conn->query($sql); echo '<table>'; while($row = $stmt->fetch(PDO::FETCH_OBJ)){ echo " <td> <tr><h1>$row->prd_nome <br /></h1></tr> <tr><p>$row->prd_detalhe <br /></p></tr> <tr>$row->prd_valor <br /></tr> </td> "; } echo '</table>'; ?> Ele funciona perfeitamente, buscando e produzindo um loop das informações que preciso, porém, gostaria que o resultado me retornasse em tabelas que ficasse dispostas horizontalmente lado a lado, e imaginei colocar uma classe CSS que estabelecesse a largura da tabela em 400px com um float que me permitiria alinhar o resultado em “4 colunas”. Porém, essa classe não funciona dentro do script.
      Tentei echo '<table class="tabela-produto">'; e não funciona.
      A mesma classe, que estabelece uma largura para a tabela, aplicada a uma tabela fora do script funciona e isso tirou minha dúvida se este tópico seria sobre CSS/HTML ou PHP.
      Como posso fazer para obter meu objetivo com este script, alinhando horizontalmente o resultado do while em tabelas dispostas horizontalmente em 4 colunas?
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.