Posts com Tag ‘PHP’

Aprendendo sobre Funções

Publicado: fevereiro 1, 2010 por Stefan Yohansson em PHP + MySQL, Tecnologia
Tags:, ,

Funções… Ah, queridas funções…
Sem elas eu não poderia deixar meus programas mais leves. Aqui vamos dar início a uma base de como não precisar repetir seu código várias vezes e realmente o começo de como fazer um código ficar mais inteligente com o paradigma de Orientação à Objeto. :] ~

Enfim,

Definindo funções
Funções são blocos de códigos pré-definidos e rotulados para que sejam executados quando chamados e podem ou não receber um atributo/váriavel.

COMO ASSIM?

Simples,

function mensagem() {
echo “oi !”;
}

mensagem();

a saída da chamada dessa função é “oi”, se não tivesse o mensagem() ali, abaixo do código… ele nem chegaria a executar.
– Porque?
A função é um bloco de código e ela não é executada a não ser que seja chamada pelo seu nome. Logo, não adianta chamar uma função antes dela ser definida.

MAS PERAI !

pra quê fazer uma função? se eu simplesmente posso digitar

echo “oi”;

pensa aí, se você precisar digitar oi em mil campos de textos [para o exemplo da função mensagem()] e quando você for editar?
no caso da função mensagem, seria só editar ali e onde tivesse “oi” mudaria para o que foi digitado, entenderam?

Então, vamos a um exemplo mais díficil:

#modelo 1 – Criado por Stefan Yohansson
#duas funções e o html

$numero_contador = 0; #define a única variavel usada e seu valor.

function contador_mais($numero_contador) {
$numero_contador++;
return $numero_contador;
} #essa é a primeira função. O que ela faz? apenas soma +1 à nossa variavel, 0 + 1 = 1, e este é o resultado retornado.

function contador_menos($numero_contador) {
$numero_contador–;
return $numero_contador;
} #faz o contrário da de cima, diminui 1 de 0, retornando -1

#chamamos o html !
echo “<html>
<title>Sucessor e Antecessor de Zero !</title>
<link href=\”cont.css\” rel=\”stylesheet\” type=\”text/css\”>
<body>
<div id=\”container\”>
<h2>Sucessor e Antecessor de Zero !</h2>
<a href=\”?area=Aumentar\”>Aumentar</a> – <a href=\”?area=Diminuir\”>Diminuir</a>
<br>
(Aperte os links acima ou os botões abaixo para o número mudar)
<h1>”;

if ($_GET[‘area’]) { #caso tenhamos uma variavel area na URL:

switch($_GET[‘area’]) { #troque para cada valor abaixo
case Aumentar: #caso aumentar
echo contador_mais($numero_contador); #use a função mais
break;
case Diminuir: #caso seja diminuir
echo contador_menos($numero_contador); #use a função menos
break;

case Zerar: #caso zerar.
echo $numero_contador; #chame o valor da variavel
break;

default:
echo $numero_contador;
}

} else {
echo $numero_contador;
}

echo “</h1>
<form action=\”?\” method=\”GET\”>
<input type=\”submit\” name=\”area\” value=\”Diminuir\”>
</form>

<form action=\”?\” method=\”GET\”>
<input type=\”submit\” name=\”area\” value=\”Aumentar\”>
</form>

<form action=\”?\” method=\”GET\”>
<input type=\”submit\” name=\”area\” value=\”Zerar\”>
</form>

</div>
</body>
</html>”;

Bem pessoal, reparem que no nosso código se vocês executarem nos seus computadores, veram que temos dois botões (um botão mesmo e outro é um link) e ambos fazem a mesma coisa com os mesmos parametros. :] ~

Bem este é um programa exemplo. Percebam que a função é diferente da função mensagem pois tem algo entre os ().
O que quer dizer isso?
function contador_menos($numero_contador)
isso significa que a função receberá como parametro a variavel $numero_contador.
Se isto não for feito, nada será feito. >D

Caso sua função seja uma função de msg, isso não é preciso, mas caso o usuario vá passar valores que serão executados na função, é mais que preciso.

Enfim, fica de dever de casa fazer um programa que calcule a hipotenusa de um triângulo de lados
h = ?
a = 8
b = 6

Sua saída deve ser algo parecido com o outro programa.
Se quiserem podem postar seus códigos nos comentários e eu avalio-os… ou mandem-me e-mails.

swhite.owl@gmail.com

Procurarei ser o mais breve possível, afinal tenho muito trabalho a fazer.

Qualquer erro, reportar a minha caixa de e-mail e queria pedir minhas desculpas pelo sumiço, as áreas de ciências exatas, iram ser preenchidas, em breve.

Agora vamos ao que interessa.

Como criar uma tabela com PHP

Geralmente as pessoas usam gerenciadores de tabelas como “phpMyAdmin” para criar suas tabelas, mas se de repente precisarem criar todas essas tabelas em outro lugar, ou simultaneamente, por que não facilitar?

Simplesmente podem criar a tabela e pegar aquele código gerado pelo phpMyAdmin e colocar dentro de um arquivo .php e executa-lo no seu servidor. deixe-me dar um exemplo.

