Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

VMG

CRUD em PHP não salva no MYSQL

Recommended Posts

Boa noite pessoal.
Eu achei um CRUD na internet e modifiquei para o que eu precisava, porém quando clico em salvar, ele não faz nada.

Vou postar aqui os scripts se alguém puder dar uma olhada e me dizer pq não esta salvando eu ficarei muito grato!

 

Eu abri o meu MySQL 5.7 Command Line Client - Unicode e criei:

 

Create database cadastroevento;

 

Use cadastroevento;

 

Create table cadastroevento (

Id int(11) not null auto_increment primary key,
data varchar(50),
evento varchar(1000),
obs varchar (2000),
horario varchar(50)

);

Depois fui para o php:


index.html

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>Agenda</title>
    <link rel="stylesheet" type="text/css" href="css/easyui.css">
    <link rel="stylesheet" type="text/css" href="css/icon.css">
    <link rel="stylesheet" type="text/css" href="css/demo.css">
    <style type="text/css">
        #fm{
            margin:0;
            padding:10px 30px;
        }
        .ftitle{
            font-size:14px;
            font-weight:bold;
            color:#666;
            padding:5px 0;
            margin-bottom:10px;
            border-bottom:1px solid #ccc;
        }
        .fitem{
            margin-bottom:5px;
        }
        .fitem label{
            display:inline-block;
            width:80px;
        }
    </style>
    <script type="text/javascript" src="js/jquery-1.6.min.js"></script>
    <script type="text/javascript" src="js/jquery.easyui.min.js"></script>
    <script type="text/javascript">
        var url;
        function newEvent(){
            $('#dlg').dialog('open').dialog('setTitle','Novo Evento');
            $('#fm').form('clear');
            url = 'salvar_cadastroevento.php';
        }
        function editEvent(){
            var row = $('#dg').datagrid('getSelected');
            if (row){
                $('#dlg').dialog('open').dialog('setTitle','Editar Evento');
                $('#fm').form('load',row);
                url = 'atualizar_cadastroevento.php?id='+row.id;
            }
        }
        function saveEvent(){
            $('#fm').form('submit',{
                url: url,
                    onSubmit: function(){
                    return $(this).form('validate');
                },
                success: function(result){
                    var result = eval('('+result+')');
                    if (result.success){
                        $('#dlg').dialog('close');       
                        $('#dg').datagrid('reload');   
                    } else {
                        $.messager.show({
                            title: 'Erro',
                            msg: result.msg
                        });
                    }
                }
            });
        }
        function removeEvent(){
            var row = $('#dg').datagrid('getSelected');
            if (row){
                $.messager.confirm('Confirm','Tem certeza que deseja remover o Evento?',function(r){
                    if (r){
                        $.post('remover_cadastroevento.php',{id:row.id},function(result){
                            if (result.success){
                                $('#dg').datagrid('reload');    
                            } else {
                                $.messager.show({    
                                    title: 'Error',
                                    msg: result.msg
                                });
                            }
                        },'json');
                    }
                });
            }
        }
    </script>
</head>
<body>
<center>
    <h2>Agenda</h2>
  
    
    <table id="dg" title="Cadastar Evento" class="easyui-datagrid" style="width:700px;height:250px"
            url="pegar_cadastroevento.php"
            toolbar="#toolbar" pagination="true"
            rownumbers="true" fitColumns="true" singleSelect="true">
        <thead>
            <tr>
                <th field="data" width="50">Data</th>
                <th field="evento" width="50">Evento</th>
                <th field="obs" width="50">Observação</th>
                <th field="horario" width="50">Horário</th>
            </tr>
        </thead>
    </table>
    <div id="toolbar">
        <a href="#" class="easyui-linkbutton" iconCls="icon-add" plain="true" onclick="newEvent()" title="Adicionar Evento">Novo Evento</a>
        <a href="#" class="easyui-linkbutton" iconCls="icon-edit" plain="true" onclick="editEvent()" title="Alterar Dados do Evento">Editar Evento</a>
        <a href="#" class="easyui-linkbutton" iconCls="icon-remove" plain="true" onclick="removeEvent()" title="Remover Evento">Remover Evento</a>
    </div>
    
    <div id="dlg" class="easyui-dialog" style="width:400px;height:280px;padding:10px 20px"
            closed="true" buttons="#dlg-buttons">
        <div class="ftitle">Dados do Evento</div>
        <form id="fm" method="post" novalidate>
            <div class="fitem">
                <label>Data:</label>
                <input name="data" class="easyui-validatebox" required>
            </div>
            <div class="fitem">
                <label>Evento</label>
                <input name="evento" class="easyui-validatebox" required>
            </div>
            <div class="fitem">
                <label>Observação:</label>
                <input name="obs">
            </div>
            <div class="fitem">
                <label>Horário:</label>
                <input name="horario" class="easyui-validatebox" required>
            </div>
        </form>
    </div>
    <div id="dlg-buttons">
        <a href="#" class="easyui-linkbutton" iconCls="icon-ok" onclick="saveEvent()">Salvar</a>
        <a href="#" class="easyui-linkbutton" iconCls="icon-cancel" onclick="javascript:$('#dlg').dialog('close')">Cancelar</a>
    </div>
	</center>
