Skip to content

Commit

Permalink
Update 01122020
Browse files Browse the repository at this point in the history
  • Loading branch information
ribafs committed Dec 1, 2020
1 parent f21a236 commit 9bb5209
Show file tree
Hide file tree
Showing 34 changed files with 390 additions and 432 deletions.
20 changes: 0 additions & 20 deletions .github/contributing.md

This file was deleted.

7 changes: 5 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,9 +1,12 @@
# Criador Automático de CRUDs

Apenas indique o banco de dados e a tabela no conexao.php e ele cria seu CRUD com PDO, Bootstrap e Paginação, com suporte a MySQL e PostgreSQL garantidos e ainda outros via PDO.
#### Apenas indique o banco de dados e a tabela no conexao.php e ele cria seu CRUD com PDO, Bootstrap e Paginação, com suporte a MySQL e PostgreSQL garantidos e ainda outros via PDO.

### Mais facilidades para esta versão
Agora você pode apenas inserir o script.sql na pasta script e indicar no conexão que o auto-crud-pt irá criar o banco para ele e importar seu script

### Em dois Idiomas
Português - https://github.com/ribafs/auto-crud
Português - https://github.com/ribafs/auto-crud-pt

Inglês - https://github.com/ribafs/auto-crud-en

Expand Down
53 changes: 53 additions & 0 deletions atualizar.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
<?php
require_once('./cabecalho.php');
require_once('./conexao.php');

// Receebr o id via GET do busca_resultados.php ou via POST deste arquivo
if(isset($_GET['id'])){
$id=$_GET['id'];
}else{
$id=$_POST['id'];
}

// Mostrar nome da Tabela
print '<h3 align="center">'.ucfirst($table).'</h3>';
?>

<!-- Mostrar form de atualização -->
<div class="container" align="center">
<div class="row">
<div class="col-md-3"></div>
<div class="col-md-6">
<form method="post" action="atualizar.php">
<table class="table table-bordered table-responsive table-hover">

<?php
$sth = $pdo->prepare("SELECT * from $table WHERE id = :id");
$sth->bindValue(':id', $id, PDO::PARAM_STR); // No select e no delete basta um único bindValue
$sth->execute();

$reg = $sth->fetch(PDO::FETCH_OBJ);

$num_campos = num_campos();

for($x=1;$x<$num_campos;$x++){
$campo = nome_campo($x);
?>
<tr><td><b><?=ucfirst($campo)?></td><td><input type="text" name="<?=$campo?>" value="<?=$reg->$campo?>"></td></tr>
<?php
}
?>
<input name="id" type="hidden" value="<?=$id?>">
<tr><td></td><td><input name="enviar" class="btn btn-primary" type="submit" value="Editar">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<input name="enviar" class="btn btn-warning" type="button" onclick="location='index.php'" value="Voltar"></td></tr>
</table>
</form>
</div>
<div>
</div>

<?php
require_once('./rodape.php');
require_once('./atualizarbd.php');
?>

37 changes: 37 additions & 0 deletions atualizarbd.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
<?php

if(isset($_POST['enviar'])){

$set='';
$num_campos = num_campos();

for($x=0;$x<$num_campos;$x++){
$campo = nome_campo($x);
// A linha abaixo gerará a linha: $nome = 'Nome do cliente';
$$campo = $_POST[$campo];

// Esta if gerará a variável $set contendo "$nome = :$nome, $email = :$email, ...";
if($x<$num_campos-1){
if($x==0) continue;// Evitar o id
$set .= "$campo = :$campo,";
}else{
if($x==0) continue;
$set .= "$campo = :$campo";
}
}

$sql = "UPDATE $table SET $set WHERE id = :id";

$sth = $pdo->prepare($sql);

for($x=0;$x<$num_campos;$x++){
$campo = nome_campo($x);
$sth->bindParam(":$campo", $_POST["$campo"], PDO::PARAM_STR);
}

if($sth->execute()){
print "<script>location='index.php';</script>";
}else{
print "Erro ao editar o registro!<br><br>";
}
}
64 changes: 64 additions & 0 deletions busca.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
<?php
require_once('./cabecalho.php');
include './conexao.php';

// Busca
if(isset($_GET['palavra'])){
$palavra=$_GET['palavra'];
$campo = nome_campo(1);

$sql = "select * from $table WHERE $campo LIKE :palavra order by id";
$sth = $pdo->prepare($sql);
$sth->bindValue(":palavra", $palavra."%");
$sth->execute();
$rows =$sth->fetchAll(PDO::FETCH_ASSOC);
}

print '<div class="container" align="center">';
print '<h4>Registro(s) encontrado(s)</h4>';

if(count($rows) > 0){
print '<div class="container" align="center">';
echo '<table class="table table-hover">';
echo "<tr>";

$num_campos = num_campos();

for($x=0;$x<$num_campos;$x++){
$campo = nome_campo($x);
?>
<th><?=ucfirst($campo)?></th>
<?php
}

print '<th colspan="2">Ação</th>';
echo "</tr>";

// Loop através dos registros recebidos
foreach ($rows as $row){
echo "<tr>";
for($x=0;$x<$num_campos;$x++){
$campo = nome_campo($x);
?>
<td><?=$row[$campo]?></td>
<?php
}
?>
<td><a href="atualizar.php?id=<?=$row['id']?>"><i class="glyphicon glyphicon-edit" title="Editar"></a></td>
<td><a href="excluir.php?id=<?=$row['id']?>"><i class="glyphicon glyphicon-remove-circle" title="Excluir"></a></td></tr>

<?php
echo "</tr>";
}
echo "</table>";

}else{
print '<h3>Nenhum Registro encontrado!</h3>';
}