<?
CREATE TABLE conteudo (
id int(5) NOT NULL auto_increment,
nome char(30) NOT NULL ,
email char(80) ,
data date NOT NULL,
hora time NOT NULL,
titulo char(100) NOT NULL,
subtitulo char(200),
mensagem text NOT NULL,
visualizar char(3) DEFAULT ‘nao’,
PRIMARY KEY (id),
UNIQUE id (id)
);
?>

 

<?

include(‘config.php’);

CREATE TABLE conteudo (

id int(5) NOT NULL auto_increment,

nome char(30) NOT NULL ,

email char(80) ,

data date NOT NULL,

hora time NOT NULL,

titulo char(100) NOT NULL,

subtitulo char(200),

mensagem text NOT NULL,

visualizar char(3) DEFAULT ‘nao’,

PRIMARY KEY (id),

UNIQUE id (id)

);

?>

salve o arquivo como: create_table_conteudo.php e execute do seu link www.meulink.com.br/create_table_counteudo.php e a sua tabela estará criada.

lembrando que o include(‘’); Chama um arquivo que é o config.php e nele deve conter as informações do servidor mysql, por exemplo:

<?

$host = “localhost”;

$user = “root”;

$senha = “”;

$dbname = “meu_site”;

$conexao = mysql_connect($host, $user, $senha) or die (“Não foi possível conectar-se com o banco de dados”);

$db = mysql_select_db($dbname) or die (“Não foi possível conectar-se com o banco de dados”);

?>

E salve o arquivo como config.php, o include chamará para dentro daquele arquivo create_table_conteudo.php;

 

Como fazer uma consulta no banco de dados e selecionar variaveis dessa consulta

Bem, aqui iremos aprender a fazer uma simples consulta num servidor MySQL, faça um arquivo com o nome de conteudo.php e estude esse código antes de adicionar lá.

<?
include(‘config.php’);

$sql = “SELECT * FROM conteudo WHERE visualizar = ‘sim’ ORDER BY id DESC”;  //Selecione da tabela conteudo quando visualizar for ‘sim’ e ordene por id decrescente

$resultado = mysql_query($sql) or die (“Não foi possível realizar a consulta ao banco de dados”);  //chame o resultado; interno

while ($linha=mysql_fetch_array($resultado)) {

//chame cada variavel como cada parte da tabela, nome, email e etc

$id = $linha[“id”];
$nome = $linha[“nome”];
$email = $linha[“email”];
$data = $linha[“data”];
$hora = $linha[“hora”];
$titulo = $linha[“titulo”];
$subtitulo = $linha[“subtitulo”];
$mensagem = $linha[“mensagem”];
$visualizar = $linha[“visualizar”];

 

//escreve o html, a parte visivel do código. apartir daqui é o que apareçe na página

echo “<center>”;
echo “Noticia $id”;
echo “<br>”;

echo “Autor: $nome – ($email)”;
echo “<br>”;
echo “Data: $novadata – Horário: $novahora”;
echo “<br>”;
echo “Título da Notícia: <b> $titulo </b>”;
echo “<br>”;
echo “Subtítulo da Notícia: <i> $subtitulo </i>”;
echo “<br>”;
echo “Notícia: $mensagem”;
echo “<br>”;
echo “<br>”;
echo “<hr>”;
echo “</center>”;

}
?>

continuarei em como inserir valores nessa mesma tabela.

 

Inserindo os valores que ali o arquivo lê

Primeiro, cria-se um arquivo html com um form em method=“post” e configurado para enviar para um arquivo com o nome inserir (action=“inserir”)

Vejamos esse código desse html:

<meta http-equiv=”Content-Type” content=”text/html; charset=utf-8″ />
<?

echo “<h1><b>Cadastro de novidades</b> // <i> created by: Stefan Yohansson </i></h1>”;
echo “<hr><br>”;
echo “<form action=\”../inserir.php\” method=’post’>”;
echo “Autor: &nbsp;&nbsp; <input name=’nome’ type=’text’ size=30> *<br>”;
echo “Email: &nbsp;&nbsp;&nbsp;<input name=’email’ type=’text’ size=30> *<br>”;

    “<br>”;

echo “Título: &nbsp; <input name=’titulo’ type=’text’ size=30><br><br>”;
echo “Sub Título: &nbsp;&nbsp; <input name=’subtitulo’ type=’text’ size=30><br><br>”;
echo “Texto: &nbsp;&nbsp; <textarea name=’mensagem’ cols=’25’
rows=’7′ >
</textarea>

<br><br>”;
echo “visualizar: <input type=’checkbox’ value=’sim’ name=’visualizar’ /><br><br>”;
echo “<input type=’submit’ value=’Enviar’>”; echo “&nbsp;”;
echo “<input type=’reset’ value=’Resetar’>”;
echo “</form>”;
echo “<br><hr>”;
echo “<i>Os campos com <b>*</b> são obrigatórios.<br>”;

?>

Bem, espero que saibam html, caso não, não sei nem o que estão fazendo aqui.

