Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Apenas Eu

Como Controlar a Consulta de linhas?

Recommended Posts

Olá!

 

Eu preciso de mais uma ajudinha. As anteriores que eu postei deu tudo certo, mas essa não sei nem se conseguiria explicar.

 

 

Eu tenho uma tabela de quantidade = 5, 10, 25, 50, 100, 250, 500, 1000, 2500, 5000 (cada linha é uma quantidade)

 

Eu precisava relacionar estas quantidades com o tamanho de um determinado produto. Bem com ajuda de um arquivo cidade/estado eu consegui fazer. E até aí funciona muito bem.

 

Mas por exemplo imagine que o produto "adesivos" tenha as seguintes opções de quantidade = 5, 10, 25, 50, 100, 250, 500, 1000,

 

Já o produto "folhetos" tem as seguintes opções de quantidade = 1000, 2500, 5000

 

O que está acontecendo é que em todos os produtos aparecem todas as opções de tamanho da tabela quantidade (de 5 a 5000). Eu queria controlar as opções de quantidade que aparecem em cada produto mas eu não sei como fazer ainda.

 

Acho que consegui explicar né? Seria uma espécie de filtro que eu preciso :)

 

Eu usei o programa disponível nesse site http://www.daviferreira.com/posts/populando-selects-de-cidades-e-estados-com-ajax-php-e-jquery

 

O que chama o cód da "quantidade" é isso aqui:
Eu usei a mesma estrutura do programa do site ali. Apenas troquei "estados", por "quantidade" e "cidades" por" tamanho"

<select name="quantidade" id="cod_quantidade" class='formulario nascimento'>
			<option value="">-- Escolha a Quantidade --</option>
			<?php
				$sql = "SELECT cod_quantidade, sigla
						FROM quantidade
						ORDER BY cod_quantidade";
				$res = mysql_query( $sql );
				while ( $row = mysql_fetch_assoc( $res ) ) {
					echo '<option value="'.$row['cod_quantidade'].'">'.$row['sigla'].'</option>';
				}
			?>
		</select>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Estas quantidade e produtos estão em uma base de dados correto?

Caso sim, você precisa criar uma tabela alternativa para relacionar estas quantidades ao produto posteriormente fazer a consulta com o relacionamento.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá!

 

Então, na realidade eu ja tenho com essas duas, tres tabelas relacionadas: 1 - são os dados principais; 2 - quantidade e a 3 - dos tamanhos, além da tabela de produtos

 

 

Rapaiz o relacionamento parece que funcionou, mas eu não estou conseguindo fazer o php ler o relacionamento

 

Suponhamos que eu faça isso:

$sql = "select * from quantidade where relacionar='3'";

Abre certinho todos os tamanhos que tem o 3 nas linhas do relacionar. Mas se eu fizer assim...

$sql = "select * from quantidade where relacionar='$relacionar'";

Eu esqueci como faz para aquele produto entender que é para ler tudo o que tiver 3, por exemplo.

Pior que fiz isso semana passada, mas agora não estou lembrando como faz

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boa tarde, eu não recomendo que você faça queries dessa maneira concatenando o parâmetro na query. utilize o PDO com bindValue, segue o link.

http://php.net/manual/pt_BR/pdostatement.bindvalue.php.

Seu código ficará mais limpo e semântico.

Essa variável $relacionar é um parametro via GET? recomendo que poste o código completo para analisarmos.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá! Eu não sabia disso!!

 

Eu acho que não usei o get nao, será isso o problema? É que eu fiz parecido com que um amigo meu desenvolveu. Não tinha GET.

 

O cód ta muito grande, mas vamos la:

 

Essa é a pagina que recebe os detalhes dos produtos, onde a pessoa pode clicar e solicitar o orçamento

