Declaração de variavel para query

PHP

Banco de Dados

09/11/2017

estou com problema na declaração de uma variável ela não esta entrando na query, porem quando faço um dump no post a variavel recebe o valor so não passa pra query.

cod 1

<?php

if (isset($_POST['acao']) && $_POST['acao'] == "enviar"){

$vano = $_POST['csg2'];
$vmes = $_POST['csg'];

}
var_dump($_POST);

$i=0;
$altura=100;
try{
$arqDAOBd = new ArquivoDAOBd();
$datas_movimento = $arqDAOBd->listarDatasMovimento();
foreach ($datas_movimento as $data_movimento){
if($i%$altura==0){
echo "<table>";
}
$i++;

$dataBra = Conversao::dataMysql2Bra($data_movimento);
echo "<tr><td>$i</td><td class='abrir'>$dataBra</td></tr>";
if($i%$altura==0){

echo "</table>";
}
}
}
catch (Exception $e){
echo $e->getMessage();
}

funciton que executa a query


public function listarDatasMovimento(){
$datas = array();
$prepare = $this->conexao->prepare("SELECT distinct data_movimento FROM depjud.v_conjunto_layouts where year(data_movimento) = $vano and month(data_movimento) = $vmes order by data_movimento limit 0,25 ");

$prepare->execute();
while($reg = $prepare->fetch(PDO::FETCH_ASSOC)){
$datas[] = $reg["data_movimento"];
}
return $datas;
}
Lincoln Carvalho

Lincoln Carvalho

Curtidas 0

Melhor post

Marcelo Santana

Marcelo Santana

09/11/2017

Boa tarde, Lincoln. Seguinte, quando for postar código no fórum. Utilize o botão "Inserir código" na barrinha logo abaixo da "SUA RESPOSTA". Deixei o código organizado, indentado para melhor visualização. E para assim ajudarmos.
Sobre sua pergunta, você está dando um var_dump diretamente no post, e não nas variáveis que criou. Se der um var_dump nas variáveis, eles não irão aparecer, já que você as criou dentro do "if", sendo ela só é reconhecida no if. Mas tem um probleminha de lógica ali também. Para não mudar muito seu sistema, faça o seguinte, feche o if após o fechamento do "catch". Assim você só tentaria conectar ao banco após passar pelo seu controle.

Feito isso, passe as variáveis via parâmetro. Você pode implementar outros controle, por exemplo, para não enviarem os campos vazios e etc..

Vou mandar um exemplo: referente a sua dúvida.




<?php	

if (isset($_POST['acao']) && $_POST['acao'] == "enviar"){
	
	$vano = $_POST['csg2'];
	$vmes = $_POST['csg'];
	
	//var_dump($_POST);

	$i=0;
	$altura=100;
	
	try{
		$arqDAOBd = new ArquivoDAOBd();
		$datas_movimento = $arqDAOBd->listarDatasMovimento($vano,$vmes);
		
		foreach ($datas_movimento as $data_movimento){
			if($i%$altura==0){
				echo "<table>";
			}
		
			$i++;

			$dataBra = Conversao::dataMysql2Bra($data_movimento);
			echo "<tr><td>$i</td><td class='abrir'>$dataBra</td></tr>";
	
			if($i%$altura==0){
				echo "</table>";
			}
		}
	}
	catch (Exception $e){
		echo $e->getMessage();
	}
} // Encerramento do IF
 
public function listarDatasMovimento($ano,$mes){
	$datas = array();
	$prepare = $this->conexao->prepare("SELECT distinct data_movimento FROM depjud.v_conjunto_layouts where year(data_movimento) = $ano and month(data_movimento) = $mes order by data_movimento limit 0,25 ");

	$prepare->execute();
	
	while($reg = $prepare->fetch(PDO::FETCH_ASSOC)){
		$datas[] = $reg["data_movimento"];
	}
	return $datas;
}




?>

GOSTEI 1
POSTAR