Ir para conteúdo

POWERED BY:

Arquivado

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

Douglas Fabiano

[Resolvido] Deixar linha em branco

Recommended Posts

Tenho um select em uma tabela mysql... porem nessa select tenho que deixar uma linha em branco para pesquisar e retornar todos, sem selecionar nenhum veículo.. vejam meu código php onde estou fazendo select... Ja tentei deixar uma linha em branco na minha base mas não deu certo... dá rpa deixar uma linha em branco utilizando php?

 

<select name="viatura" class="iNome" onFocus="this.style.backgroundColor='#AFE5FF';" onBlur="this.style.backgroundColor='';">
<?php
//chama o arquivo de conexão com o bd
include("conexao_1_sysvtr.php");
?>
              <?php 
$cidades = mysql_query("SELECT * FROM tbl_viaturas")or die(mysql_error());
if(mysql_num_rows($cidades) > 0)
{
while($ver = mysql_fetch_array($cidades))
{
?>
              <option value="<?php print $ver['vtr_descricao'];?>" selected="selected"><?php print $ver['vtr_descricao'];?></option>
              <?php
}
}else{
print 'Não há registros';
}
?>
            </select>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eh soh colocar um

<option value = ""> Trazer Todos </option>

depois do

<select name="viatura" class="iNome" onfocus="this.style.backgroundColor='#AFE5FF';" onblur="this.style.backgroundColor='';">

Depois no PHP você trata:

 