<?php
include '/config2/produtos-conexao.php';
session_start();
$id = uniqid( time() );
$_SESSION['id'] = $id;
if (isset($_GET['id'])) {
$id = $_GET['id'];
$sql = "select * from produtos where id=$id";
$query = mysql_query($sql);
while ($row = mysql_fetch_array($query)) {
$slug = trim($row['slug']);
$description = trim($row['description']);
$pagina = trim($row['pagina']);
$palavrachave = trim($row['palavrachave']);
$codigo = trim($row['codigo']);
$nome = trim($row['nome']);
$descCurta = $row['descricaoCurta'];
$descricaoLonga = trim($row['descricaoLonga']);
$indicacao = trim($row['indicacao']);
$formato = $row['formato'];
$quantMin = $row['quantMin'];
$linha = $row['linha'];
$prazProd = $row['prazProd'];
$cores = $row['cores'];
$personalizado = $row['personalizado'];
$peso = $row['peso'];
$acabamento = $row['acab'];
$box = $row['box'];
$foto = $row['foto'];
$ALT = trim($row['ALT']);
$title = trim($row['title']);
$associar      = $row['associar'];
}
} else {
}
?>
<!DOCTYPE html>
<html lang="pt-br">
<head>
<meta charset="UTF-8">
<title><?php echo $pagina ?></title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description" content="<?php echo $description;?>">
<meta name="keywords" content="<?php echo $palavrachave; ?> CAMPO MOURÃO">
<?php include "elementos/header.php" ;?> <!-- CSS e TAGS em geral Geral --> 
<link href="script/menu-lateral.css" rel="stylesheet">
<link href="script/lightbox.css" rel="stylesheet">
<link href="script/basic.css" rel="stylesheet" media='screen' />
</head>
<body>
<?php include "elementos/menu-topo.php" ;?>
<header class="sb-page-header">
	<div class="container-fluid">
<h1><?php echo $nome;?> Personalizados</h1>
<p>Detalhes Adicionais, Detalhes Técnicos e Indicações. Solicite Um Orçamento Gratuito </p>
</div>
</header>
<div class="container-fluid" >
<div class="row-fluid" >
<div class="span2">
<h6 class="fontes">Destaques</h6>
<?php include "elementos/menu-materiais-graficos.php" ;?>
</div><!--fim da spam-->
 <div class="span10">
 <div class="row" >
<div class="col-md-11 col-lg-11  "><!--1 Início Da Coluninha-->
               <div class="col-md-5 col-sm-11">
                <div class="product-img">
                  <a href="http://www.dcsdesenvolvimento.com.br/imagens/<?php echo $foto ?>" data-lightbox="products">
<img class="img-responsive main" src="http://www.dcsdesenvolvimento.com.br/imagens/<?php echo $foto ?>" alt="<?php echo $row['ALT']; ?> - DCS Desenvolvimento, Campo Mourão, PR" title="<?php echo $title; ?> - DCS Desenvolvimento, Campo Mourão, PR" >
                  </a>
           </div>
</div>
<h3 class="fontes -azul"><?php echo $nome; ?></h3>
   <div class="rw-ui-container"></div>
<p><strong >Cód:</strong> <?php echo $codigo; ?><br>
<strong>Descrição</strong>: <?php echo $descCurta; ?><br>
<strong >Linha: </strong> <?php echo $linha; ?><br>
<strong >Formato:</strong> <?php  echo $formato; ?></p><br>
 <br>
 <div id='content'>
<div id='basic-modal'>
<p><!-- Solicitar Orçamento --><a href="#" class="botao btn-azul basic"><i class="glyphicon glyphicon-shopping-cart"></i> Solicitar Orçamento</a></p>
</div>
</div>
<p class="clearfix"></p>
<h4 class="fontes -azul">Descrição do Produto</h4>
<p><?php echo $descricaoLonga ?></p>
<p><?php echo $indicacao ?></p>
<h4 class="fontes -azul">Detalhes técnicos</h4>
<p><strong class="destaque">Quantidade Mínima:</strong> <?php echo $quantMin; ?>.</p>
<p><strong class="destaque">Prazo de Produção:</strong> <?php echo $prazProd; ?>.</p>
<p><strong class="destaque">Peso: </strong><strong class="destaque"> </strong><?php echo $peso; ?>.</p>
<p><strong class="destaque">Cores: </strong><?php echo $cores ?></p>
<div id='content'>
<div id='basic-modal'>
<p><!-- Solicitar Orçamento --><a href="#" class=" basic botao btn-azul"><i class="glyphicon glyphicon-shopping-cart"></i> Solicitar Orçamento</a></p>
</div>
</div>
</div><!--fim da  Coluninha-->
<br>
<p class="clearfix"></p>
<br>
<p class="clearfix"></p>
</div>
</div><!--fim da spam10-->
</div><!--ROW-->
</div><!-- / .container -->
<p class="clearfix"></p>
<div class="container">
<div class="row">
<div class="col-md-9">
 <h3 class="-preto"><strong>Fale Conosco</strong></h3>
