Larback - Retornando conhecimento

Medíocre

Inclusão e listagem de dados com PDO

<!DOCTYPE html>
<html lang="pt-br">
<head>
  <title>Cadastro de links</title>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <link rel="stylesheet" href="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css">
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
  <script src="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.min.js"></script>
    <style>
    body{
        background-image: url('http://1.bp.blogspot.com/-o8kT6qd4Nc8/VQ-TFQ2t2YI/AAAAAAAAAhc/qM2h86C1Vg4/s1600/links.png');
        background-position: top right;
        background-repeat: no-repeat;
    }
    </style>
</head>
<body>

<div class="container">
  <h2>Cadastro de links</h2>
  <form class="form-horizontal" role="form" action="" method="post">
    <div class="form-group">
      <label class="col-sm-2 control-label">Título</label>
      <div class="col-sm-10">
        <input class="form-control" name="titulo" id="titulo" type="text" placeholder="Título do link" required >
      </div>
    </div>
    
    <div class="form-group">
      <label class="col-sm-2 control-label">Link</label>
      <div class="col-sm-10">
        <input class="form-control" id="link" name="link" type="url" placeholder="http://" required>
      </div>
    </div>  
    
    <div class="form-group">
      <label class="col-sm-2 control-label">Indicado por</label>
      <div class="col-sm-10">
        <input class="form-control" id="autor" name="autor" type="text" placeholder="Autor da indicação" required>
      </div>
    </div>    
       <button type="submit" name="btnCadastrar" class="btn btn-success">Cadastrar</button>
  </form>


    <?php
// Criar uma conexão com o banco de dados
// PDO - A string de conexão tem
// o banco de dados (mysql)
// o endereço do banco (192.168.50.100)
// o nome do banco de dados (sistema_links)
// usuário (estudante)
// senha (senhadb)
// A tabela utilizada neste exemplo foi:
/*
CREATE TABLE `links` (
  `codigo` int(11) NOT NULL AUTO_INCREMENT,
  `autor` varchar(100) DEFAULT NULL,
  `link` varchar(200) DEFAULT NULL,
  `titulo` varchar(200) DEFAULT NULL,
  PRIMARY KEY (`codigo`)
);
*/
$con = new PDO("mysql:host=192.168.50.100;dbname=sistema_links", "estudante","senhadb");
// Conexão deverá exibir mensagens de erro
	$con->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    if (isset($_POST['btnCadastrar'])) {
        // Se existir, o form já foi enviado
        try {
            $stm = $con->prepare("insert into links (titulo,link,autor) values (?,?,?)");
            $stm->bindValue(1,$_POST['titulo']);
            $stm->bindValue(2,$_POST['link']);
            $stm->bindValue(3,$_POST['autor']);
            $stm->execute();
            ?>
            <div class="alert alert-success">
            <a href="#" class="close" data-dismiss="alert" aria-label="close">&times;</a>
            <strong>Link cadastrado com sucesso.</strong>
            </div>
        <?php
        } catch(PDOException $e) {
            ?>
            <div class="alert alert-danger">
            <a href="#" class="close" data-dismiss="alert" aria-label="close">&times;</a>
            <strong>Atenção</strong> Ocorreu um erro ao acessar o banco de dados. Tente novamente em alguns instantes. Se o erro persistir, entre em contato com o suporte e informe a seguinte mensagem de erro: <strong><?=$e->getMessage();?></strong>
            </div>
            <?php
        }
    }
    ?>
        <table class="table table-hover">
      <caption>Links cadastrados</caption>
      <thead>
        <tr>
          <th>Título</th>
          <th>Link</th>
          <th>Autor</th>
        </tr>
      </thead>
      <tbody>
          <?php
            $rs = $con->query("select * from links");
            while($row = $rs->fetch(PDO::FETCH_OBJ)){
                echo "<tr><td>".$row->titulo."</td><td>".$row->link."</td><td>".$row->autor."</td></tr>";
            }
             ?>
      </tbody>
    </table>
    
</div>    
</body>
</html>