Ir para conteúdo
Fórum Script Brasil
  • 0

Ajuda para criar tabela com dados de uma consulta mysql e botão excluir registro a cada linha


marcusufsj

Pergunta

Pessoal, boa tarde.

Tenho um formulário bem simples de cadastro que já funciona muito bem para meu propósito. 

Eu queria agora, exibir abaixo do formulário duas tabelas com registros do banco e ao final de cada linha, um botão excluir registro, assim como mostra a figura anexada ao tópico.

No momento, precisaria apenas disso para que meu "mini sistema" seja no mínimo funcional para o que preciso aqui no trabalho. Espero poder contar com dicas e ajuda dos feras aqui do fórum.

Confesso que o único contato que tive com programação foi em meados de 2013 quando comecei um curso de php e mysql e infelizmente não consegui termina-lo, por isso espero contar também com a paciência e compreensão de vocês. O objetivo desse sisteminha é melhorar a logística de insumos do laboratório público(SUS) onde trabalho no diagnóstico de covid. Simplesmente comecei a escrever o código e adaptar modelos encontradas na internet com o pouco que me lembrava e no fim consegui fazer esse formulário.

Segue o código:

cadastro1.php

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>CADASTRO</title>

<style type="text/css">

<!--
.style1 {
	color: #FF0000;
	font-size: small;
}
.style3 {color: #0000FF; font-size: x-small; }

-->

</style>


<script type="text/javascript">
  
/* BLOQUEIA ENTER leitor código de barras
window.addEventListener('keydown', function(e) {
        if (e.keyIdentifier == 'U+000A' || e.keyIdentifier == 'Enter' || e.keyCode == 13) {
            if (e.target.nodeName == 'INPUT' && e.target.type == 'text') {
               e.preventDefault();
                return false;
            }
        }
    }, true); */


//VALIDA CAMPO
function validaCampo()
{
if(document.cadastro.produto.value=="")
	{
	alert("O Campo PRODUTO \u00e9 obrigat\u00f3rio!");
	return false;
	}
else
	if(document.cadastro.quantidade.value=="")
	{
	alert("O Campo QUANTIDADE \u00e9 obrigat\u00f3rio!");
	return false;
	}
else
if(document.cadastro.colaborador.value=="")
	{
	alert("O Campo COLABORADOR \u00e9 obrigat\u00f3rio!");
	return false;
	}
else
return true;
}
<!-- Fim do JavaScript que validará os campos obrigatórios! -->
</script>
</head>

<body>


<form id="cadastro" name="cadastro" method="post" action="processa.php" onsubmit="return validaCampo(); return false;">
  <table width="625" border="0" align="center">
  <h2 align="center">Dados da retirada:</h2>
    <tr>
      <td width="69">Produto:</td>
      <td width="546"><input name="produto" type="text" id="produto" size="60" maxlength="50" />
        <span class="style1">*</span></td>
    </tr>
	<tr>
      <td>Quantidade:</td>
      <td><input name="quantidade" type="number" id="quantidade" size="38" maxlength="35" />
        <span class="style1">*</span></td>
    </tr>
    <tr>
      <td>Colaborador:</td>
      <td><input name="colaborador" type="text" id="colaborador" size="60" maxlength="50" />
      <span class="style1">*</span></td>
    </tr>
    <tr>
    <td><h3>Adicionais:</h3></td>
	  <tr>
      <td>Observa&ccedil;oes:</td>
      <td><textarea name="obs" id="obs" cols="40" rows="3" ></textarea>
        </td>
    </tr>	
    <tr>
      <td>Lote:</td>
      <td><input name="lote" type="text" id="lote" size="38" />
       <span class="style1">APENAS PARA KITS DE PCR</span></td> 
    </tr>
    <tr>
     <tr>
      <td colspan="2"><p>
        <input name="cadastrar" type="submit" id="cadastrar" value="Concluir retirada!" /> &ensp;
        
          <input name="limpar" type="reset" id="limpar" value="Limpar Campos preenchidos!" />
          <br />
          <span class="style1">Campos com * s&atilde;o obrigat&oacute;rios!</span></p>
      <p>&nbsp; </p></td>
    </tr>
  </table>
</form>
  
<!-- INICIO DA CONSULTA QUE CONSEGUI EXIBIR ABAIXO DO FORMULÁRIO! -->
  
  <?php 

//conectando com o localhost - mysql
$conexao = mysql_connect("localhost","root","usbw");
if (!$conexao)
	die ("Erro de conexão com localhost, o seguinte erro ocorreu -> ".mysql_error());
//conectando com a tabela do banco de dados
$banco = mysql_select_db("covid",$conexao);
if (!$banco)
	die ("Erro de conexão com banco de dados, o seguinte erro ocorreu -> ".mysql_error());
mysql_query("SET NAMES 'utf8'");
mysql_query('SET character_set_connection=utf8');
mysql_query('SET character_set_client=utf8');
mysql_query('SET character_set_results=utf8');

?> 


         <fieldset class="row2">
          <legend><font color="black">Ultimas Sa&iacute;das</font></legend>
            <p>
                <?php
                   $query = "SELECT created,produto,quantidade,colaborador from retirada ORDER BY created desc";
                   $result = mysql_query($query);
                    while($fetch = mysql_fetch_row($result)){
       echo "<p>". $fetch[0] . " | " . $fetch[1] . " | " . $fetch[2] . " | " . $fetch[3] . "</p>";
    }
                ?>
            </p> 
        </fieldset> 
</body>
</html>

processa.php

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Untitled Document</title>
</head>

<body>
<?php 
// RECEBENDO OS DADOS PREENCHIDOS DO FORMULÁRIO !
$produto	= $_POST ["produto"];	//atribuição do campo "produto" vindo do formulário para variavel
$quantidade	= $_POST ["quantidade"];	//atribuição do campo "quantidade" vindo do formulário para variavel	
$colaborador	= $_POST ["colaborador"];	//atribuição do campo "colaborador" vindo do formulário para variavel
$obs	= $_POST ["obs"];	//atribuição do campo "obs" vindo do formulário para variavel
$lote	= $_POST ["lote"];	//atribuição do campo "lote" vindo do formulário para variavel
//Gravando no banco de dados !

//conectando com o localhost - mysql
$conexao = mysql_connect("localhost","root","usbw");
if (!$conexao)
	die ("Erro de conexão com localhost, o seguinte erro ocorreu -> ".mysql_error());
//conectando com a tabela do banco de dados
$banco = mysql_select_db("covid",$conexao);
if (!$banco)
	die ("Erro de conexão com banco de dados, o seguinte erro ocorreu -> ".mysql_error());
mysqli_set_charset($conexao,"utf8");
mysql_query("SET NAMES 'utf8'");
mysql_query('SET character_set_connection=utf8');
mysql_query('SET character_set_client=utf8');
mysql_query('SET character_set_results=utf8');



$query = "INSERT INTO `retirada` (`created` , `produto` , `quantidade` , `colaborador` , `obs` , `lote` , `id` ) 
VALUES (NOW(),'$produto', '$quantidade', '$colaborador', '$obs', '$lote', '')";

mysql_query($query,$conexao);

echo "<script>
    alert('Registrado com sucesso!'); location= './cadastro1.php';
    </script>";
	
 //echo "Seu cadastro foi realizado com sucesso!<br>Agradecemos a atenção." ;
   


?> 
</body>
</html>

sql:

-- Dumping database structure for covid
CREATE DATABASE IF NOT EXISTS `covid` /*!40100 DEFAULT CHARACTER SET utf8 */;
USE `covid`;

-- Dumping structure for table covid.requisicao
CREATE TABLE IF NOT EXISTS `requisicao` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `created` datetime NOT NULL,
  `produto` varchar(50) NOT NULL DEFAULT '0',
  `quantidade` varchar(50) NOT NULL DEFAULT '0',
  `setor` varchar(50) NOT NULL DEFAULT '0',
  `colaborador` varchar(50) NOT NULL DEFAULT '0',
  UNIQUE KEY `id` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

-- Data exporting was unselected.

-- Dumping structure for table covid.retirada
CREATE TABLE IF NOT EXISTS `retirada` (
  `created` datetime NOT NULL,
  `produto` varchar(60) NOT NULL,
  `quantidade` varchar(60) NOT NULL,
  `colaborador` varchar(60) NOT NULL,
  `obs` varchar(70) NOT NULL,
  `lote` varchar(20) NOT NULL,
  `id` int(200) NOT NULL AUTO_INCREMENT,
  UNIQUE KEY `id` (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=latin1;

-- Data exporting was unselected.

/*!40101 SET SQL_MODE=IFNULL(@OLD_SQL_MODE, '') */;
/*!40014 SET FOREIGN_KEY_CHECKS=IFNULL(@OLD_FOREIGN_KEY_CHECKS, 1) */;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40111 SET SQL_NOTES=IFNULL(@OLD_SQL_NOTES, 1) */;

 

objetivo.png

Editado por marcusufsj
Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0

Esse código é bem bacana, eu aprendi que existe o <input type=reset>, ele limpa todos os outros <input>, e também o fetch_array( ), que dá para relacionar todos os campos, usando apenas número, e hoje eu também aprendi a alinhar duas divs por cima. Mas eu não tenho a extensão MySQL no PHP, assim usei o motor mysqli e fiz várias modificações no código original:

 

cadastro1.php

<title>CADASTRO</title>
<body style="width:900px;margin:0 auto">
<form id=cadastro name=cadastro method=post action=processa.php>
  <table width=625 border=0 align=center>
  <h2 align=center>Dados da retirada:
  <tr><td width="69">Produto:
  <td width=546><input name=produto size=60 maxlength=50 required>
  <tr><td>Quantidade:
  <td><input name=quantidade type=number size=38 maxlength=35 required>
  <tr><td>Colaborador:
  <td><input name=colaborador size=60 maxlength=50 required>
  <tr><td><h3>Adicionais:</h3>
  <tr><td>Observações:
  <td><textarea name=obs id=obs cols=40 rows=3></textarea>
  <tr><td>Lote:
  <td><input name=lote size=38>
  APENAS PARA KITS DE PCR
  <tr><tr><td colspan=2><p>
  <input type=submit value="Concluir retirada!" /> &ensp;
  <input type=reset value="Limpar Campos preenchidos!">
  <br>
  <p>&nbsp; </p>
  </table>
</form>
<div style=width:400;float:left>
<fieldset><legend>Ultimas Saídas</legend>
<?php
$mysqli = new mysqli("localhost","root","","astudy");
$sql = "SELECT created,produto,quantidade,colaborador,id from retirada ORDER BY created desc";
$query = $mysqli->query($sql);
while($row = $query->fetch_array()){
    $id=$row[4];
    echo "<p>". $row[0] . " | " . $row[1] . " | " . $row[2] . " | " .
            $row[3] . "<a href=processa?excluir=$id> Excluir</a></p>";}
                ?>
            </p> 
        </fieldset>
</div>
<div style=width:400;display:inline-block>
<fieldset><legend>Requisições</legend>
<?php
$query=$mysqli->query("select * from requisicao");
while($row=$query->fetch_array()){
    echo "<p>".$row[1]."|".$row[2]."|".$row[3]."|".$row[4];} ?>
</div>
</body>
</html>
    
-------------------------------------------
    
processa.php

<?php
$mysqli=new mysqli("localhost","root","","astudy");
if(isset($_GET['excluir'])){
    $id=$_GET['excluir'];
    $sql="delete from retirada where id=$id";} else {
        $produto=$_POST["produto"];	
        $quantidade=$_POST["quantidade"];	
        $colaborador=$_POST["colaborador"];	
        $obs=$_POST["obs"];	
        $lote=$_POST["lote"];	
        $sql="INSERT INTO `retirada` 
        (`created` , `produto` , `quantidade` , `colaborador` , `obs` , `lote` , `id` ) 
        VALUES (NOW(),'$produto', '$quantidade', '$colaborador', '$obs', '$lote', '')";}
$query=$mysqli->query($sql);
header('location:cadastro1.php');

 

Screenshot_1.png

Editado por Frank K Hosaka
Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...