Aula 8

Sistema de noticias
Banco de dados
• Criar database aula;

• Tabela noticias;

      Id             Titulo   Texto


• Id: Int, auto increment;
• Titulo e texto : Text;
Arquivo de conexão
<?php
$usuario = "root"; //Usuario
$senha = ""; //Senha
$db = "aula"; //Nome do Banco
$servidor = "localhost"; //Endereço do Servidor

$conexao = mysql_connect($servidor, $usuario,
  $senha) or die(mysql_error());
$database = mysql_select_db($db, $conexao);
?>
• mysql_connect — Abre uma conexão com
  um servidor MySQL

• mysql_select_db — Seleciona um banco
  de dados MySQL
Index.php
<style type="text/css">
<!—
#menu {
    width: 200px;
    padding: 15px;
    background-color:#093;
    float: left;
}
#centro {
    width: 700px;
    padding: 15px;
    float: left;
}
-->
</style>
<h2 align="center">Sistema de Noticias</h2>

<br /><br />

<div id="menu">
- <a href="index.php?pagina=exibe" title="">Exibir Noticias</a><br />
- <a href="index.php?pagina=inserir" title="">Inserir Noticias</a><br />

</div>
<div id="centro">
<?php
//Pega os dados passados pela URL
$pagina = (isset($_GET["pagina"])) ? $_GET['pagina'] : '';

//Verifica se a string passada possui algum trecho invalido. Caso tenha mostra uma mensagem de erro