<p>Para tornar o atendimento mais fácil e ágil para você a DCS lhe oferece várias alternativas.</p>
<p><iframe src="https://www.google.com/maps/embed?pb=!1m18!1m12!1m3!1d910.8500644523843!2d-52.39546953743439!3d-24.05220553313494!2m3!1f0!2f0!3f0!3m2!1i1024!2i768!4f13.1!3m3!1m2!1s0x94ed7572d6322bd9%3A0x407601612e75d13d!2sR.+Abelar+Gon%C3%A7alves+Neto%2C+92+-+Jardim+Lar+Parana%2C+Campo+Mour%C3%A3o+-+PR%2C+87305-240!5e0!3m2!1spt-BR!2sbr!4v1421944485315" width="100%" frameborder="0" style="border:0"></iframe></p>
<p><i class="glyphicon glyphicon-home -azul"></i>  Rua Begônia, 634, Jd. Lar Paraná, Campo Mourão - PR</p>
<p><i class="glyphicon glyphicon-phone-alt -azul"></i>  44 3525 0990</p>
<p><i class="glyphicon glyphicon-envelope -azul"></i> <a href="maito:danilo@dcsdesenvolvimento.com.br"  class="link -preto">danilo@dcsdesenvolvimento.com.br</a></p>
<p><i class="glyphicon glyphicon-globe -azul"></i>  <a href="http://www.dcsdesenvolvimento.com.br/contato.php" class="link -preto">www.dcsdesenvolvimento.com.br/contato</a></p>
<h3>DCS no Facebook</h3>
 <iframe src="//www.facebook.com/plugins/facepile.php?app_id&href=https%3A%2F%2Fwww.facebook.com%2Fdcsdesenvolvimento&action&width&height&max_rows=3&colorscheme=light&size=large&show_count=true" scrolling="no" frameborder="0" style="border:none; overflow:hidden;" allowTransparency="true" width="100%"></iframe>
<p class="clearfix"></p>
</div>
<div class="col-md-3">
<h5 class="-preto"><strong>Veja Também</strong></h5>
<?php include "elementos/menu-sobre.php" ;?>
</div>
<p class="clearfix"></p>
    <div class="col-md-12"><?php include "elementos/anuncio-rodape.php" ;?></div></div>
	<br>
</div>

<?php include "elementos/pesquisa.php" ;?>
<?php include "elementos/rodape.php" ;?>
</body>
</html>
<?php include "elementos/scripts.php" ;?><!-- Scripts do rodape :) -->
<script src="script/lightbox-2.6.min.js"></script>
<script src="script/avalie.js"></script>
<script src="script/jquery-1.7.2.min.js"  ></script>
<script src="script/jquery.simplemodal.js"></script>
<script src="script/basic.js"></script>

<!-- modal content -->
<?php

/*if (isset($_GET['id_detalhes'])) {
	$id_detalhes= $_GET['id_detalhes'];
	*/
$sql3 = "select * from detalhes where associar='$associar'   ";
$query3       = mysql_query($sql3);
$row3         = mysql_fetch_array($query3);
$infs         = $row3['infs'];
$quantidades   = $row3['quantidades'];
$padrao_cores = $row3['padrao_cores'];
$tamanho      = $row3['tamanho'];
$associar1    = $row3['associar'];
$valor 		  = explode("<>", $padrao_cores);
?>
 <?php include "box/box-teste.php" ;?>