if($_POST['viatura'] == "")
{
   // Select que traz todos
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tente assim....

<select name="viatura" class="iNome" onFocus="this.style.backgroundColor='#AFE5FF';" onBlur="this.style.backgroundColor='';">
<option value="todos" selected="selected">todos os veiculos</option>
<?php
//chama o arquivo de conexão com o bd
include("conexao_1_sysvtr.php");
?>
              <?php 
$cidades = mysql_query("SELECT * FROM tbl_viaturas")or die(mysql_error());
if(mysql_num_rows($cidades) > 0)
{
while($ver = mysql_fetch_array($cidades))
{
?>
              <option value="<?php print $ver['vtr_descricao'];?>"><?php print $ver['vtr_descricao'];?></option>
              <?php
}
}else{
print 'Não há registros';
}
?>
            </select>

no php faça assim....

if($_POST['viatura'] == "todos")
{
   // Select que trazer todos os carros....
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ainda não deu certo... Vejam por favor:

 

Página de Consulta - formulário (ate aqui tudo bem):

 

<form action="consulta_data.php" method="post" name="form" id="frm">
  <p><strong>Informe a Viatura:</strong>
    <select name="viatura" class="iNome" onFocus="this.style.backgroundColor='#AFE5FF';" onBlur="this.style.backgroundColor='';">
<option value="todos" selected="selected">Todos Carros</option>
<?php
//chama o arquivo de conexão com o bd
include("conexao_1_sysvtr.php");
?>
              <?php 
$cidades = mysql_query("SELECT * FROM tbl_viaturas")or die(mysql_error());
if(mysql_num_rows($cidades) > 0)
{
while($ver = mysql_fetch_array($cidades))
{
?>
              <option value="<?php print $ver['vtr_descricao'];?>" selected="selected"><?php print $ver['vtr_descricao'];?></option>
              <?php
}
}else{
print 'Não há registros';
}
?>
            </select>
  <span class="style4">* Caso Queira ver todas as viaturas deixe em branco </span></p>
  <p><strong>Informe a Período</strong>:  </p>
  <p>Data Inicial
    <input type="text" name="data_inicial" id="data_1" class="iNome" onFocus="this.style.backgroundColor='#AFE5FF';" onBlur="this.style.backgroundColor='';" />
  - Formato da Data: 99/99/9999 </p>
  <p>Data Final:
    <input type="text" name="data_final" id="data_2" class="iNome" onFocus="this.style.backgroundColor='#AFE5FF';" onBlur="this.style.backgroundColor='';" />
  - Formato da Data: 99/99/9999 </p>
  <p>
    <input type="submit" name="Submit" value="Gerar Relatório" />
  </p>
</form>

 

Página da consulta - php:

 

<?php
//chama o arquivo de conexão com o bd
include("conexao_1_sysvtr.php");
?>
<?
 $opcoes = '';
   if ($_POST['viatura']<>'')
      $opcoes.= ' vtr like "%'.$_POST['viatura'].'%"';
   if ($_POST['data_inicial']<>'')
      $opcoes.= ($opcoes==''?'':' AND').' data_manutencao>="'.$_POST['data_inicial'].'"';
   if ($_POST['data_final']<>'')
      $opcoes.= ($opcoes==''?'':' AND').' data_manutencao<="'.$_POST['data_final'].'"';
	  $query = mysql_query("SELECT * FROM tbl_principal".($opcoes==''?'':' WHERE'.$opcoes)." ORDER BY vtr") or die(mysql_error());
   while($array = mysql_fetch_array($query))
   if($_POST['viatura'] == "")
{
   "SELECT * FROM tbl_principal".($opcoes==''?'':' WHERE'.$opcoes)." ORDER BY vtr") or die(mysql_error());
   while($array = mysql_fetch_array($query))
}
   {
   //mostra na tela o nome do carro e tipo de manutenção
      echo '  <tr>',chr(10);
   echo '    <td>'.$array['vtr'].'</td><td>'.date('d/m/Y',strtotime($array['data_manutencao'])).'</td><td>'.$array['tipo_manutencao'].'</td><td>'.$array['vr_unitario_servico'].'</td><td>'.$array['vr_total_pecas'].'</td><td>'.$array['vr_total_manutencao'].'</td>',chr(10);
   echo '  </tr>',chr(10);
   }
   ?>
</body>
</html>

Compartilhar este post


Link para o post
Compartilhar em outros sites

if ($_POST['viatura']<>'')
      $opcoes.= ' vtr like "%'.$_POST['viatura'].'%"';
else
   $opcoes.= '';

Coloca esse else depois do IF!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ainda não retornou...

 

Fiz uma linha em branco na select do formulário que envia para a pesquisa,,, mesmo assim ainda não deu certo

 

Código do formulário;

 

<form action="consulta_data.php" method="post" name="form" id="frm">
  <p><strong>Informe a Viatura:</strong>
    <select name="viatura" class="iNome" onFocus="this.style.backgroundColor='#AFE5FF';" onBlur="this.style.backgroundColor='';">
<option value="todos" selected="selected"></option>
<?php
//chama o arquivo de conexão com o bd
include("conexao_1_sysvtr.php");
?>
              <?php 
$cidades = mysql_query("SELECT * FROM tbl_viaturas")or die(mysql_error());
if(mysql_num_rows($cidades) > 0)
{
while($ver = mysql_fetch_array($cidades))
{
?>
              <option value="<?php print $ver['vtr_descricao'];?>" selected="selected"><?php print $ver['vtr_descricao'];?></option>
              <?php
}
}else{
print 'Não há registros';
}
?>
            </select>
  <span class="style4">* Caso Queira ver todas as viaturas deixe em branco </span></p>
  <p><strong>Informe a Período</strong>:  </p>
  <p>Data Inicial
    <input type="text" name="data_inicial" id="data_1" class="iNome" onFocus="this.style.backgroundColor='#AFE5FF';" onBlur="this.style.backgroundColor='';" />
  - Formato da Data: 99/99/9999 </p>
  <p>Data Final:
    <input type="text" name="data_final" id="data_2" class="iNome" onFocus="this.style.backgroundColor='#AFE5FF';" onBlur="this.style.backgroundColor='';" />
  - Formato da Data: 99/99/9999 </p>
  <p>
    <input type="submit" name="Submit" value="Gerar Relatório" />
  </p>
</form>

Agora o código da consulta:

<?php
//chama o arquivo de conexão com o bd
include("conexao_1_sysvtr.php");
?>
<?
 $opcoes = '';
   if ($_POST['viatura']<>'')
      $opcoes.= ' vtr like "%'.$_POST['viatura'].'%"';
	  else
	  $opcoes.='';
   if ($_POST['data_inicial']<>'')
      $opcoes.= ($opcoes==''?'':' AND').' data_manutencao>="'.$_POST['data_inicial'].'"';
   if ($_POST['data_final']<>'')
      $opcoes.= ($opcoes==''?'':' AND').' data_manutencao<="'.$_POST['data_final'].'"';
	  $query = mysql_query("SELECT * FROM tbl_principal".($opcoes==''?'':' WHERE'.$opcoes)." ORDER BY vtr") or die(mysql_error());
   while($array = mysql_fetch_array($query))
   {
   //mostra na tela o nome do carro e tipo de manutenção
      echo '  <tr>',chr(10);
   echo '    <td>'.$array['vtr'].'</td><td>'.date('d/m/Y',strtotime($array['data_manutencao'])).'</td><td>'.$array['tipo_manutencao'].'</td><td>'.$array['vr_unitario_servico'].'</td><td>'.$array['vr_total_pecas'].'</td><td>'.$array['vr_total_manutencao'].'</td>',chr(10);
   echo '  </tr>',chr(10);
   }
   ?>

Alguem tem idéia do que possa estar havendo com esse erro no código?

 

Obrigado!

 

Deixei o a primeira option como campo em branco.... porem ainda não deu certo ele não retorna todas veiculos:

 

    <select name="viatura" class="iNome" onFocus="this.style.backgroundColor='#AFE5FF';" onBlur="this.style.backgroundColor='';">
<option value="todos" selected="selected"></option>

Compartilhar este post


Link para o post
Compartilhar em outros sites

cara aqui uma ideia pra você fazer.......

teste.php

 <select name="viatura" class="iNome" onfocus="this.style.backgroundColor='#AFE5FF';" onblur="this.style.backgroundColor='';">
<option value="todos" selected="selected">Todos os Veiculos</option>
<?php
//chama o arquivo de conexão com o bd
include("conexao_1_sysvtr.php");
?>
              <?php 
$cidades = mysql_query("SELECT * FROM tbl_viaturas")or die(mysql_error());
if(mysql_num_rows($cidades) > 0)
{
while($ver = mysql_fetch_array($cidades))
{
?>
              <option value="<?php print $ver['vtr_descricao'];?>" selected="selected"><?php print $ver['vtr_descricao'];?></option>
              <?php
}
}else{
print 'Não há registros';
}
?>
            </select>
			<span class="style4">* Caso Queira ver todas as viaturas deixe em branco </span></p>
  <p><strong>Informe a Período</strong>:  </p>
  <p>Data Inicial
    <input type="text" name="data_inicial" id="data_1" class="iNome" onfocus="this.style.backgroundColor='#AFE5FF';" onblur="this.style.backgroundColor='';" />
  - Formato da Data: 99/99/9999 </p>
  <p>Data Final:
    <input type="text" name="data_final" id="data_2" class="iNome" onfocus="this.style.backgroundColor='#AFE5FF';" onblur="this.style.backgroundColor='';" />
  - Formato da Data: 99/99/9999 </p>
  <p>
    <input type="submit" name="Submit" value="Gerar Relatório" />
  </p>
</form>

consulta_data.php

<?php
//chama o arquivo de conexão com o bd
include("conexao_1_sysvtr.php");

$select = $_POST['viatura'];
       if($select == "todos"){
	   
	   $sql = mysql_query("select * from tbl_viaturas")
	   while($ver = mysql_fetch_array($sql)){
   // Select que trazer todos os carros....
    echo $ver['nome_carro']."<br />";
    echo $ver['veiculo']."<br />";
	echo $ver['blablabla']."<br />";
	echo $ver['qualquer_outra_coisa']."<br /><br />";
}   
} 
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Infelizmente ainda não retornou!

 

Ja tentei de QUASE tudo,,, mas ainda vamos conseguir...

 

Olha faz assim explica melhor o que tu quer fazer

 

é tipo assim

se a pessoa escolher um carro

na outra pagina vai trazer só aquele carro certo?

 

mais se ela escolher todos os carros vai trazer todos os carros né isso ?

 

mais explica melhor como tu quer

e colocar o teu SQL do banco de dados .!'

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom macielcr7 é exatamente isso que eu preciso... Porem qquando a pessoa escolhe um carro o resultado dá certinho consegui fazer ele retorna tudo sobre o veículo selecionado.. ate´tudo bem..

 

mas quando eu coloco em "Todos os Carros" ou algo desse tipo e páfina fica em Branco não retorna nada...

 

Ou seja você entendeu tudo certinho,,, é isso mesmo ...

 

abaixo meu sql do banco.

 

 `codigo` tinyint(30) unsigned NOT NULL AUTO_INCREMENT,
  `vtr` varchar(50) DEFAULT NULL,
  `placa` varchar(10) DEFAULT NULL,
  `marca` varchar(20) DEFAULT NULL,
  `tipo_manutencao` varchar(20) DEFAULT NULL,
  `servico_realizado` varchar(100) DEFAULT NULL,
  `pecas_utilizadas` varchar(300) DEFAULT NULL,
  `qtd_de_pecas` varchar(10) DEFAULT NULL,
  `vr_unitario_servico` varchar(10) DEFAULT NULL,
  `vr_unitario_pecas` varchar(10) DEFAULT NULL,
  `vr_total_pecas` varchar(10) DEFAULT NULL,
  `vr_total_manutencao` varchar(10) DEFAULT NULL,
  `data_manutencao` date DEFAULT NULL,
  `qtd_abastecimento_litros` tinyint(5) unsigned DEFAULT NULL,
  `usuario` varchar(50) DEFAULT NULL,
  `data_cadastro` date DEFAULT NULL,
  `observacao` varchar(50) DEFAULT NULL,
  PRIMARY KEY (`codigo`)
) TYPE=MyISAM AUTO_INCREMENT=19;

 