?>

<input name="enviar" class="btn btn-warning" type="button" onclick="location='index.php'" value="Voltar">
</div>

<?php require_once('./cabecalho.php'); ?>
45 changes: 22 additions & 23 deletions search_results.php → busca_resultados.php
Original file line number Diff line number Diff line change
@@ -1,16 +1,16 @@
<?php require_once('./header.php'); ?>
<?php require_once('./cabecalho.php'); ?>

<div class="container">
<div class="row">
<!-- Botão para adicionar novo registro-->
<div class="col-md-3">
<a href="insert.php" class="btn btn-default">Novo Registro</a>
<a href="inserir.php" class="btn btn-default">Novo Registro</a>
</div>

<!-- Form de busca-->
<div class="col-md-9">
<form action="search.php" method="get" >
<div class="pull-right" style="padding-left: 0;" >
<form action="busca.php" method="get" >
<div class="pull-right"style="padding-left: 0;" >
<span class="pull-right">
<label class="control-label" for="palavra" style="padding-right: 0;">
<input type="text" value="" placeholder="Nome ou parte" class="form-control" name="palavra">
Expand All @@ -25,12 +25,10 @@
<br>

<?php
require_once './classes/connection.php';
require_once './classes/crud.php';
$crud = new Crud($db);
require_once './classes/pagination.php';
require_once './conexao.php';
require_once './paginacao.php';

$sql = "select * from $crud->table order by id";
$sql = "select * from $table order by id desc";

/*
Parâmetros da Paginacao:
Expand All @@ -47,7 +45,7 @@
*/

// Sintaxe da Paginacao($pdoection, $sql, $rows_per_page = 15, $links_per_page = 23, $append = "")
$pager = new Paginacao($db, $sql, 10, 23, null);
$pager = new Paginacao($pdo, $sql, 8, 23, null);

// Classe de paginação renderiza os registros retornados
$rs = $pager->paginate();
Expand All @@ -60,11 +58,12 @@
print '<div class="container" align="center">';
echo '<table class="table table-hover">';
echo "<tr>";
$num_campos = num_campos();

for($x=0;$x<$crud->numFields();$x++){
$field = $crud->fieldName($x);
for($x=0;$x<$num_campos;$x++){
$campo = nome_campo($x);
?>
<th><?=ucfirst($field)?></th>
<th><?=ucfirst($campo)?></th>
<?php
}
// Mostrar os rótulos dos campos
Expand All @@ -74,31 +73,31 @@
// Loop através dos registros recebidos
while ($row = $rs->fetch(PDO::FETCH_ASSOC)){
echo "<tr>";
for($x=0;$x<$crud->numFields();$x++){
$field = $crud->fieldName($x);
for($x=0;$x<$num_campos;$x++){
$campo = nome_campo($x);
?>
<!-- Mostrar os valores dos campos-->
<td><?=$row[$field]?></td>
<td><?=$row[$campo]?></td>
<?php
}
?>
<td><a href="update.php?id=<?=$row['id']?>"><i class="glyphicon glyphicon-edit" title="Editar"></a></td>
<td><a onclick="return confirm('Tem certeza de que deseja excluir <?=$row['nome']?> ?')" href="delete_db.php?id=<?=$row['id']?>"><i class="glyphicon glyphicon-remove-circle" title="Excluir"></a></td></tr>
<?php
echo "</tr>";
?>
<td><a href="atualizar.php?id=<?=$row['id']?>"><i class="glyphicon glyphicon-edit" title="Editar"></a></td>
<td><a href="excluir.php?id=<?=$row['id']?>"><i class="glyphicon glyphicon-remove-circle" title="Excluir"></a></td></tr>
<?php
echo "</tr>";
}
echo "</table>";
}else{
// Caso não encontre registros
echo "Nenhum registro encontrado!";
}

// 'page-nav' CSS class é usada para controlar a aparência dos números de páginas da navegação
// 'page-nav' CSS class é usada para controlar a aparência dos números de páginas da navegação
echo "<div class='page-nav' align='center'>";
// Mostra nossa navegação de números
echo $pager->renderFullNav();
echo "</div>
</div>";

require_once('./footer.php');
require_once('./rodape.php');
?>
5 changes: 3 additions & 2 deletions header.php → cabecalho.php
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,10 @@
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<link rel="shortcut icon" href="favicon.ico" type="image/x-icon" sizes="16x16 24x24 32x32 64x64"/>
<link href="./assets/css/bootstrap.min.css" rel="stylesheet" media="screen">
<link href="./assets/css/style.css" rel="stylesheet" media="screen">
<link href="./css/bootstrap.min.css" rel="stylesheet" media="screen">
<link href="./css/style.css" rel="stylesheet" media="screen">
</head>
<body>
<div class="container cabecalho">
Expand Down
30 changes: 0 additions & 30 deletions classes/connection.php

This file was deleted.

Loading

0 comments on commit 9bb5209

Please sign in to comment.