</body>
</html>

conn.php

<?php

$conn = @mysql_connect('127.0.0.1','root','1234');
if (!$conn) {
    die('Não foi possível Conectar: ' . mysql_error());
}
mysql_select_db('cadastroevento', $conn);

?>

pegar_cadastroevento.php

<?php
    $page = isset($_POST['page']) ? intval($_POST['page']) : 1;
    $rows = isset($_POST['rows']) ? intval($_POST['rows']) : 10;
    $offset = ($page-1)*$rows;
    $result = array();

    include 'conn.php';
    
    $rs = mysql_query("select count(*) from cadastroevento");
    $row = mysql_fetch_row($rs);
    $result["total"] = $row[0];
    $rs = mysql_query("select * from cadastroevento limit $offset,$rows");
    
    $items = array();
    while($row = mysql_fetch_object($rs)){
        array_push($items, $row);
    }
    $result["rows"] = $items;

    echo json_encode($result);

?>

salvar_cadastroevento.php

<?php

$data = $_REQUEST['data'];
$evento = $_REQUEST['evento'];
$obs = $_REQUEST['obs'];
$horario = $_REQUEST['horario'];

include 'conn.php';

$sql = "insert into cadastroevento(data,evento,obs,horario) values('$data','$evento','$obs','$horario')";
$result = @mysql_query($sql);
if ($result){
    echo json_encode(array('success'=>true));
} else {
    echo json_encode(array('msg'=>'Erro ao inserir dados.'));
}
?>

atualizar_cadastroevento.php

<?php

$id = intval($_REQUEST['id']);
$data = $_REQUEST['data'];
$evento = $_REQUEST['evento'];
$obs = $_REQUEST['obs'];
$horario = $_REQUEST['horario'];

include 'conn.php';

$sql = "update cadastroevento set data='$data',evento='$evento',obs='$obs',horario='$horario' where id=$id";
$result = @mysql_query($sql);
if ($result){
    echo json_encode(array('success'=>true));
} else {
    echo json_encode(array('msg'=>'Erro ao atualizar dados.'));
}
?>

 

remover_cadastroevento.php

 

<?php

$id = intval($_REQUEST['id']);

include 'conn.php';

$sql = "delete from cadastroevento where id=$id";
$result = @mysql_query($sql);
if ($result){
    echo json_encode(array('success'=>true));
} else {
    echo json_encode(array('msg'=>'Erro ao remover dados.'));
}
?>

Eu não entendo muito de php e mysql, então bem provável que esteja fazendo algo errado rsrs

Então se alguém puder me ajudar eu agradeço desde já!

Muito obrigado e boa noite!

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vou dar algumas dicas para começar a aparecem os problemas, depois de encontrar os problemas, iremos para as suas respectivas soluções.

- Ative as exibições de erro, adicione o código abaixo no início do seu script:

ini_set('error_reporting', E_ALL);
ini_set('log_errors' , TRUE);
ini_set('html_errors' , TRUE);
ini_set('display_errors' , TRUE);

Não utilize o supressor de erros (@). 99,9% dos erros do PHP podem ser tratados, os erros que não podem ser, devem ser exibidos. Todos os erros devem ser exibidos de forma amigável ao usuário.

 

Não utilize as funções mysql_*, há anos não são recomendadas, estão obsoletas desde o PHP 5.5 e foram removidas no PHP 7. Utilize mysqli ou PDO. mysqli pode ser procedural ou OO, PDO somente OO.

 

Na questão do update, também é algo controverso, ele pode funcionar e, mesmo assim, não atualizar nada. Há uma explicação aqui:

http://forum.imasters.com.br/topic/473790-update-pdo-nao-funciona/?p=1881906

 

Depois disso, veja os erros que irão apresentar no seu script.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sobre Ajax

 

É sempre uma boa usar para deixar uma interface show, porém usar demais deixa brechas de segurança, tente passar tokens na requisição ajax para validar esse recebimento. Uma vez eu vi um cara que fez um formulário de e-mail simples se ferrar porque usou ajax, nego rodou um script JS em looping no console mesmo do chrome e lotou a caixa de e-mail do maluco.

 

Para o jovem que criou o tópico só tenho uma frase.

 

Aprenda PDO...

 

 

Segue baixo exemplos de conexão em PDO

  1. <?php
  2. //conexão com o bd, pode ser qlq bd seja mysql ou postgre
  3. try {
  4. $db = new PDO($host, $usuario, $senha,array( PDO::MYSQL_ATTR_INIT_COMMAND=>'SET NAMES utf8' ));
  5. $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
  6. } catch (PDOException $e) {
  7. if($e->getCode() == 1049){
  8. echo "Banco de dados errado.";
  9. }else{
  10. echo $e->getMessage();
  11. }
  12. }
  13. ?>