Obrigado!

Compartilhar este post


Link para o post
Compartilhar em outros sites

tenta assim

index.php

//sua conexao
<FORM ACTION=pagina.php METHOD=POST>
<SELECT ID="ESTADO">
   <OPTION VALUE="0" SELECTED>TODOS...</OPTION>
<?php
$sql = mysql_query("select codigo,placa from nome_da_tabela");
while($linha=mysql_fetch_array($sql)){										
   echo "<OPTION VALUE=".$linha['codigo'].">".$linha['placa']."</OPTION>";
}
?>
</SELECT>
<INPUT TYPE=SUBMIT VALUE=PESQUISAR>
</FORM>

pagina.php

//é só um trecho coloque aki seu codigo de conexao 
extract($_GET);
if($carro!="0")
   $sql = mysql_query("SELECT * FROM nome_da_tabela where placa = $carro");
else
   $sql = mysql_query("SELECT * FROM nome_da_tabela");
while($l=mysql_fetch_array($sql)){
      echo $l['codigo'];
      ...
      echo "<br>".$l['observacao'];
 }

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá, eu fiz o teste com o seu código, a unica coisa de estranho é que mesmo eu selecionado uma data qualquer, ele me retorna tudo... e seu eu escolher "todas" ele também retorna tudo....

 

