Cєятєzαร 167 Posted December 18, 2012 Primeiros Scripts Primeiro Exemplo Neste exemplo, criaremos um script com uma saída simples, que servirá para testar se a instalação foi feita correctamente: &--#60;html&--#62; &--#60;head&--#62;&--#60;title&--#62;Aprender PHP&--#60;/title&--#62;&--#60;/head&--#62; &--#60;body&--#62; &--#60;?php echo "Primeiro Script"; ?&--#62; &--#60;/body&--#62; &--#60;/html&--#62; Copia este código para um documento do notepad e grava como "primeiro.php3" no directório de documentos do Apache (ou o Web Server escolhido). Abra uma janela do browser e digite o endereço "http://localhost/primeiro.php3". Verifique se o HTML da página exibida é o seguinte: &--#60;html&--#62; &--#60;head&--#62;&--#60;title&--#62;Aprender PHP&--#60;/title&--#62;&--#60;/head&--#62; &--#60;body&--#62; Primeiro Script &--#60;/body&--#62; &--#60;/html&--#62; Isto mostra como o PHP funciona. O script é executado no servidor, ficando disponível para o utilizador apenas o resultado. Agora vamos escrever um script que produza exactamente o mesmo resultado utilizando uma variável: &--#60;html&--#62; &--#60;head&--#62;&--#60;title&--#62;Aprendendo PHP&--#60;/title&--#62;&--#60;/head&--#62; &--#60;body&--#62; &--#60;?php $texto = "Primeiro Script"; echo $texto; ?&--#62; &--#60;/body&--#62; &--#60;/html&--#62; Utilizar formulários HTML Ao clicar num botão "Submit" num formulário HTML as informações dos campos serão enviadas ao servidor especificado para que possa ser produzida uma resposta. O PHP trata esses valores como variáveis, cujo nome é o nome do campo definido no formulário. O exemplo a seguir mostra isso, e mostra também como o código PHP pode ser inserido em qualquer parte do código HTML: &--#60;html&--#62; &--#60;head&--#62;&--#60;title&--#62;Aprendendo PHP&--#60;/title&--#62;&--#60;/head&--#62; &--#60;body&--#62; &--#60;?php if ($texto != "") echo "Você digitou "$texto"&--#60;br&--#62;&--#60;br&--#62;"; ?&--#62; &--#60;form method=post action="&--#60;? echo $PATH_INFO; ?&--#62;"&--#62; &--#60;input type="text" name="texto" value="" size=10&--#62; &--#60;br&--#62; &--#60;input type="submit" name="sub" value="Enviar!"&--#62; &--#60;/form&--#62; &--#60;/body&--#62; &--#60;/html&--#62; Ao gravar o ficheiro acima e carregá-lo no browser, o utilizador verá apenas um formulário que contém um espaço para digitar o texto. Ao digitar um texto qualquer e submeter o formulário, a resposta, será no mesmo ficheiro PHP (indicado pela constante $PATH_INFO, que retorna o nome do ficheiro). Isto acontece porque o código PHP testa o conteúdo da variável $texto. Inicialmente o valor da variável é uma string vazia, e por isso nada é impresso quando a página é carregada a primeira vez. Quando algum texto é digitado no formulário e submetido, o PHP verifica novamente a variável, como no formulário o campo possui o nome "texto", a variável com seu conteúdo será $texto, assim o valor da variável será diferente de uma string vazia, e o PHP imprime um texto antes do formulário. Interagir com o browser O PHP permite interagir com informações do browser automaticamente. Por exemplo, o script a seguir mostra informações sobre o browser do utilizador. &--#60;html&--#62; &--#60;head&--#62;&--#60;title&--#62;Aprendendo PHP&--#60;/title&--#62;&--#60;/head&--#62; &--#60;body&--#62; &--#60;? echo $HTTP_USER_AGENT; ?&--#62; &--#60;/body&--#62; &--#60;/html&--#62; O resultado mostra características de cada browser, como a versão, e no caso do Communicator até mostra o idioma ("en"). Com isto, podes criar uma página com recursos disponíveis so para Internet Explorer, por exemplo, podes esconder o código dos outros browsers, com um código semelhante ao seguinte: &--#60;html&--#62; &--#60;head&--#62;&--#60;title&--#62;Aprendendo PHP&--#60;/title&--#62;&--#60;/head&--#62; &--#60;body&--#62; &--#60;? if (strpos($HTTP_USER_AGENT,"MSIE 5") != 0) { echo "Você usa Internet Explorer"; } else { echo "Você não usa Internet Explorer"; } ?&--#62; &--#60;/body&--#62; &--#60;/html&--#62; Neste exemplo, será apenas exibido um texto informando se está sendo utilizado o Microsoft Internet Explorer ou não, mas para outras funções poderia ser utilizado algo semelhante. É bom notar o surgimento de mais uma função no código anterior: strpos(string1,string2). Essa função retorna a posição da primeira aparição de string2 em string1, contando a partir de zero, e não retorna valor algum se não ocorrer. Assim, para testar se a string $HTTP_USER_AGENT contém a string "MSIE", basta testar se strpos devolve algum valor. Aceder a Base de Dados Neste documento todos os exemplos referentes a acesso de base de dados utilizarão o gerenciador de base de dados MySQL, que pode ser copiado gratuitamente no site http://www.mysql.org. Para interagir com uma base de dados SQL existem três comandos básicos que devem ser utilizados: um que faz a ligação com o servidor de base de dados, um que seleciona a base de dados a ser utilizada e um terceiro que executa uma "query" SQL. Ligação com o servidor A ligação com o servidor de base de dados mySQL em PHP é feita através do comando mysql_connect, que tem a seguinte sintaxe: int mysql_connect(string /*host [:porta]*/ , string /*login*/ , string /*senha*/ ); Os parâmetros são bastante simples: o endereço do servidor(host), o nome do utilizador (login) e a senha de ligação. A função retorna um valor inteiro, que é o identificador da ligação estabelecida e deverá ser armazenado numa variável para ser utilizado depois. No nosso exemplo, temos como servidor de base de dados a mesma máquina que corre o servidor http, como login o utilizador "root" e senha "phppwd": $ligacao = mysql_connect("localhost", "root", "phppwd"); Assim, se a ligação for bem sucedida (existir um servidor no endereço especificado que possua o utilizador com a senha fornecida), o identificador da ligação fica armazenado na variável $ligação. Seleção do base de dados Uma vez ligado, é preciso selecionar o base de dados existente no servidor com o qual desejamos trabalhar. Isso é feito através da função int mysql_select_db, que possui a seguinte sintaxe: int mysql_select_db(string /*nome_base*/, int /*ligacao*/ ); O valor de retorno é 0 se o comando falhar, e 1 no caso de sucesso. O nome da base de dados a selecionar é o primeiro parâmetro fornecido, seguido pelo identificador da ligação. Se este for omitido, o interpretador PHP tentará utilizar a última ligação estabelecida, é recomendável inserir sempre este valor, para facilitar a legibilidade do código. No nosso exemplo, a base de dados a ser selecionada possui o nome "ged": mysql_select_db("ged", $ligacao); Após a execução deste comando qualquer consulta executada para aquela ligação utilizará a base de dados selecionada. Execução de queries SQL Após estabelecida a ligação e selecionada a base de dados a ser utilizada, quase toda a interacção com o servidor mySQL pode ser feita através de consultas escritas em SQL (Structured Query Language), com o comandomysql_query, que utiliza a seguinte sintaxe: int mysql_query(string consulta, int [ligacao] ); O valor de retorno é 0 se falhar ou 1 em caso de sucesso. Sucesso aqui significa que a consulta está sintaticamente correcta e foi executada no servidor. Nenhuma informação sobre o resultado é devolvido deste comando, ou até mesmo se o resultado é o esperado. No caso da consulta ser um comando SELECT, o valor de retorno é um valor interno que identifica o resultado, que poderá ser tratado com a função mysql_result() e outras. A string query não deve conter ponto-e-vírgula no final do comando, e o identificador da ligação é opcional. Vamos criar uma tabela como exemplo: $cria = "CREATE TABLE exemplo (codigo INT AUTO_INCREMENT PRIMARY KEY, nome CHAR(40), email CHAR(50))"; mysql_query($cria, $ligacao); Agora vejamos como ficou o código completo para executar uma query SQL numa base de dados mySQL, com um exemplo que cria uma tabela chamada exemplo e adiciona alguns dados: $ligacao = mysql_connect("localhost", "root", "phppwd"); mysql_select_db("ged", $ligacao); $cria = "CREATE TABLE exemplo (codigo INT AUTO_INCREMENT PRIMARY KEY, nome CHAR(40), email CHAR(50))"; $insere1 = "INSERT INTO exemplo (nome,email) VALUES ("Mauricio Vivas","[email protected]"); $insere2 = "INSERT INTO exemplo (nome,email) VALUES ("Jose da Silva","[email protected]"); $insere3 = "INSERT INTO exemplo (nome,email) VALUES ("Fernando Henrique Cardoso","[email protected]"); $insere4 = "INSERT INTO exemplo (nome,email) VALUES ("Bill Clinton","[email protected]"); mysql_query($cria, $ligacao); mysql_query($insere1, $ligacao); mysql_query($insere2, $ligacao); mysql_query($insere3, $ligacao); mysql_query($insere4, $ligacao); Tratamento de resultados de query SELECT Ao executar uma query SQL SELECT através do comando mysql_query, o identificador do resultado deve ser armazenado numa variável que pode ser tratada de diversas formas. Duas maneiras interessantes de o fazer usam o comando mysql_result e o comando mysql_fetch_row, respectivamente. O comando mysql_result tem a seguinte sintaxe: int mysql_result(int resultado, int linha, mixed [campo]); Onde resultado é o identificador do resultado, obtido com o retorno da função mysql_query, linha especifica o registo a ser exibido, já que uma query SELECT pode retornar diversos registos, e campo é o identificador do campo a ser exibido, sendo o tipo descrito como mixed pela possibilidade de ser de diversos tipos (neste caso, inteiro ou string). Vejamos um exemplo utilizando a tabela criada anteriormente: $consulta = "SELECT nome, email FROM exemplo WHERE email LIKE 'vivas'"; $resultado = mysql_query($consulta, $ligacao); printf("Nome: ", mysql_result($resultado,0,"nome"), "&--#60;br&--#62;n"); printf("e-mail: ", mysql_result($resultado,0,"email"),"&--#60;br&--#62;"); Com o exemplo acima, o resultado será: Nome: Mauricio Vivas&--#60;br&--#62; e-mail: [email protected]&--#60;br&--#62; É importante notar que a utilização desta função é um pouco trabalhosa, já que no caso de um resultado com várias linhas é preciso controlar o número de linhas para tratá-las (pode-se utilizar a funçãomysql_num_rows(int resultado), que retorna o número de linhas de um resultado), e no caso de uma alteração no nome do campo é preciso alterar também a maneira de tratá-lo. Por isso é mais aconselhável que se use uma outra função, como por exemplo mysql_fetch_row, que possui a seguinte sintaxe: array mysql_fetch_row(int result); A variável resultado é o identificador da memória de resultados, obtido como retorno da função mysql_query. O resultado produzido por esta função é de retirar a primeira linha da memória de resultados, se houver, e colocá-la num array. Assim torna-se mais fácil tratar um resultado com várias linhas, e sem utilizar os nomes dos campos na rotina de tratamento do resultado: $consulta = "SELECT nome, email FROM exemplo"; $resultado = mysql_query($consulta, $ligacao); echo "&--#60;table border=1&--#62;n"; echo "&--#60;tr&--#62;&--#60;td&--#62;Nome&--#60;/td&--#62;&--#60;td&--#62;e-mail&--#60;/tr&--#62;n"; while ($linha = mysql_fetch_row($resultado)) { printf("&--#60;tr&--#62;&--#60;td&--#62;$linha[0]&--#60;/td&--#62;"); printf("&--#60;td&--#62;$linha[1]&--#60;/td&--#62;&--#60;/tr&--#62;"); } echo "&--#60;/table&--#62;n"; O código acima irá imprimir todos os registos da tabela exemplo numa tabela html. Se o programador desejar "saltar" alguma(s) linha(s) do resultado, poderá utilizar a função mysql_data_seek, que tem por objectivo definir qual será a próxima linha da memória de resultados a ser impressa. A sua sintaxe é: int mysql_data_seek(int resultado, int linha); Créditos: CertezaS - Organizacão !Eduardo - Imformação !Copy from my blog ! 1 Cђ๏รєPєтภคร reacted to this Share this post Link to post Share on other sites
Guest Henrique Oliveira™ Posted December 18, 2012 Letra azul muita ma de ler, depois de ler comento, muda a letra plese Share this post Link to post Share on other sites
kfeast 167 Posted December 18, 2012 Que estranho, parece que já vi algo 80% igual no google.. http://cyber-gamers.org/public/style_emoticons/default/Espi41.gif Share this post Link to post Share on other sites
Cђ๏รєPєтภคร 865 Posted December 18, 2012 Edita as letras [No espaço de 30 min pls]. Cumpz Share this post Link to post Share on other sites
Cєятєzαร 167 Posted December 18, 2012 Choose, editado! :) Henrique actualizado ;) Vais começar? Emfim, ninguem te manda vir postar ! Share this post Link to post Share on other sites
kfeast 167 Posted December 18, 2012 Choose, editado! :) Henrique actualizado ;) Vais começar? Emfim, ninguem te manda vir postar ! Ao menos deixavas os créditos do autor original. Share this post Link to post Share on other sites
Cєятєzαร 167 Posted December 18, 2012 Estão lá, os créditos e vens para aqui xatear, baza menino ! Share this post Link to post Share on other sites
kfeast 167 Posted December 18, 2012 Estão lá, os créditos e vens para aqui xatear, baza menino ! Tem vergonha na cara http://cyber-gamers.org/public/style_emoticons/default/lol.gif 1 Cєятєzαร reacted to this Share this post Link to post Share on other sites
Cєятєzαร 167 Posted December 18, 2012 OFF: Pesso a um moderador / admnistrador que avise o membro kfeast para parar de estar sempre nos meus tópicos a inplicar comigo! Share this post Link to post Share on other sites
Cђ๏รєPєтภคร 865 Posted December 18, 2012 Tópico fechado durante 45 min. Cumprimentos,ChosePetras 1 Cєятєzαร reacted to this Share this post Link to post Share on other sites