Ir para conteúdo

POWERED BY:

Arquivado

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

alexlinkin

[Resolvido] Criar função em php

Recommended Posts

Olá pessoal...

quero tirar uma dúvida..

tenho meu código php:

______________________________________________________________________________________________

	<label>
<span>Cidade:</span>
       <?php
               $query = "SELECT nome_cidade FROM cidade_clima";
		$result = mysql_query($query,$conexao);
		echo "<select name='cidade'>";
		echo "<option value=''>Todos</option>";
			while($dado = mysql_fetch_object($result)){
				echo "<option name='cidade' value=''>$dado->nome_cidade</option>";
			}
	echo "</select>";
?>
</label>

________________________________________________________________________________________________

 

Eu queria transforma-lo em uma função, ai dentro do label ele chamaria a função php e criaria o comobo box.

Como faço para pegar esse código que começa no $query e termina no echo e criar uma função com ele?

Agradeço desde já!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não sei se entendi muito bem, mas você faria assim:

 

- Cria uma função com um parametro (onde esse parametro seria a sua QUERY)

- Depois você retorna todo o conteudo html

 

Tente criar depois poste as dúvidas caso você consiga, abaixo +- o escopo da função.

 

// no começo do codigo a FUNCAO
function funcaoTeste( $qry ) {
$result = mysql_query($qry);
echo "<select name='cidade'>";
echo "<option value=''>Todos</option>";
while($dado = mysql_fetch_object($result)){
echo "<option name='cidade' value=''>".$dado->nome_cidade."</option>";
}
echo "</select>";
?>
<label>
 <span>Cidade:</span>
 <?php
   // Dentro do html no caso, você chama a função passando o parametro(query)
   funcaoTeste("SELECT nome_cidade FROM cidade_clima");
 ?>
</label>

Compartilhar este post


Link para o post
Compartilhar em outros sites

<?php

function querySelect($nomeTabela) {
   $query = "SELECT $nomeTabela FROM cidade_clima";
   $result = mysql_query($query, $conexao);
   echo "<select name='cidade'>";
   echo "<option value=''>Todos</option>";
   while ($dado = mysql_fetch_object($result)) {
       echo "<option name='cidade' value=''>$dado->nome_cidade</option>";
   }
   echo "</select>";
}
?>
<label>
   <span>Cidade:</span>
<?php querySelect("nome_cidade"); ?>
</label>

 

Acredito que seria algo assim..

 

É somente um exemplo, ai você ve qual a sua necessidade.. =)

Compartilhar este post


Link para o post
Compartilhar em outros sites

O que tu pode fazer é o seguinte:

 

function makeCombo($query){
         $result = mysql_query($query,$conexao);
         $html   = "<select name='cidade'>";
         $html   .= "<option value=''>Todos</option>";
               while($dado = mysql_fetch_object($result)){
                    $html  .= "<option name='cidade' value=''>$dado->nome_cidade</option>";
               }
        $html    .= "</select>";
        return $html
}


<label>
       <span>Cidade:</span>
       <?php
               $query = "SELECT nome_cidade FROM cidade_clima";
               echo makeCombro($query);
       ?>
       </label>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Legal.. todas as sugestões são bem interessantes.

 

mas na minha opinão falham num conceito primitivo sobre a 'criação de funções': Não são reaproveitáveis.

 

Tá, agora você tem uma function que cospe o <select> para a cidade. E só isso.

Se eu precisar de um para 'bairro', ou 'estado', ou sei lá, 'fornecedores', teria que replicar algumas rotinas comuns nessas funções.

 

O ideal, na minha opinião, é algo próximo a isto:

function monta_options( $query ){
  if( !mysql_num_rows( $query ) )
     return '<option value="">Nada cadastrado!</option>';

  $options = '';
  while( $dados = mysql_fetch_object( $query ) )
  {
      $options .= '<option value="'.$dados->id.'">'.$dados->label.'</option>';
  }
  return $options;
}

Então, para usar:

 

<select name="cidade">
<?php
  $sql = "SELECT id, cidade AS label FROM cidade";
  $query = mysql_query( $sql );
  echo monta_options( $query );
?>
</select>

 

A vantagem desta abordagem, é que se eu precisar do combo de fornecedores agora, consigo usar a mesma function:

<select name="fornecedor">
<?php
  $sql = "SELECT id, razao_social AS label FROM fornecedor";
  $query = mysql_query( $sql );
  echo monta_options( $query );
?>
</select>

 

Daqui em diante, é possível encapsular a query, e a tag, em uma outra 'função apelido'.

 

 

@ps: galera, o atributo name, não faz sentido qndo aplicado a tag option!

<option name='cidade' 

não façam isso.

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.