Porem será que dá pra adaptar no meu código... algo de estranho me parece ser com a data....

Compartilhar este post


Link para o post
Compartilhar em outros sites

o meu codigo eu coloquei pra filtrar por placa, você modificou para filtrar por data???

 

utilizando meu codigo dá um echo e verifica qual valor está chegando na 'pagina.php', qual opcao você escolheu e qual resultado que está aparecendo??

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá Victor, tenho uma duvida mesmo que eu de certo esse filtro por placa, preciso além da praca procurar com data também por isso que eu estava querendo adaptar no meu código:

 

Veja com eu fiz no seu código:

 

index_enviar.php (equivale a sua página index.php)

<body>
<?php
//chama o arquivo de conexão com o bd
include("conexao_1_sysvtr.php");
?>
<form action="index_receber.php" method="post" name="form" id="frm">
<SELECT ID="ESTADO">
   <OPTION VALUE="0" SELECTED>TODOS...</OPTION>
<?php
$sql = mysql_query("select vtr, data_manutencao FROM tbl_principal");
while($linha=mysql_fetch_array($sql)){										
   echo "<OPTION VALUE=".$linha['vtr'].">".$linha['data_manutencao']."</OPTION>";
}
?>
</SELECT>
<INPUT TYPE=SUBMIT VALUE=PESQUISAR>
</FORM>
</body>
</html>

Agora index_receber.php

 

Equivale a sua pagina.php

 

<?
include("conexao_1_sysvtr.php")
?>

<?
extract($_GET);
if($carro!="0")
   $sql = mysql_query("SELECT * FROM tbl_principal where data_manutencao = $carro");
else
   $sql = mysql_query("SELECT * FROM tbl_principal");
while($l=mysql_fetch_array($sql)){
      echo $l['vtr'];
      echo "<br>".$l['data_manutencao'];
 }
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

vamos fazer um filtro para filtrar por data( somente data ).

<body>
<?php
//chama o arquivo de conexão com o bd
include("conexao_1_sysvtr.php");
?>
<form action="index_receber.php" method="post" name="form" id="frm">
 <SELECT ID="data"> 
  <OPTION VALUE="0" SELECTED>TODOS...</OPTION>
<?php
$sql = mysql_query("select distinct(data_manutencao) as data FROM tbl_principal");//mudei a sintaxe p/ filtrar datas diferentes(não repetir)
while($linha=mysql_fetch_array($sql)){                                 
    echo "<OPTION VALUE=".$linha['data'].">".$linha['data']."</OPTION>";
}
?>
</SELECT>
<INPUT TYPE=SUBMIT VALUE=PESQUISAR>
</FORM>
</body>

index_receber.php

<?
include("conexao_1_sysvtr.php")
extract($_POST);
echo "o valor que chegou é: ".$data;//verificando se está recebendo a data como paramentro.
if($data!="0")   
	$sql = mysql_query("SELECT * FROM tbl_principal where data_manutencao = $data order by data_manutencao");
else 
    $sql = mysql_query("SELECT * FROM tbl_principal order by data_manutencao");
while($l=mysql_fetch_array($sql)){
      echo $l['vtr'];
      echo "<br>".$l['data_manutencao']; 
}
?>

 

faz um teste ae e ve se o filtro por data funciona

Compartilhar este post


Link para o post
Compartilhar em outros sites

Estranho veja o erro que apareceu:

Na página onde está o formulário ele aparece as datas certinho, porem quando envio apresente o seguinte erro:

 

Parse error: syntax error, unexpected T_STRING in index_receber.php on line 3

veja a linha 3 do nosso código:

extract($_POST);

Compartilhar este post


Link para o post
Compartilhar em outros sites

Veja o erro:

 

o valor que chegou é: 
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/index_receber.php on line 9

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.