Enfim, como podem ver, um form tem a ação de enviar o conteudo dele para o arquivo inserir.php em metodo post, lembrando que os valores dos input são definidos nos name=‘nomequevocêquer’ ao chegar no inserir.php ele chega como $nomequevocêquer = oquevocêescreveunocampo

Crie um arquivo inserir.php com os valores:

<?

$nome = $_POST[“nome”];
$email = $_POST[“email”];
$titulo = $_POST[“titulo”];
$subtitulo = $_POST[“subtitulo”];
$mensagem = $_POST[“mensagem”];
$visualizar = $_POST[“visualizar”];

    $sql = “INSERT INTO conteudo (nome, email, data, hora, titulo, subtitulo, mensagem, visualizar) VALUES (‘$nome’, ‘$email’, ‘$data’, ‘$hora’, ‘$titulo’, ‘$subtitulo’, ‘$mensagem’, ‘$visualizar’)”; /* Recebe valor e envia para o banco de dados*/

    include(‘config.php’);
$sql = mysql_query($sql) or die (“Houve erro na gravação dos dados, por favor, clique em voltar e verifique os campos obrigatórios!”); // Serve para enviar os dados
echo “<h1>Cadastro efetuado com sucesso!</h1>”;

?>

Espero ter ajudado novamente, e tenham uma boa noite.

Diferente do que faço em todas as outras categorias, irei postar dicas e não um tutorial de como usar/fazer.

Afinal, se procura uma categoria como essa é por que já tem noções básicas do que se trata.

Voltei das cinzas, eu sei, mas o meu chá de sumiço foi devido a trabalho e várias coisas, e o da Anne Carolina é o simples fato do seu computador estar quebrado.

Não se preocupem, iremos voltar com nossas atividades, em breve.

Enfim, vamos chegar onde eu quero.

– Como fazer para editar um arquivo de extensão .txt direto de um php, ou criar arquivos .xml

PHP é uma linguagem web bem versátil e ela tem uma semelhança com a linguagem C, veja essa semelhança no comando fopen, fwrite, fputs (sinônimo de fwrite), fread, fclose

Bem, falar, falar e falar não adianta de nada, vamos pôr a mão na massa.

fopen – Abre um arquivo

fwrite – escreve em um arquivo

fread – lê um arquivo

fclose – fecha um arquivo

Simples isso, né?

Mas só assim, dá uma certa incerteza, vamos explicar como fazer.

<? $novoarquivo = fopen(“nossoarquivo.txt”, “a”);

$conteudo = $fread($novoarquivo);

echo “$conteudo”; ?>

Se você tentar, poderá entender. :] Mas vamos explicar.

ele cria uma variavel com o nome novoarquivo que abre o arquivo e a outra função fread recebe tudo que tiver escrito no “nossoarquivo.txt” com valor de apenas leitura “a” e no final imprime tudo no navegador com o comando “echo”

– mas você não me explicou isso, maldito!

Calma gente,

‘r’ – Abre somente para leitura; coloca o ponteiro no começo do arquivo.

‘r+’ – Abre para leitura e gravação; coloca o ponteiro no começo do arquivo.

‘w’ – Abre somente para gravação; coloca o ponteiro no começo do arquivo e apaga o conteúdo que já foi escrito. Se o arquivo não existir, tentar criá-lo.

‘w+’ – Abre para leitura e escrita; coloca o ponteiro no início do arquivo e apaga o conteúdo que já foi escrito. Se o arquivo não existir, tentar criá-lo.

‘a’ – Abre o arquivo somente para escrita; coloca o ponteiro no fim do arquivo. Se o arquivo não existir, tentar criá-lo.

‘a+’ – Abre o arquivo para leitura e gravação; coloca o ponteiro no fim do arquivo. Se o arquivo não existir, tentar criá-lo.

melhor?

Enfim, mas aí só faz pegar o que ta escrito, e se não tiver nada lá, e se eu quiser inserir algo?

<? $novoarquivo = fopen(“nossoarquivo.txt”, “w+”);

fwrite($nossoarquivo, “$cont”); ?>

aqui o novoarquivo é aberto e zerado e o ponteiro posto no inicio do arquivo pelo ‘w+’ e o comando fwrite se encarrega de escrever em $nossoarquivo que é o nossoarquivo.txt aberto pelo comando fopen, a variavel $cont que é o texto que você quer adicionar, pode ser qualquer coisa ali.

Hmmm…

E se eu quiser adicionar um arquivo por cima do outro?

<? $abrir = fopen(“nossoarquivo.txt”, “r”);

$cont = fread($abrir, filesize(“nossoarquivo.txt”));

fclose($abre);

$apagar = fopen(“nossoarquivo.txt”, “w”);

fclose($apagar);

$adicionar = fopen(“nossoarquivo.txt”, “a”);

fputs ($adicionar, “$texto\r\n”);

fclose($adicionar);

$adicionar2 = fopen(“nossoarquivo.txt”, “a”);

fputs ($adicionar2, “\r\n$cont”);

fclose($adicionar2); ?>

Basicamente, é isso, espero que tenha ajudado.
E até a próxima.