Em um projeto normalmente algumas operações se repetem várias vezes, em projetos
web algumas operações realmente são repetitivas, tais como preencher os options
de um select com dados de uma tabela, conversões de datas, etc..
Então crie um arquivo .php (de preferência em uma pasta chamada utilidades ou funções)
com o nome de biblioteca.php (os nomes de pastas e arquivos podem ser o de sua
preferência), com essas funções:
<?php
function select($tabela, $valor, $texto, $ordem, $filtro, $selecionado) {
global $conexao;
if($texto=="") {
$texto=$valor;
}
if($ordem=="") {
$ordem=$valor;
}
$sql="SELECT $valor,$texto FROM $tabela $filtro ORDER BY $ordem";
print"$sql \n";
$options=mysql_query($sql,$conexao);
while($dados=mysql_fetch_row($options)) {
if($dados[0]==$selecionado){
print"<option value=\"$dados[0]\" selected>$dados[1]</option>\n";
}
else {
print"<option value=\"$dados[0]\">$dados[1]</option>\n";
}
}
}
?>
Esta função preenche os options de uma select de acordo com os parâmetros.
- $tabela --> tabela do banco de dados que vai prover os valores (o interessante
desta função é que os parâmetros podem ser mais de um, por exemplo, $tabela
poderia ser passado como "pais,regiao" e ela selecionaria os dados destas
duas tabelas.
- $valor --> campo que será o value dos option
- $texto --> texto dos options
- $ordem --> campo que ordenara a pesquisa
- $filtro --> filtro que filtrará as informações na tabela (se você estivesse
chamado com $tabela na descrição acima poderia passar o seguinte filtro "where
pais='BRASIL' AND regiao.pais='BRASIL'"
- $selecionado --> ítem que por padrão é selecionado na select
- global $conexao --> $conexao deve ser a variável de conexão com o mySQL
Em um contexto você poderia chamar esta função assim:
<select name="estado">
<?php
options($UF, SIGLA, DESCRICAO, DESCRICAO, "", "PR");
?>
</select>
e então preencheria os options com os dados da tabela UF, os valores seriam as
siglas e organizados por descrição e PR seria o estado padrão.
Bom, para resumir, você cria várias funções dentro deste arquivo depois dá um
include nele e ai é só usar as funções.
Na próxima semana colocarei uns scripts com uma biblioteca com várias funções para
usar em seus projetos, então se você é um iniciante ou trabalha em projetos grandes,
faça sempre isto, crie bibliotecas com funções.