Jump to content


Gustavo de Brito

Member Since 21/01/2009
Offline Last Active 04/08/2011, 21:25
-----

Topics I've Started

Excluir Resultados De Uma Consulta Com Group By

16/12/2010, 19:38

Tudo bom pessoal? Estou há 4 dias quebrando a cabeça nesta consulta que é aparentemente simples mas não consigo executar de jeito nenhum. Já utilizei o sistema de busca, lí metade do livro de PHP e Mysql Básico do Juliano Niederauer além de mais de 10 apostilas na web. Desculpem se a resposta está em algum tópico, mas não achei. Vou ao problema:

Preciso simplesmente executar uma consulta de uma tabela similar a esta, onde preciso listar os "técnicos" que estão "disponíveis" no momento, ou seja, se o mesmo já possui um registro com o status "baixado" MAS está em execução o mesmo não pode aparecer no resultado. Segue exemplo:


tecnico | status |
-----------------------------------------
João | Baixado |
João | Exec |
Jonas | Exec |
Jonas | Baixado |
Jonas | Baixado |
Jonas | Baixado |
Roberto | Baixado |
Marcos | Baixado |
Marcos | Baixado |


Os resultados DEVEM APARECER AGRUPADOS, e os únicos resultados que precisam aparecer é "Roberto" e "Marcos", pois o João e o Jonas estão "em execução", logo não estão "disponíveis". O problema é que quando abrupo os resultados todos os nomes aparecem, independente da condição que coloco no WHERE.

Segue a última versão da consulta que elaborei tentando resolver o problema:

mysql_query ("SELECT tecnico
FROM ordem
WHERE status NOT LIKE (Exec)
GROUP BY tecnico

") or die (mysql_error());

Como dito, o problema é que quando abrupo os resultados todos os nomes aparecem, independente da condição que coloco no WHERE.

Será que alguém pode me ajudar?

Problema Em Comparação De Datas Em Campo Varchar

13/09/2010, 22:51

Fala pessoal, tudo bom? Vou direto ao assunto com os últimos neurônios que me restam.

Tenho um BD com um campo onde armazeno uma data no formato brasileiro dd/mm/aaaa e o tipo do campo é VARCHAR. Preciso agora realizar consultas neste banco, informando data inicial e final de um intervalo. Aí está o problema. Já tentei de toda a forma converter na hora a data para conseguir realizar a consulta, e para meu espanto, a sintaxe d/m/Y do date está me retornando a data invertida.

Agradeço se alguém conseguir me ajudar. A pesquisa abaixo, apesar de grande, funciona perfeitamente sem o between de datas em negrito que preciso inserir.

Segue o código:


<?php

require_once("connect.php"); 

[b]$data1 = date("d/m/Y", strtotime($_POST['data_search_ini']));[/b] //aqui já fica estranho pois quando dou um echo em outra parte do script a data capturada aparece como m/d/Y, ex: Se digitei 10/05/2010 aparece 05/10/2010, acho que aqui está o problema

[b]$data2 = date("d/m/Y", strtotime($_POST['data_search_ini2']));[/b]


?>

<html>
<head>
<meta http-equiv="Content-Language" content="pt-br">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>Pesquisa Intervalo Técnico</title>

<style type="text/css">
<!--
.arial12 {font-family: Arial, Helvetica, sans-serif;
}
.arial12 {font-size: 12px;
}
-->
</style>
</head>

<form id="form1" name="form1" method="post" action="hora5.php">
<p align="center">Teste de data</p>
<p align="center">data inicio = 
  <label>
  <input type="text" name="data_search_ini" id="data_search_ini">
  </label>
</p>
<p align="center">data t&eacute;rmino =
  <label>
  <input type="text" name="data_search_ini2" id="data_search_ini2">
  </label>
</p>
<p align="center">
  <label>
  <input type="submit" name="button" id="button" value="Pesquisa!!!">
  </label>
</p>
<p align="center">Data Pesquisada Inicial: <span class="arial12"><?php echo $data1; ?></span></p>
<p align="center">Data Pesquisada Final: <span class="arial12"><?php echo $data2; ?></span></p>
<table width="980" border="0" align="center" cellpadding="5">
  <tr bgcolor="#999999">
    <td width="101" bgcolor="#CCCCCC" class="arial12">Ordem</td>
    <td width="67" bgcolor="#CCCCCC" class="arial12">Teminal</td>
    <td width="86" bgcolor="#CCCCCC" class="arial12">Empresa</td>
    <td width="71" bgcolor="#CCCCCC" class="arial12">Tipo</td>
    <td width="81" bgcolor="#CCCCCC" class="arial12">Agendamento</td>
    <td width="53" bgcolor="#CCCCCC" class="arial12">Per&iacute;odo</td>
    <td width="229" bgcolor="#CCCCCC" class="arial12">T&eacute;cnico</td>
    <td width="194" bgcolor="#CCCCCC" class="arial12">Status</td>
  </tr>
  <?php

//consulta principal que lista os servi&ccedil;os

$painel = mysql_query ("SELECT ordem.id,ordem.ordem,ordem.terminal,tipo.tipo,ordem.data_agenda,periodo.periodo,tecnico.re,tecnico.nome,tecnico.telefone_celular,ordem.hora,usuarios.nome_completo,status.status,empresa.empresa
						
						FROM ordem
						
						JOIN tipo ON tipo.id = ordem.tipo						
						JOIN periodo ON periodo.id = ordem.periodo
						JOIN tecnico ON tecnico.id = ordem.tecnico						
						JOIN usuarios ON usuarios.id = ordem.usuario
						JOIN status ON status.id = ordem.status
						JOIN empresa ON empresa.id = ordem.empresa
						
						WHERE ordem.empresa = '1' AND ordem.status = '3' AND ordem.tipo ='0' [b]AND ordem.data_agenda BETWEEN '$data1' AND '$data2' [/b]
											
						ORDER BY ordem.data_agenda ASC
						
						");

$linhas = mysql_num_rows($painel);

while ($res = mysql_fetch_array($painel)){
	
	$p10 = $res[0];
	$p11 = $res[1];
	$p12 = $res[2];
	$p13 = $res[3];
	$p14 = $res[4];
	$p15 = $res[5];
	$p16 = $res[6];
	$p17 = $res[7];
	$p18 = $res[8];
	$p19 = $res[9];
	$p20 = $res[10];
	$p21 = $res[11];
	$p22 = $res[12];
	?>
  <tr>
    <td class="arial12"><?php print $p11; ?></td>
    <td class="arial12"><?php print $p12; ?></td>
    <td class="arial12"><?php print $p22; ?></td>
    <td class="arial12"><?php print $p13; ?></td>
    <td class="arial12"><?php print $p14; ?></td>
    <td class="arial12"><?php print $p15; ?></td>
    <td class="arial12"><?php print $p17; ?></td>
    <td class="arial12"><?php print $p21; ?></td>
  </tr>
  <?php
} 
?>
</table>
<p align="center">Total: <?php echo $linhas; ?> Resultados</p>
<p align="center">&nbsp;</p>
<p align="center">&nbsp;</p>
</form>
</body>
</html>


Muito obrigado.

IPB Skin By Virteq