Agora a consulta e impressão dos dados

  1. <?php
  2. try {
  3. $sql = $db->prepare("SELECT * FROM sua_tabela");
  4. $sql->execute();
  5. } catch (PDOException $e) {
  6. echo $e->getMessage();
  7. }
  8. $registro = $sql->fetch(PDO::FETCH_OBJ);
  9. //IMPRIMINDO
  10. $registro->nome_do_campo;
  11. ?>

Tem um post no meu blog sobre isso

http://blog.squad.net.br/2015/11/25/diga-nao-ao-mysql_-e-sim-ao-pdo-php/

Qualquer dúvida podem perguntar

Até

Compartilhar este post


Link para o post
Compartilhar em outros sites

@junior.vieira
Eessa questão é mais relacionada com UX (User eXperience) do que com HTML/PHP.

Sendo os métodos de requisição de acordo com a W3C, nesse caso requisições de modificação no SGBD como POST e as consultas como GET, a forma de requisição síncrona ou assíncrona é irrelevante.

 

Agora, se um, ou outro, melhoram a relação de interação do usuário com o sistema/site, deve ser a alternativa utilizada no ponto de vista de UX.

Compartilhar este post


Link para o post
Compartilhar em outros sites

[...]Uma vez eu vi um cara que fez um formulário de e-mail simples se ferrar porque usou ajax, nego rodou um script JS em looping no console mesmo do chrome e lotou a caixa de e-mail do maluco.

 

Não gostaria de sair do tópico habitual, mas sobre seu exemplo, essa vulnerabilidade não é exclusiva do ajax e pode ser reproduzida, no próprio console do navegador, com um formulário convencional. Pessoas maliciosas sempre existirão, além de ser um teste padrão de vulnerabilidade.

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por ILR master
      Fala galera.
      Espero que todos estejam bem.
      Seguinte: Tenho um arquivo xml onde alguns campos estão com : (dois pontos), como o exemplo abaixo:
       
      <item>
      <title>
      d sa dsad sad sadasdas
      </title>
      <link>
      dsadas dsa sad asd as dsada
      </link>
      <pubDate>sadasdasdsa as</pubDate>
      <dc:creator>
      d sad sad sa ad as das
      </dc:creator>
      </item>
       
      Meu código:
       
      $link = "noticias.xml"; 
      $xml = simplexml_load_file($link); 
      foreach($xml -> channel as $ite) {     
           $titulo = $ite -> item->title;
           $urltitulo = $ite -> item->link;
           print $urltitulo = $ite -> item->dc:creator;
      } //fim do foreach
      ?>
       
      Esse campo dc:creator eu não consigo ler. Como faço?
       
      Agradeço quem puder me ajudar.
       
      Abs
       
       
    • Por First
      Olá a todos!
       
      Eu estou criando um sistema do zero mas estou encontnrando algumas dificuldades e não estou sabendo resolver, então vim recorrer ajuda de vocês.
      Aqui está todo o meu código: https://github.com/PauloJagata/aprendizado/
       
      Eu fiz um sistema de rotas mas só mostra o conteúdo da '/' não sei porque, quando eu tento acessar o register nada muda.
      E eu também quero que se não estiver liberado na rota mostra o erro de 404, mas quando eu tento acessar um link inválido, nada acontece.
      Alguém pode me ajudar com isso? E se tiver algumas sugestão para melhoria do código também estou aceitando.
       
       
      Desde já, obrigado.
    • Por landerbadi
      Olá pessoal, boa tarde
       
      Tenho uma tabela chamada "produtos" com os seguintes campos (id, produto) e outra tabela chamada "itens" com os seguintes campos (id, prod_01, prod_02, prod_03, prod_04).
       
      Na tabela produtos eu tenho cadastrado os seguintes produtos: laranja, maçã, uva, goiaba, arroz, feijão, macarrão, etc.
       
      Na tabela itens eu tenho cadastrado os itens da seguinte maneira:
       
      1, laranja, uva, arroz, feijão;
      2, maçã, macarrão, goiaba, uva;
      3, arroz, feijão, maçã, azeite
       
      Meu problema é o seguinte: 
      Eu escolho um produto da tabela "produtos", por exemplo "uva".  Preciso fazer uma consulta na tabela "itens" para ser listado todos os registros que contenham o produto "uva" e que todos os demais produtos estejam cadastrados na tabela "produtos".
       
      No exemplo acima seria listado apenas dois registros, pois o terceiro registro não contém o produto "uva". 
       
      Alguém pode me ajudar? Pois estou quebrando a cabeça a vários dias e não consigo achar uma solução.
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.