<!-- Load jQuery, SimpleModal and Basic JS files -->

Aqui é o que eu chamo de BOX, a tela que abre para a pessoa escolher as especificações:


<?php include "cabecalho-box.php"; 

?>
<div id="basic-modal-content">
<h3 class="titulo-box"><strong>Sobre o que Você Precisa</strong></h3>
    <h3><img src="/dcs2015/imagens/etapa1.jpg" alt="Etapa 1 - Solicitação de Orçamento DCS" title="Etapa 1 - Solicitação de Orçamento DCS"></h3>
<form action="http://www.dcsdesenvolvimento.com.br/forms/orcamento-enviar.php" method="post" id="site">
<fieldset> 
<label><p> Produto / Modelo: <input name="modelo" type="text" class=" formulario nome-produtos"  readonly="true" id="modelo" value="<?php echo $nome ?>" size="45" /></p></label>
<label><p> Cód. do produto: <input name="cod" type="text" class=" formulario login desbilitado" id="cod" readonly value="<?php echo $codigo ?>" size="8"/></p></label>
<?php 
//Tamanho quantidade
if ($quantidades <= "0") {echo "<label><p> Quantidade: <input name='quantidade' type='text' class='formulario login'  id='cod2' size='8' title='Informe a quantidade que você precisa' /></p></label>";}
else { include "tamanhos-teste.php";}
?>

<?php 
//padrao de cores
if($padrao_cores <= '0') echo "";
else echo "<label><p>Padrão de Cores <select class='formulario nascimento' type='text' name='cores'>
<option>--Escolha a Opção--</option>
<option>$valor[0]</option>
</select>
</p></label>";
?>
<p>Observações / Mensagem</p>
<label><textarea name="observacao" cols="100%" size="100%" rows="4" class="formulario obs" id="observacao" height="400px">(Descreva suas necessidades, outras quantidades, o tamanho, caso haja opções, ou outras observações)</textarea></label>
<p><button type="submit" class="btn-azul" ><i class="glyphicon glyphicon-share-alt"></i> Enviar</button> <a href="javascript:history.go(2)" class="botao btn-preto"><i class="glyphicon glyphicon-shopping-cart"></i> Escolher Mais Produtos</a>
</fieldset>
</form>
<p class="clearfix"></p>
</div>
<!-- preload the images -->
<div style='display:none'>
<img src='../dcs/img/basic/x.png' alt='' />
</div>
<p class="clearfix"></p>

Essa página já é a include, que é o arquivo principal da questão deste tópico. É onde abre a quantidade/tamanho quando requisitada

		<style type="text/css">
			.carregando{
				color:#666;
				display:none;
			}
		</style>
		<?php
		
		?>
		<p><label for="cod_quantidade">Quantidade:</label>
		<select name="quantidade" id="cod_quantidade" class='formulario nascimento'>
			<option value="">-- Escolha a Quantidade --</option>
			<?php
			    $relacionar= $row['relacionar'];
				$sql = "select * from quantidade where relacionar='5'";
						
				$res = mysql_query( $sql );
				while ( $row = mysql_fetch_assoc( $res ) ){ echo '<option value="'.$row['cod_quantidade'].'">'.$row['sigla'].'</option>';
				}
			?>
		</select></p>

		<p><label for="cod_tamanho">Tamanho:</label>
		<span class="carregando">Aguarde, carregando...</span>
		<select name="tamanho" id="cod_tamanho" class='formulario nascimento'>
			<option value="">-- Escolha o Tamanho --</option>
		</select></p>

		<script src="http://www.google.com/jsapi"></script>
		<script type="text/javascript">
		  google.load('jquery', '1.3');
		</script>		

		<script type="text/javascript">
		$(function(){
			$('#cod_quantidade').change(function(){
				if( $(this).val() ) {
					$('#cod_tamanho').hide();
					$('.carregando').show();
					$.getJSON('tamanhos.ajax.php?search=',{cod_quantidade: $(this).val(), ajax: 'true'}, function(j){
						var options = '<option value=""></option>';	
						for (var i = 0; i < j.length; i++) {
							options += '<option value="' + j[i].cod_tamanho + '">' + j[i].nome + '</option>';
						}	
						$('#cod_tamanho').html(options).show();
						$('.carregando').hide();
					});
				} else {
					$('#cod_tamanho').html('<option value="">– Escolha um quantidade –</option>');
				}
			});
		});
		</script>
 

