Jump to content
Sign in to follow this  
mnmn

Capturar resultados de select usando PDO

Recommended Posts

Olá pessoal, tudo bom?

 

Poderiam me ajudar?

 

Depois de executar o primeiro select preciso capturar o valor de duas calunas para cada linha retornada na consulta.

 

As colunas que preciso capturar são: horario_horariofuncionario e tempo_servicosalao.

 

Após capturar os valores dessas colunas, necessito usar esses valores no select que está dentro do laço WHILE.

 

Porém a variável está vindo com valor diferente: deveria ser '21:00' mas está vindo :00

<?php

include 'conectar.php';

$servico = $_GET['servico'];
$data = $_GET['data'];
$diaDaSemana = $_GET['diaDaSemana'];

$stmt = $conn->query("SET CHARACTER SET utf8");
$stmt = $conn->query("SET NAMES utf8");

	//Selecionando horários disponíveis na data selecionada para todos profissionais que fizerem o serviço selecionado
	$stmt = $conn->prepare("SELECT hf.horario_horariofuncionario, hf.codigo_horariofuncionario, sf.codigo_servicosalao, s.nome_servico, ss.tempo_servicosalao, ss.preco_servicosalao, hf.data_horariofuncionario, hf.nomeDiaSemana_horariofuncionario, f.codigo_funcionario, f.nome_funcionario, f.apelido_funcionario, f.foto_funcionario FROM servicosalao ss NATURAL JOIN servico s NATURAL JOIN horariofuncionario hf NATURAL JOIN funcionario f NATURAL JOIN servicofuncionario sf WHERE sf.codigo_servicosalao = :servico AND hf.data_horariofuncionario = :data AND hf.nomeDiaSemana_horariofuncionario = :diaDaSemana AND hf.codigo_statushorariofuncionario IN (1,3) ORDER BY STR_TO_DATE(hf.horario_horariofuncionario,'%H:%i')");

	$stmt->bindParam(':servico', $servico, PDO::PARAM_INT);
	$stmt->bindParam(':data', $data, PDO::PARAM_STR, 10);
	$stmt->bindParam(':diaDaSemana', $diaDaSemana, PDO::PARAM_STR, 15);
	$stmt->execute();

	//Criando array
	$rows = array();

	//Percorrendo resultados retornados
	while($row = $stmt->fetch(PDO::FETCH_ASSOC)) {

		$horario = $row['horario_horariofuncionario'];
		$tempo = $row['tempo_servicosalao'];

		$stmt = $conn->prepare("SELECT hf.horario_horariofuncionario
	    FROM horariofuncionario hf 
	    NATURAL JOIN servicofuncionario sf 
	  	WHERE sf.codigo_servicosalao = :servico 
	  	AND hf.data_horariofuncionario = :data 
	  	AND hf.nomeDiaSemana_horariofuncionario = :diaDaSemana 
	  	AND hf.codigo_statushorariofuncionario = 2 
	    group by (hf.horario_horariofuncionario)
	    HAVING STR_TO_DATE(hf.horario_horariofuncionario,'%H:%i')
	 	BETWEEN STR_TO_DATE($horario,'%H:%i') AND
	 	SEC_TO_TIME( SUM( TIME_TO_SEC( STR_TO_DATE($horario,'%H:%i') )
	    + TIME_TO_SEC( STR_TO_DATE($tempo,'%i') ) ) )");

	    $stmt->bindParam(':servico', $servico, PDO::PARAM_INT);
		$stmt->bindParam(':data', $data, PDO::PARAM_STR, 10);
		$stmt->bindParam(':diaDaSemana', $diaDaSemana, PDO::PARAM_STR, 15);
		$stmt->execute();

	    //Recebendo o número de linhas retornadas
		$rows = $stmt->fetchAll();

		//Contando o número de linhas retornadas
		$total = count($rows);

		//Se não retornou resultados
		if($total  < 1) {
			$rows[] = $row;
		}
	}

	echo json_encode($rows);

?>

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
Sign in to follow this  

  • Similar Content

    • By Sapinn
      Estou trazendo os dados do banco de dados e eles estão vindo com problema na acentuação
      uso o seguinte codigo no php
      <?php
      include_once ‘…/php/conexao.php’;
      header(‘Content-Type: text/html; charset=utf-8’);
      mysqli_query($conn,“SET NAMES ‘utf8’”);
      mysqli_query($conn,‘SET character_set_connection=utf8’);
      mysqli_query($conn,‘SET character_set_client=utf8’);
      mysqli_query($conn,‘SET character_set_results=utf8’);
      ?>
      E no html
      Mesmo assim as palavras com acento ficam com aquele erro desgraçado com a interrogação
      Alguem me ajuda ai
    • By FabianoSouza
      Estou usando SQL dinâmico num select. Até aqui tudo bem. Funciona.
       
      Agora preciso pegar alguns campos desse select e passar para variáveis.
      Na forma normal seria assim (isso funciona)
      SELECT @checkAcesso = COUNT(*), @contAcesso = campo2 FROM tab ... Estou tentando adaptar para conseguir isso acima, mas num SELECT dinâmico. Mas sem sucesso.
      SET @sql = 'SELECT ' SET @sql = @sql + @variavel + '= T.meuCampo ' SET @sql = @sql + ' FROM tabela AS T ' EXEC(@sql) Dessa forma simplesmente não exibe nada.
       
      Help!
    • By Sapinn
      Estou tentando aprender PDO com MVC através de aulas no youtube. Estou com um problema no desenvolvimento de um framework quando chamo o parâmetro. Estou debugando o codigo para tentar achar o erro e parece que o paramentro chamado é o anterior.
      Quando uso o seguinte link http://localhost/framework_mvc/paginas e debugo aparece o seguinte:
       
       object(Rota)#1 (3) { ["controlador":"Rota":private]=> object(Paginas)#2 (0) { } ["metodo":"Rota":private]=> string(5) "index" ["parametros":"Rota":private]=> array(1) { [0]=> string(7) "paginas" } }
       
      Ate ai tudo certo. Quando uso o seguinte link http://localhost/framework_mvc/paginas/sobre e debugo aparece o seguinte: 
      object(Rota)#1 (3) { ["controlador":"Rota":private]=> object(Paginas)#2 (0) { } ["metodo":"Rota":private]=> string(5) "sobre" ["parametros":"Rota":private]=> array(1) { [0]=> string(7) "paginas" } }
       
      Quando o que deveria ocorrer era um erro e ser necessário que fosse adicionado mais um parametro na url ficando por exemplo assim:  http://localhost/framework_mvc/paginas/sobre/24.
       
      Codigos usados:
      Rota.php
      <?php class Rota{     private $controlador = 'Paginas';     private $metodo = 'index';     private $parametros = [];     public function __construct(){         $url = $this->url() ? $this->url() : [0];         if(file_exists('../app/Controllers/'.ucwords($url[0]).'php')):                 $this->controlador = ucwords($url[0]);                 unset($url[0]);         endif;                  require_once '../app/Controllers/'.$this->controlador.'.php';         $this->controlador = new $this->controlador;         if(isset($url[1])):             if(method_exists($this->controlador, $url[1])):                 $this->metodo = $url[1];                 unset($url[1]);             endif;         endif;         $this->parametros = $url ? array_values($url) : [];         call_user_func_array([$this->controlador,$this->metodo], $this->parametros);                var_dump($this);     }     private function url(){         $url = filter_input(INPUT_GET,'url',FILTER_SANITIZE_URL);         if(isset($url)):             $url = trim(rtrim($url,'/'));             $url = explode('/',$url);             return $url;         endif;     } }  
      Paginas.php
      <?php class Paginas{     public function index(){              }     public function sobre($id){         echo $id."<hr/>";     } } index.php
       
      <?php include './../app/Libraries/Rota.php'; ?> <!DOCTYPE html> <html lang="pt-br"> <head>     <meta charset="UTF-8">     <meta name="viewport" content="width=device-width, initial-scale=1.0">     <title>Frameword de PHP7 - MVC</title> </head> <body>     <?php         $rotas = new Rota();     ?> </body> </html>  
      A video aula que estou assistindo é essa: 
       
    • By Sapinn
      Tenho um form que pergunto o nome, sobrenome, email, idade e telefone de contato. Como faço para verificar se o email digitado já foi cadastrado e retorna na mesma pagina uma mensagem caso ele ja existe ou prosseguir para a area do usuario caso ele não exista sem da refresh na página.
    • By Wanderson Moreira
      bom dia, 

      preciso fazer um select e verificar se o ID do usuário logado existe em em uma coluna do banco de dados
      por exemplo

      ID Usuario: 6
      coluna do banco: 1, 3, 5, 16
       
      O problema é que se eu fizer o select com LIKE ele considera o numero 16 como 1 e 6 invés de considerar um numero só, com isso o usuário 6 acaba sendo incluso no select indevidamente
       
      alguém poderia me ajudar?
×

Important Information

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