Jump to content
Marcosvn

Banco de dados para sites de escritores

Recommended Posts

eu estou reformulando um site para escritores, o qual possui média de 3 milhoes de acessos por mês e pouco mais de 4 milhões de textos publicados.

Atualmente é utilizado o mysql como banco de dados. Mas estou pensando se uma mudança do Banco de dados pode ser útil.

 

O que vocês acham ? Seria melhor trocar o banco de dados ? se sim, por qual ?

Abraço

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By rafaelpereirap
      Olá, venho pedir ajuda. Estou fazendo um painel admin e no módulo de notícias criei um formulário pra inserir a nova notícia com um campo para inserir a imagem. Criei vários cases para me mostrar se foi feito ou não o registro e agora está dando uma das mensagens do case que não registrou a notícia e não salva a imagem na página indicada. Se puderem me ajudar com esse problema fico agradecido. Seguem os códigos: 
      <?php class connectMysql { private $host = 'localhost'; private $user = 'root'; private $password = 'Be15se90@';//'admin'; private $banco = 'siteNovoCoopama'; private $mysqli = ''; private $insertId = ''; public function __construct(){ } private function mysqlConnect() { $this->mysqli = new mysqli($this->host, $this->user, $this->password, $this->banco); if (mysqli_connect_error()) { die('FATAL ERROR: Can not connect to SQL Server.'); exit(); } } public function executeQuery($query) { $this->mysqlConnect(); // $query = mysqli_real_escape_string($this->mysqli, $query); $this->result = $this->mysqli->query($query); //$this->insertId = mysqli_insert_id(); $this->mysqlClose(); return $this->result; } public function mysqlClose() { $this->mysqli->close(); } /* * vai remover caso tente um sql injection * */ public function limparString($sql) { $sql = addslashes($sql); return $sql; } } noticiaNovo.php
      <?php include ($_SERVER['DOCUMENT_ROOT'] . '/_constantes.php'); //include (RAIZ_SITE . '/protecao.php'); require_once $_SERVER['DOCUMENT_ROOT'] . '/connectMysql.php'; //include_once ($paths['Controller'] . 'NoticiasController.php'); //include 'Controller/NoticiasController.php'; /* * uma dica... esse eh o form pra cadastrar noticias, correto? * isso mesmo, na verdade eu fiz a chamada de inserção e as outras funções no DAO mas não to conseguindo chamar ele, está gerando erro * ai ia tentar dessa maneira para ver se inseria . * mesmo que faca desse jeito, nunca coloque o insert na mesma pagina do form pq você tem que submeter a pagina pra ela mesma com o form carregado * e se a pessoa ficar dando f5, vai ficar cadastrando a mesma noticia qtas vezes ela atualizar a pagina * se quiser fazer dessa forma, sem o DAO, cria uma nova pagina para submeter o form e depois, redireciona para a pagina da noticia * entendue? * criar tipo um validar.php né? * mas queria aprender dessa maneira, orientada, uma puxando a outra * bora fazer rsss * bora lá kkkkk * as chamadas no DAO ta certo? */ ?> <!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <title>Coopama | Admin</title> <link rel="shortcut icon" href="/admin/dist/img/favicon.png"> <!-- Google Font: Source Sans Pro --> <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,400i,700&display=fallback"> <!-- Font Awesome --> <link rel="stylesheet" href="<?=HOST_ADMIN?>/plugins/fontawesome-free/css/all.min.css"> <!-- Theme style --> <link rel="stylesheet" href="<?=HOST_ADMIN?>/dist/css/adminlte.min.css"> <!-- summernote --> <link rel="stylesheet" href="<?=HOST_ADMIN?>/plugins/summernote/summernote-bs4.min.css"> <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous"> </head> <body class="hold-transition sidebar-mini"> <div class="wrapper"> <!-- Navbar --> <nav class="main-header navbar navbar-expand navbar-white navbar-light"> <!-- Left navbar links --> <ul class="navbar-nav"> <li class="nav-item"> <a class="nav-link" data-widget="pushmenu" href="#" role="button"><i class="fas fa-bars"></i></a> </li> <li class="nav-item d-none d-sm-inline-block"> <a href="home.php" class="nav-link">Home</a> </li> <!--<li class="float float-sm-right"> <a href="#" class="nav-link float-right">Contato</a> </li>--> </ul> </nav> </div> <!-- Main Sidebar Container --> <aside class="main-sidebar sidebar-dark-primary elevation-4"> <!-- Brand Logo --> <a href="home.php" class="brand-link"> <img src="dist/img/logo-quadrada-transparente.png" alt="Coopama" class="brand-image img-circle elevation-3" style="opacity: .8"> <span class="brand-text font-weight-light">Coopama</span> </a> <!-- Sidebar --> <div class="sidebar"> <!-- Sidebar user (optional) --> <div class="user-panel mt-3 pb-3 mb-3 d-flex"> <div class="image"> <img src="dist/img/avatar5.png" class="img-circle elevation-2" alt="User Image"> </div> <div class="info"> <a href="#" class="d-block"><?php echo $_SESSION['nome'];?></a> </div> </div> <!-- Sidebar Menu --> <nav class="mt-2"> <ul class="nav nav-pills nav-sidebar flex-column" data-widget="treeview" role="menu" data-accordion="false"> <li class="nav-item"> <a href="#" class="nav-link"> <i class="fas fa-newspaper nav-icon"></i> <p> Noticias <i class="fas fa-angle-left right"></i> <span class="right badge badge-danger">News</span> </p> </a> <ul class="nav nav-treeview"> <li class="nav-item"> <a href="#" class="nav-link"> <i class="far fa-newspaper fa-xs nav-icon"></i> <p> Noticias Coopama <i class="fas fa-angle-left right"></i> </p> </a> <ul class="nav nav-treeview"> <li class="nav-item"> <a href="noticiaNovo.php" class="nav-link"> <i class="fas fa-plus nav-icon"></i> <p>Inserir uma nova</p> </a> </li> </ul> <ul class="nav nav-treeview"> <li class="nav-item"> <a href="listaNoticia.php" class="nav-link"> <i class="fas fa-list nav-icon"></i> <p>Listar Todas</p> </a> </li> </ul> </li> </ul> <ul class="nav nav-treeview"> <li class="nav-item"> <a href="#" class="nav-link"> <i class="fas fa-journal-whills fa-xs nav-icon"></i> <p> Coopama Informa <i class="fas fa-angle-left right"></i> </p> </a> <ul class="nav nav-treeview"> <li class="nav-item"> <a href="#" class="nav-link"> <i class="fas fa-plus nav-icon"></i> <p>Inserir uma nova</p> </a> </li> </ul> <ul class="nav nav-treeview"> <li class="nav-item"> <a href="#" class="nav-link"> <i class="fas fa-list nav-icon"></i> <p>Listar Todas</p> </a> </li> </ul> </li> </ul> <ul class="nav nav-treeview"> <li class="nav-item"> <a href="#" class="nav-link"> <i class="fas fa-ethernet fa-xs nav-icon"></i> <p> Coopama Informa - Web <i class="fas fa-angle-left right"></i> </p> </a> <ul class="nav nav-treeview"> <li class="nav-item"> <a href="#" class="nav-link"> <i class="fas fa-plus nav-icon"></i> <p>Inserir uma nova</p> </a> </li> </ul> <ul class="nav nav-treeview"> <li class="nav-item"> <a href="#" class="nav-link"> <i class="fas fa-list nav-icon"></i> <p>Listar Todas</p> </a> </li> </ul> </li> </ul> <li class="nav-item"> <a href="#" class="nav-link"> <i class="nav-icon far fa-calendar-alt"></i> <p> Eventos <i class="fas fa-angle-left right"></i> <span class="badge badge-info right">!</span> </p> </a> <ul class="nav nav-treeview"> <li class="nav-item"> <a href="#" class="nav-link"> <i class="far fa-circle nav-icon"></i> <p>Feiras Coopama</p> </a> </li> <li class="nav-item"> <a href="#" class="nav-link"> <i class="far fa-circle nav-icon"></i> <p>AGO</p> </a> </li> <li class="nav-item"> <a href="#" class="nav-link"> <i class="far fa-circle nav-icon"></i> <p>Concurso de Café</p> </a> </li> <!--<li class="nav-item"> <a href="#" class="nav-link"> <i class="far fa-circle nav-icon"></i> <p>Calendário</p> </a> </li>--> </ul> </li> <li class="nav-item"> <a href="#" class="nav-link"> <i class="nav-icon fas fa-columns"></i> <p> Banners </p> </a> <li class="nav-item"> <a href="#" class="nav-link"> <i class="nav-icon fas fa-tree"></i> <p> Cotação Geral <i class="fas fa-angle-left right"></i> </p> </a> <ul class="nav nav-treeview"> <li class="nav-item"> <a href="#" class="nav-link"> <i class="fas fa-tractor nav-icon"></i> <p>Milho</p> </a> </li> <li class="nav-item"> <a href="#" class="nav-link"> <i class="fas fa-coffee nav-icon"></i> <p>Café</p> </a> </li> </ul> </li> <li class="nav-item"> <a href="#" class="nav-link"> <i class="nav-icon fas fa-columns"></i> <p> Trabalhe Conosco </p> </a> </a> </li> <li class="nav-item"> <a href="#" class="nav-link"> <i class="nav-icon fas fa-calendar-alt"></i> <p> Calendario <span class="badge badge-info right"></span> </p> </a> </li> </ul> </nav> </div> </div> <!-- /.sidebar --> </aside> <!-- Content Wrapper. Contains page content --> <div class="content-wrapper"> <!-- Content Header (Page header) --> <section class="content-header"> <div class="container-fluid"> <div class="row mb-2"> <div class="col-sm-6"> <h1>Noticias</h1> </div> <div class="col-sm-6"> <ol class="breadcrumb float-sm-right"> <li class="breadcrumb-item"><a href="home.php">Home</a></li> <!--<li class="breadcrumb-item active"></li>--> </ol> </div> </div> </div><!-- /.container-fluid --> </section> <!-- Main content --> <section class="content"> <div class="container-fluid"> <div class="row"> <div class="col-md-12"> <div class="card"> <div class="card-header"> <h3 class="card-title" style="width: 100%">Crie uma nova noticia</h3> </div> <!--<div id="corpoNoticia"class="row">--> <!--<h2 class="center" align="center" style="cursor: pointer"><u>Crie uma nova noticia</u></h2>--> <br style="clear: both"> <form name="novaNoticia" id="novaNoticia" method="post" enctype="multipart/form-data" style="text-align: center"> <input type="hidden" name="acao" id="acao" value="novaNoticia"> <div class="form-row"> <div class="form-group col-lg-6"> <label for="titulo">*Titulo</label> <input type="text" class="form-control" id="titulo" name="titulo" placeholder="Titulo da Noticia" required> </div> <div class="form-group col-md-6"> <label for="previa">Prévia</label> <input type="text" class="form-control" id="previa" name="previa" placeholder="Prévia da Noticia"> </div> </div> <div class="form-group"> <label for="texto">*Texto</label> <textarea class="form-control" id="texto" name="texto" placeholder="Texto da Noticia" required></textarea> </div> <div class="form-row"> <div class="file-field input-field col s12 l8"> <label for="imagem">Imagem Destaque</label> <input type="file" class="form-control" required name="imagemDestaque" id="imagemDestaque"> </div> <div class="form-group col-md-2"> <label for="data">*Data da Postagem</label> <input type="date" class="form-control" name="data" id="data" required> </div> <div class="form-group col-md-2"> <label for="status" required>*Status</label> <select id="status" name="status" class="form-control"> <option selected>Escolher...</option> <option value="A">Ativa</option> <option value="R">Rascunho</option> <option value="D">Descartada</option> </select> </div> <div class="form-group col-md-1"> <label for="fixa">*Topo?</label> <select name="fixa" required id="fixa" class="form-control"> <option value="S">Sim</option> <option value="N">Não</option> </select> </div> <div class="form-group col-md-4" style="text-align: center; margin-top: 30px"> <button type="submit" id="btnSubmit" class="btn btn-group-lg" style="color: white; background-color: #0f9d58">Enviar</button> </div> </div> <!--<hr>--> <!--<button type="submit" class="btn btn-primary" style="color: white; background-color: #0f9d58; " >Enviar</button>--> </form> <br> </div> </div> </div> </div> </section> <style> form { padding-right: 10px; padding-left: 10px; } .form-row{ font-weight: bold; } card-header{ grid-template-rows: 120px 1fr 60px; } label{ padding-left: 5px; padding-right: 5px; } button{ color: #fff; background-color: #0f9d58; padding-bottom: 50px; } form > label{ font-size: 1.0rem; padding-right: 55px; } </style> <!-- Control Sidebar --> <aside class="control-sidebar control-sidebar-dark"> <!-- Control sidebar content goes here --> </aside> <!-- /.control-sidebar --> </div> <!-- ./wrapper --> <!-- jQuery --> <script src="/admin/js/jquery-3.6.0.min.js"></script> <!-- Bootstrap 4 --> <script src="https://cdn.jsdelivr.net/npm/@popperjs/core@2.9.1/dist/umd/popper.min.js" integrity="sha384-SR1sx49pcuLnqZUnnPwx6FCym0wLsk5JZuNx2bPPENzswTNFaQU1RDvt3wT4gWFG" crossorigin="anonymous"></script> <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.0.0-beta3/dist/js/bootstrap.min.js" integrity="sha384-j0CNLUeiqtyaRmlzUHCPZ+Gy5fQu0dQ6eZ/xAww941Ai1SxSY+0EQqNXNE6DZiVc" crossorigin="anonymous"></script> <script src="//cdn.jsdelivr.net/npm/sweetalert2@10"></script> <script> $(function (){ $(".preloader").fadeOut(); /*$.post('/processa/acaoNoticias.php',{ acao: 'validarCadastro', }, function (data){ if(data['tipo'] == 'sucess'){ $('#btnSubimit').hide(); Swal.fire({ title: data['titulo'], html: data['mensagem'], type: data['tipo'], confirmButtonText: "Fechar" }); }else { $('#btnSubimit').show(); } },'json');*/ $('#novaNoticia').submit (function (e){ e.preventDefault(); if ($('#titulo, #previa, #texto, #imagem, #data, #status, #fixa').val() != ''){ //$('#btnSubmit').hide(); $.ajax({ type: "POST", url: '/admin/processa/acaoNoticias.php', dataType: 'json', data: new FormData($('#novaNoticia').get(0)), contentType:false, processData: false, cache: false, success: function (data){ if (data['tipo'] == 'success'){ document.getElementById('novaNoticia'). reset(); } $('#btnSubmit').show(); Swal.fire({ title: data['titulo'], html: data['mensagem'], icon: data['tipo'], confirmButtonText: "Fechar" }); }, error: function (data){ $('#btnSubmit').show(); $('#modal-warning').addClass('hide').fadeOut(5); Swal.fire({ title: data['titulo'], html: data['mensagem'], type: 'error', confirmButtonText: "Fechar" }); } }); }else { Swal.fire({ title: 'Atenção', type:'Info', html: 'Os campos com * são obrigatorios, por favor volte e verifique se você preencheu todos.', confirmButtonText: "Fechar" }) } }) }) <?php if(!empty($_SESSION['MSG_RETORNO'])) { $msgRetorno = $_SESSION['MSG_RETORNO']; echo 'Swal.fire({ title: "' . $msgRetorno['titulo'] . '", html: "' . $msgRetorno['mensagem'] . '", type: "' . $msgRetorno['tipo'] . '", confirmButtonText: "Fechar" });'; /* * Apos mostrar a msg de sucesso ou erro, a sessao é eliminada e nao sera mais chamada. */ unset($_SESSION['MSG_RETORNO']); } ?> </script> </body> </html> classNoticias.php
      <?php require_once $_SERVER['DOCUMENT_ROOT'] . '/admin/connectMysql.php'; include_once $_SERVER['DOCUMENT_ROOT'] . '/admin/Beans/Noticias.php'; class classNoticias extends connectMysql { public $titulo = ''; public $texto = ''; public $previa = ''; public $imagem = ''; public $data = ''; public $status = ''; public $fixa = ''; public $codNoticia = ''; /** * classNoticias constructor. */ public function __construct() { } /** * @return array */ public function editaNoticia() { $query = $this->executeQuery("UPDATE noticias SET titulo = '" . addslashes(utf8_decode($this->titulo)) . "', texto = '" . addslashes(utf8_decode($this->texto)) . "', previa = '" . addslashes(utf8_decode($this->previa)) . "', imagem = '" . $this->imagem . "', NOW(), status = '" . $this->status . "', fixaTopo = '" . $this->fixa . "', WHERE codNoticia = '" . (int)$this->codNoticia . "' LIMIT 1"); if ($query == true) { return ['tipo' => 'sucess', 'titulo' => 'Sucesso!', 'mensagem' => 'Noticia modificada!']; } else { return ['tipo' => 'error', 'titulo' => 'Erro!', 'mensagem' => 'Erro ao fazer a edição, tente novamente']; } } public function listaNoticias() { $query = $this->executeQuery("SELECT *, DATE_FORMAT(dataPostagem, '%d/%m/%Y %H:%i') dtHrPostagem FROM noticias ORDER BY dataPostagem DESC"); $return = []; while ($sql = $query->fetch_array()) { $return[] = [ 'codNoticia' => utf8_encode($sql['codNoticia']), 'titulo' => utf8_encode($sql['titulo']), 'texto' => utf8_encode($sql['texto']), 'previa' => utf8_encode($sql['previa']), 'imagemDestaque' => utf8_encode($sql['imagemDestaque']), 'dataPostagem' => utf8_encode($sql['dtHrPostagem']), 'status' => utf8_encode($sql['status']), 'fixaTopo' => utf8_encode($sql['fixaTopo']) ]; } return $return; } public function listaNoticiasByCod() { $query = $this->executeQuery("SELECT *, DATE_FORMAT(dataPostagem, '%d/%m/%Y %H:%i') dtHrPostagem FROM noticias WHERE codNoticia = " . (int)$this->codNoticia . "LIMIT 1"); $return = []; while ($sql = $query->fetch_array()) { $return[] = [ 'codNoticia' => utf8_encode($sql['codNoticia']), 'titulo' => utf8_encode($sql['titulo']), 'texto' => utf8_encode($sql['texto']), 'previa' => utf8_encode($sql['previa']), 'imagemDestaque' => utf8_encode($sql['imagemDestaque']), 'dataPostagem' => utf8_encode($sql['dtHrPostagem']), 'status' => utf8_encode($sql['status']), 'fixaTopo' => utf8_encode($sql['fixaTopo']) ]; } return $return; } public function cadastrarNovaNoticia() { if ($this->fixa == 'S') { $this->executeQuery("UPDATE noticias SET fixa = 'X'"); } $sql = "INSERT INTO noticias (titulo, texto, previa, imagemDestaque, dataPostagem, status, fixaTopo) VALUES ('" . addslashes(utf8_decode($this->titulo)) . "', '" . addslashes(utf8_decode($this->texto)) . "', '" . addslashes(utf8_decode($this->previa)) . "', '" . addslashes(utf8_decode($this->imagem)) . "', NOW(), '" . addslashes(utf8_decode($this->status)) . "', '" . addslashes(utf8_decode($this->fixa)) . "')"; return $this->executeQuery($sql); } } acaoNoticias.php
      <?php $titulo = 'Atenção!'; $mensagem = 'Houve um erro ao acessar esta página, por favor, tente novamente.'; $tipo = 'warning'; $html = ''; if(!empty($_POST['acao'])){ require_once '../../_constantes.php'; require_once RAIZ_SITE_ADMIN . '/Classes/classNoticias.php'; $classNoticias = new classNoticias(); /* * diminuir a quantidade de arquivos dessa forma * utiliza um arquivo desse pra cada modulo (noticas textos, ..) * o que vai determinar o que sera feito, eh o campo acao * veja que ja chamou a classe acima e ja instanciou ela, entao nao precisa chamar mais * o que estiver dentro do switch case, vai ser executado de acordo com o valor da acao */ $conn = new mysqli(HOST, USER, SENHA, BD); switch ($_POST['acao']) { /* * se for uma nova noticia entra neste case */ case 'novaNoticia': { if(!empty($_POST['titulo']) && !empty($_POST['previa']) && !empty($_POST['texto'])) { /* * atribui os valores as variaveis. falta o upload da imagem e os outros campos */ $classNoticias->titulo = $_POST['titulo']; $classNoticias->previa = $_POST['previa']; $classNoticias->texto = $_POST['texto']; $classNoticias->fixa = $_POST['fixa']; $classNoticias->status = $_POST['status']; /* * Verifica se fez o upload da imagem */ $mensagemExiste = 'N'; if (!empty($_FILES['imagemDestaque'])) { /*$extensao = pathinfo(substr($_FILES['imagemDestaque']['name'], PATHINFO_EXTENSION, -4));*/ $extensao = pathinfo($_FILES['imagemDestaque']['name'], PATHINFO_EXTENSION); $mensagemExiste = 'S'; if (array_search(strtolower($extensao), ['jpg', 'png', 'jpeg']) == true) { $nomeImagem = md5(date('dmYHis')) . '.' . $extensao; if (move_uploaded_file(RAIZ_SITE . '/var/www/html/novoSiteCoopama/images/noticias' . $nomeImagem, $_FILES['imagemDestaque']['tmp_name']) == true) { $mensagemExiste = 'V'; $classNoticias->imagem = $nomeImagem; } else { $mensagemExiste = 'X'; } } } /* * salva a noticia */ $retorno = $classNoticias->cadastrarNovaNoticia(); // retorno true ou false do insert if ($retorno == true) { switch ($mensagemExiste) { case 'N': $txt = 'Imagem não selecionada.'; break; case 'S': $txt = 'Noticia não gravada, confira novamente'; break; case 'X': $txt = 'Notícia gravada com sucesso mas houve um erro ao salvar a imagem.'; break; case 'V': $txt = 'Notícia gravada com sucesso.<br>Imagem armazenada com sucesso.'; break; default: $txt = 'Notícia gravada com sucesso mas sem imagem selecionada.'; break; } $tipo = 'success'; $titulo = 'Sucesso!'; $mensagem = $txt; } else { $tipo = 'error'; $titulo = 'Erro!'; $mensagem = 'Erro ao gravar a noticia, por favor, tente novamente.'; } } else { $mensagem = 'Por favor, preencha todos os campos marcados com * para gravar sua notícia.'; } break; } case 'listarNoticias': { $sql = "SELECT codNoticia, titulo, previa, texto, dataPostagem, status, fixaTopo FROM noticias"; $conn = mysqliConnect(); $result = $conn->query($sql); $registros = []; if ($result->num_rows > 0){ while($row = $result->fetch_assoc()){ $registros[] = $row; } }elseif ($conn->error){ echo "Erro: " . $conn->error; } break; } case 'editarNoticias': { break; } case 'localizarNoticia': { break; } default: echo "Erro: " . $conn->connect_error; } } else { // caso tenha cmapo vazio, vai retornar para pagina de cadastro de noticias $tipo = 'warning'; $titulo = 'Atenção!'; $mensagem = 'Por favor, preencha todos os campos e tente novamente.'; } echo json_encode([ 'titulo' => $titulo, 'tipo' => $tipo, 'mensagem' => $mensagem, 'html' => $html, ]);
    • By Carlos Antoliv
      Olá, senhores.
       
      Sei que existem diversos tópicos por aí sobre esse assunto, contudo, não consegui solucionar o problema, mesmo depois de 1 dia tentando fazer algo até simples.
       
      Seguinte, estou pegando o id de um produto e tentando jogar em outra tabela, pelo checkbox.
      ex:
       
      id    produto
      23   lapis
      43  caneta
       
      pelo checkbox, a pessoa escolhe o produto e adicona em uma lista, que é outro banco. Se pessoa selecionar mais de 1 item da lista, o laço só envia para o banco apenas 1 item de qualquer forma.
       
      Vou postar o Código:
       
      Código do INSERT:
       
          $check1 = (isset($_POST["check"]) && $_POST["check"] != null) ? $_POST["check"] : "";     foreach($check1 as $check){                         $stmt = $conexao->prepare("INSERT INTO tb_itemProdKit (fk_tb_kit, fk_usuarios, fk_tb_produtos) VALUES (?, ?, ?)");                  $stmt->bindParam(1, $nome_prod);         $stmt->bindParam(2, $idSessao);         $stmt->bindParam(3, $check);                if ($stmt->execute()) {             if ($stmt->rowCount() > 0) {                 echo "Dados cadastrados com sucesso!";                 $id_prod = null;                 $nome_prod = null;                 $idSessao = null;                 $check = null;                             header("Location: item-produto-kit.php");exit;                              } else {                 echo "Erro ao tentar efetivar cadastro";             }         } else {                throw new PDOException("Erro: Não foi possível executar a declaração sql");         }     } } } catch (PDOException $erro) {         echo "Erro: " . $erro->getMessage();     }    
       
      Agora o código do checkbox:
       
             if ($stmt->execute()) {                 while ($rs = $stmt->fetch(PDO::FETCH_OBJ)) {                       echo "<tr>";                     echo "<td><input type='checkbox' name='check[]' id='check' value='".$rs->id_prod."'</td><td class='lista_usuario'>".$rs->nome_produto."</td><td class='lista_usuario'>".$rs->desc_prod."</td><td class='lista_usuario'>".$rs->peso_liq_prod                                ."</td>"                                ;                     echo "</tr>";                 }             }else {                 echo "Erro: Não foi possível recuperar os dados do banco de dados";             }     } catch (PDOException $erro) {         echo "Erro: ".$erro->getMessage();     }     echo "</form>"    
          ?>  
       
       
      Está cadastrando apenas 1 item e não múltiplos itens.
       
      abço!!
       
       
       
       
       
    • By Quencyjones79
      Olá a todos, sou novo na área de multimídia. Estou a seguir a um momento um ebook sobre a criação de uma base de dados e também a criação de tabelas. Mas quando vinculei as tabelas do banco de dados, no phpmyadmin me deu alguns erros. Fiz a correspondência da chave primária (artist_id da tabela Artist) com a artist_id da tabela Prints (chave estrangeira) e assim por diante. O problema é que ele não mostra minhas relações das tabelas e me dá uma mensagem de erro. Então, alguns de vocês poderiam me ajudar, por favor, a consertar esta situação. Eu serei grato. Cumprimentos.
       
      Ps .: Abaixo envio o arquivo Sql.
       
      Atentamente,

      José Moreira
      -- phpMyAdmin SQL Dump -- version 5.0.2 -- https://www.phpmyadmin.net/ -- -- Host: 127.0.0.1 -- Generation Time: Jan 07, 2021 at 08:49 PM -- Server version: 10.4.14-MariaDB -- PHP Version: 7.2.33 SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO"; START TRANSACTION; SET time_zone = "+00:00"; /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; /*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; /*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; /*!40101 SET NAMES utf8mb4 */; -- -- Database: `ecommerce` -- -- -------------------------------------------------------- -- -- Table structure for table `artists` -- CREATE TABLE `artists` ( `artist_id` int(10) UNSIGNED NOT NULL, `first_name` varchar(20) DEFAULT NULL, `middle_name` varchar(20) DEFAULT NULL, `last_name` varchar(40) NOT NULL ) ENGINE=MyISAM DEFAULT CHARSET=utf8mb4; -- -------------------------------------------------------- -- -- Table structure for table `customers` -- CREATE TABLE `customers` ( `customer_id` int(10) UNSIGNED NOT NULL, `email` varchar(60) NOT NULL, `pass` char(40) NOT NULL ) ENGINE=MyISAM DEFAULT CHARSET=utf8mb4; -- -------------------------------------------------------- -- -- Table structure for table `orders` -- CREATE TABLE `orders` ( `order_id` int(10) UNSIGNED NOT NULL, `customer_id` int(10) UNSIGNED NOT NULL, `total` decimal(10,2) UNSIGNED NOT NULL, `order_date` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp() ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; -- -------------------------------------------------------- -- -- Table structure for table `order_contents` -- CREATE TABLE `order_contents` ( `oc_id` int(10) UNSIGNED NOT NULL, `order_id` int(10) UNSIGNED NOT NULL, `print_id` int(10) UNSIGNED NOT NULL, `quantity` tinyint(3) UNSIGNED NOT NULL DEFAULT 1, `price` decimal(6,2) UNSIGNED NOT NULL, `ship_date` datetime DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; -- -------------------------------------------------------- -- -- Table structure for table `prints` -- CREATE TABLE `prints` ( `print_id` int(10) UNSIGNED NOT NULL, `artist_id` int(10) UNSIGNED NOT NULL, `print_name` varchar(60) NOT NULL, `price` decimal(6,2) UNSIGNED NOT NULL, `size` varchar(60) DEFAULT NULL, `description` varchar(255) DEFAULT NULL, `image_name` varchar(60) NOT NULL ) ENGINE=MyISAM DEFAULT CHARSET=utf8mb4; -- -- Indexes for dumped tables -- -- -- Indexes for table `artists` -- ALTER TABLE `artists` ADD PRIMARY KEY (`artist_id`), ADD UNIQUE KEY `full_name` (`last_name`,`first_name`,`middle_name`); -- -- Indexes for table `customers` -- ALTER TABLE `customers` ADD PRIMARY KEY (`customer_id`), ADD UNIQUE KEY `email` (`email`), ADD KEY `login` (`email`,`pass`); -- -- Indexes for table `orders` -- ALTER TABLE `orders` ADD PRIMARY KEY (`order_id`), ADD KEY `customer_id` (`customer_id`), ADD KEY `order_date` (`order_date`); -- -- Indexes for table `order_contents` -- ALTER TABLE `order_contents` ADD PRIMARY KEY (`oc_id`), ADD KEY `order_id` (`order_id`), ADD KEY `print_id` (`print_id`), ADD KEY `ship_date` (`ship_date`); -- -- Indexes for table `prints` -- ALTER TABLE `prints` ADD PRIMARY KEY (`print_id`), ADD KEY `artist_id` (`artist_id`), ADD KEY `print_name` (`print_name`), ADD KEY `price` (`price`); -- -- AUTO_INCREMENT for dumped tables -- -- -- AUTO_INCREMENT for table `artists` -- ALTER TABLE `artists` MODIFY `artist_id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT; -- -- AUTO_INCREMENT for table `customers` -- ALTER TABLE `customers` MODIFY `customer_id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT; -- -- AUTO_INCREMENT for table `orders` -- ALTER TABLE `orders` MODIFY `order_id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT; -- -- AUTO_INCREMENT for table `order_contents` -- ALTER TABLE `order_contents` MODIFY `oc_id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT; -- -- AUTO_INCREMENT for table `prints` -- ALTER TABLE `prints` MODIFY `print_id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT; COMMIT; /*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; /*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; /*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
       

    • By RodrigoWD3
      Ola boa tarde, não sei se aqui e o tópico correto , tenho uma tabela de vendas , id , nome, id_vendedor (essa id identifica o vendedor)
      ID    |     produto      |        | id_vendedor |
      1     | computador x |          |  2 |
      2     | computador x |          |  2 |
      3     | computador x |          |  2 |
      4     | Mouse |                      |  1 |
       
      Como faço para ordenar da seguinte forma.   Quero contar quantas vezes o produto foi repetido, e ordenar pelo numero de repetições na tabela  SQL se alguém souber obrigado
       
    • By Claudio Neto
      Boa noite
       
      Fiz meu primeiro projeto .Net Core, e está tudo funcionando que é uma belezinha.
       
      Porém, ao publicar a aplicação no IIS, não estou conseguindo conectar no banco de dados. As páginas que não possuem conexão funcionam.
       
      Quando publiquei, ele gerou três arquivos json de configuração: appsettings.json, appsettings.Development.json e appsettings.production.json, e dentro de cada um dele, tem a conexão que eu criei e ele inseriu mais uma:
       
      "ConnectionStrings": { "HoleriteContext": "Server=DESKTOP-DGCC9GF\\SQLEXPRESS;Database=HOLERITES;Trusted_Connection=True;MultipleActiveResultSets=true;user id=sa;pwd=123;", "prjHoleriteContextConnection": "Server=(localdb)\\mssqllocaldb;Database=prjHolerite;Trusted_Connection=True;MultipleActiveResultSets=true" } Eu tentei copiar a string de conexão de HoleritesContext para prjHoleriteContextConnection, mas não deu em nada.
       
      Meu banco já está configurado para aceitar conexões TCP. E o erro está dando tanto na minha máquina local quanto no servidor do cliente.
       
      Não consegui encontrar algum tutorial que fale sobre essa parte, então alguém pode me auxiliar onde estou errando?
       
      Obrigado.
       
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.