if(eregi("<html>|iframe|form|script|object|http|www|ftp|.dat|.txt|.gif|wget|from|select|insert|delete|where|drop table|show
      tables", $pagina)) {

     echo "Violação de Segurança! Você provavelmente tentou entrar numa página inexistente. Volte e acesse a
     página correta.";

//Se a variavel passada estiver dentro das normas, executa o ELSE abaixo:

}else{

     if(!empty($pagina)) {

              include ("$pagina.php");

     }else{

              include ("inicio.php"); //incluo a página inicial

     }

}
?>
</div>
• Eregi() - Verifica se a variavel casa com a
  expressão regular definida no parametro
  expressao;

• Include() – inclui um arquivo php
Inserir.php
<!-- Titulo da página -->
<h3 align="center">Criação de Nova Noticia</h3>

<form name="nova_noti" id="nova_noti" method="post" action="banco/inserir.php">
<table align="center">
<tr>
<td align="right">Titulo:</td>
<td align="left">
<input name="titulo" type="text" id="titulo" value="" size="40" /></td>
</tr>
<tr>
<td align="right">Conteudo da Noticia:</td>
<td align="left">
<textarea name="texto" cols="35" rows="7" id="texto"></textarea>
</td>
</tr>
<tr><td colspan="2">&nbsp;</td></tr>
<tr>
<td colspan="2" align="center">
<input name="Submit" type="submit" value="Enviar" />
</td>
</tr>
</table>
</form>
banco/inserir.php
<?php
include("../config.php");
?>
<?php
//Pegando as variaveis do Formulário
$titulo = $_POST['titulo'];
$texto = $_POST['texto'];

$sql = mysql_query("INSERT INTO noticias (titulo, texto) VALUES ('".$titulo."', '".$texto."')");
$id_noticia = mysql_insert_id(); //ID gerado para esta inserção. Usado sempre após mysql_query.

if(!$sql){

      echo "Erro ao tentar inserir registro: ".mysql_error();

}else{

      //Alerta de Sucesso e efetua redirecionamento
      print "<script>alert('Noticia criada com sucesso! Seu ID é $id_noticia .')</script>";
      print "<script>window.location.replace('../index.php')</script>";

}//Fecha ELSE

?>
• mysql_query — Envia uma consulta
  MySQL

• mysql_insert_id() - returna o ID gerado
  para um campo AUTO_INCREMENT pela
  ultima query INSERT
exibe.php
<?php
include("config.php");
?>
<!-- Titulo da página -->
<h3 align="center">Lista de Noticias</h3>

<?php
$sqlStr = "SELECT * FROM noticias ORDER BY titulo ASC";
$aux = mysql_query($sqlStr); //Seleciono os dados para exibição

$sqlStrAux = "SELECT count(*) as total FROM noticias ORDER BY
   titulo ASC";
$b = mysql_fetch_assoc(mysql_query($sqlStrAux)); //Conto
   quantidade de registros para fazer a condição
if($b['total']>0){
?>

<table align="center" cellpadding="2" cellspacing="2">
<tr>
<td bgcolor="#12037b" align="center"><strong>ID</strong></td>
<td bgcolor="#12037b" align="center"><strong>Titulo</strong></td>
<td bgcolor="#12037b" align="center"><strong>Ação</strong></td>
</tr>
<?php
                $cor = '';
                $corA = '#ffffff';
                $corB = '#f7f7f7';
                while($valor = mysql_fetch_array($aux)) {
                $cor = $cor == $corA ? $corB : $corA;
                               echo "<tr bgcolor="".$cor."">";
                               echo "<td align="center">".$valor['id']."</td>";
                               echo "<td align="center">".$valor['titulo']."</td>";
                               echo "<td align="center"><a href="index.php?pagina=editar&id=".$valor['id'].""
      title="Edite esta Noticia"><img src="edite.jpg" border="0" alt="editar"></a></td>";
                               echo "</tr>";
                }
?>
</table>

<?php
}else{//Se não houver registros, ou seja, $b['total'] = 0
              echo "<table align="center">";
        echo "<tr><td>Não existem noticias cadastradas.</td></tr>";
              echo "</table>";
}
?>
• mysql_fetch_assoc -- Busca o resultado
  de uma linha e o coloca numa matriz
  associativa

Aula 8 php

  • 1.
  • 2.
    Banco de dados •Criar database aula; • Tabela noticias; Id Titulo Texto • Id: Int, auto increment; • Titulo e texto : Text;
  • 3.
    Arquivo de conexão <?php $usuario= "root"; //Usuario $senha = ""; //Senha $db = "aula"; //Nome do Banco $servidor = "localhost"; //Endereço do Servidor $conexao = mysql_connect($servidor, $usuario, $senha) or die(mysql_error()); $database = mysql_select_db($db, $conexao); ?>
  • 4.
    • mysql_connect —Abre uma conexão com um servidor MySQL • mysql_select_db — Seleciona um banco de dados MySQL
  • 5.
    Index.php <style type="text/css"> <!— #menu { width: 200px; padding: 15px; background-color:#093; float: left; } #centro { width: 700px; padding: 15px; float: left; } --> </style>
  • 6.
    <h2 align="center">Sistema deNoticias</h2> <br /><br /> <div id="menu"> - <a href="index.php?pagina=exibe" title="">Exibir Noticias</a><br /> - <a href="index.php?pagina=inserir" title="">Inserir Noticias</a><br /> </div>
  • 7.
    <div id="centro"> <?php //Pega osdados passados pela URL $pagina = (isset($_GET["pagina"])) ? $_GET['pagina'] : ''; //Verifica se a string passada possui algum trecho invalido. Caso tenha mostra uma mensagem de erro if(eregi("<html>|iframe|form|script|object|http|www|ftp|.dat|.txt|.gif|wget|from|select|insert|delete|where|drop table|show tables", $pagina)) { echo "Violação de Segurança! Você provavelmente tentou entrar numa página inexistente. Volte e acesse a página correta."; //Se a variavel passada estiver dentro das normas, executa o ELSE abaixo: }else{ if(!empty($pagina)) { include ("$pagina.php"); }else{ include ("inicio.php"); //incluo a página inicial } } ?> </div>
  • 8.
    • Eregi() -Verifica se a variavel casa com a expressão regular definida no parametro expressao; • Include() – inclui um arquivo php
  • 9.
    Inserir.php <!-- Titulo dapágina --> <h3 align="center">Criação de Nova Noticia</h3> <form name="nova_noti" id="nova_noti" method="post" action="banco/inserir.php"> <table align="center"> <tr> <td align="right">Titulo:</td> <td align="left"> <input name="titulo" type="text" id="titulo" value="" size="40" /></td> </tr> <tr> <td align="right">Conteudo da Noticia:</td> <td align="left"> <textarea name="texto" cols="35" rows="7" id="texto"></textarea> </td> </tr> <tr><td colspan="2">&nbsp;</td></tr> <tr> <td colspan="2" align="center"> <input name="Submit" type="submit" value="Enviar" /> </td> </tr> </table> </form>
  • 10.
    banco/inserir.php <?php include("../config.php"); ?> <?php //Pegando as variaveisdo Formulário $titulo = $_POST['titulo']; $texto = $_POST['texto']; $sql = mysql_query("INSERT INTO noticias (titulo, texto) VALUES ('".$titulo."', '".$texto."')"); $id_noticia = mysql_insert_id(); //ID gerado para esta inserção. Usado sempre após mysql_query. if(!$sql){ echo "Erro ao tentar inserir registro: ".mysql_error(); }else{ //Alerta de Sucesso e efetua redirecionamento print "<script>alert('Noticia criada com sucesso! Seu ID é $id_noticia .')</script>"; print "<script>window.location.replace('../index.php')</script>"; }//Fecha ELSE ?>
  • 11.
    • mysql_query —Envia uma consulta MySQL • mysql_insert_id() - returna o ID gerado para um campo AUTO_INCREMENT pela ultima query INSERT
  • 12.
    exibe.php <?php include("config.php"); ?> <!-- Titulo dapágina --> <h3 align="center">Lista de Noticias</h3> <?php $sqlStr = "SELECT * FROM noticias ORDER BY titulo ASC"; $aux = mysql_query($sqlStr); //Seleciono os dados para exibição $sqlStrAux = "SELECT count(*) as total FROM noticias ORDER BY titulo ASC"; $b = mysql_fetch_assoc(mysql_query($sqlStrAux)); //Conto quantidade de registros para fazer a condição
  • 13.
    if($b['total']>0){ ?> <table align="center" cellpadding="2"cellspacing="2"> <tr> <td bgcolor="#12037b" align="center"><strong>ID</strong></td> <td bgcolor="#12037b" align="center"><strong>Titulo</strong></td> <td bgcolor="#12037b" align="center"><strong>Ação</strong></td> </tr> <?php $cor = ''; $corA = '#ffffff'; $corB = '#f7f7f7'; while($valor = mysql_fetch_array($aux)) { $cor = $cor == $corA ? $corB : $corA; echo "<tr bgcolor="".$cor."">"; echo "<td align="center">".$valor['id']."</td>"; echo "<td align="center">".$valor['titulo']."</td>"; echo "<td align="center"><a href="index.php?pagina=editar&id=".$valor['id']."" title="Edite esta Noticia"><img src="edite.jpg" border="0" alt="editar"></a></td>"; echo "</tr>"; } ?> </table> <?php }else{//Se não houver registros, ou seja, $b['total'] = 0 echo "<table align="center">"; echo "<tr><td>Não existem noticias cadastradas.</td></tr>"; echo "</table>"; } ?>
  • 14.
    • mysql_fetch_assoc --Busca o resultado de uma linha e o coloca numa matriz associativa