E por fim, o tal .ajax

<?php
	header( 'Cache-Control: no-cache' );
	header( 'Content-type: application/xml; charset="utf-8"', true );
include '/config2/produtos-conexao.php';

	$cod_quantidade = mysql_real_escape_string( $_REQUEST['cod_quantidade'] );

	$tamanho = array();

	$sql = "SELECT cod_tamanho, nome
			FROM tamanho
			WHERE quantidade_cod_quantidade=$cod_quantidade
			ORDER BY nome";
	$res = mysql_query( $sql );
	while ( $row = mysql_fetch_assoc( $res ) ) {
		$tamanho[] = array(
			'cod_tamanho'	=> $row['cod_tamanho'],
			'nome'			=> $row['nome'],
		);
	}

	echo( json_encode( $tamanho ) ); 

Só para ter uma ideia, o link do meu site com o box e tudo é esse http://dcsdesenvolvimento.com.br/m-adesivos-couche.php mas ainda o que estou desenvolvendo não foi enviado para web

Compartilhar este post


Link para o post
Compartilhar em outros sites

Concatena assim

 
$sql = "SELECT cod_tamanho, nome
            FROM tamanho
            WHERE quantidade_cod_quantidade= ".$cod_quantidade
            ." ORDER BY nome ";
// Se a variável conter string fas assim ... _code_quantidade = ' ".$variavel." ' ORDER....

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá!

Pelo que eu entendi teríamos que substituir o "select" do arquivo .ajax certo?

 

Trocar isso:

$sql = "SELECT cod_tamanho, nome
            FROM tamanho
            WHERE quantidade_cod_quantidade=$cod_quantidade
            ORDER BY nome";

por isso:

$sql = "SELECT cod_tamanho, nome
            FROM tamanho
            WHERE quantidade_cod_quantidade= ".$cod_quantidade
            ." ORDER BY nome ";
// Se a variável conter string fas assim ... _code_quantidade = ' ".$variavel." ' ORDER....

Se for assim mesmo, eu fiz a alteração mas continuou igual. Não é que não funcionou, simplesmente continuou igual ao que estava antes.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Rapaz, não sou expert, mas pensaria assim

 

Acho que você precisará usar o INNER JOIN,

 

Mas para funfar beleza, é necessário haver uma tabela de cadastro destes produtos, e outra tabela contendo o id do produto e o tamanho de tal produto, então, teria que haver umas condições para guardar os tamanhos certinhos de acordo com o produto. Quando você cadastrar o produto, alimentará então duas tabelas, o cadastro do produto e outra contendo a relação desse produto com o tamanho, não adicione na outra nada além do que o id do produto, não precisa do nome, basta o id

 

Partindo da perspectiva de que existe esta relação. seria mais ou menos assim

 

 

$sql = "SELECT cod_tamanho, nome, quantidade
FROM tamanho INNER JOIN quantidades ON tamanho.cod_produto = quantidades.codproduto AND  quantidade_cod_quantidade= ".$cod_quantidade
." ORDER BY nome ";
 

Compartilhar este post


Link para o post
Compartilhar em outros sites

LdoVale Blz?

 

Muito obrigado pelas dicas, eu fiz uns negócios lá e antes de dormir a tabela funcionou. Uma das coisas que fiz, foi fazer o sql ou concatenação no arquivo principal e fiz mais uma ligação entre a tabela dos produtos, com a tabela das especificações e parece que deu certo...

 

Muito obrigado a todos pelo suporte ai ;)

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

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