-
Conteúdo Similar
-
Por leo_santo1
Venho por meio desse post procurar ajuda com meu código!
Estou fazendo um código usando `DataTable` , sou iniciante na programação, depois de umas pesquisas e até mesmo algumas dicas conseguir construir uma DataTable com banco de dados.
Continuando minhas pesquisas para aprimorar mais ainda o código, percebi que a `DataTable` possuir varias funções interessantes, umas delas em especifico chamou bastante minha atenção e até me ajudaria no código que no caso é o uso de Linhas filhas ocultas, que quando fazemos o click em cima de um botão aparece as informações extras da linha ( no caso os dados a mais do banco ) e ao apertar ela novamente ele oculta as informações.
Gostaria de ajuda para criar essa função na minha Tabela, já realizei pesquisas no próprio site da `DataTable` , aqui, porem não entendo bem o jeito que eles explicam.
segue abaixo meu código da table e da `DataTable` que conecta com o Banco.
Tabela
<table id="employee-grid" cellpadding="0" cellspacing="0" border="0" class="display" width="100%"> <thead> <tr> <th>Nome</th> <th>CPF</th> <th>Data de Nascimento</th> <th></th> <th>Ação</th> <th></th> </tr> </thead> <thead> <tr> <td><input type="text" data-column="0" class="search-input-text" style="width: 150px;"></td> <th><input type="text" data-column="1" class="search-input-text" style="width: 150px;"></td> <th><input type="text" id="data" data-column="2" class="search-input-text" style="width: 150px;"></th> <th></th> <td> </td> <td></td> </tr> </thead> </table> Script DataTable
$(document).ready(function() { var dataTable = $('#employee-grid').DataTable( { "processing": true, "serverSide": true, "bJQueryUI": true, "oLanguage": { "sProcessing": "Processando...", "sLengthMenu": "Mostrar _MENU_ registros", "sZeroRecords": "Não foram encontrados resultados", "sInfo": "Mostrando de _START_ até _END_ de _TOTAL_ registros", "sInfoEmpty": "Mostrando de 0 até 0 de 0 registros", "sInfoFiltered": "", "sInfoPostFix": "", "sSearch": "Buscar:", "sUrl": "", "oPaginate": { "sFirst": "Primeiro", "sPrevious": "Anterior", "sNext": "Seguinte", "sLast": "Último" } }, "ajax":{ url :"../Tabelas/Tabela_consulta_cliente.php", // json datasource type: "post", // method , by default get error: function(){ // error handling $(".employee-grid-error").html(""); $("#employee-grid").append('<tbody class="employee-grid-error"><tr><th colspan="3">No data found in the server</th></tr></tbody>'); $("#employee-grid_processing").css("display","none"); } } } ); $("#employee-grid_filter").css("display","none"); // hiding global search box $('.search-input-text').on( 'keyup click', function () { // for text boxes var i =$(this).attr('data-column'); // getting column index var v =$(this).val(); // getting search input value dataTable.columns(i).search(v).draw(); } ); $('.search-input-select').on( 'change', function () { // for select box var i =$(this).attr('data-column'); var v =$(this).val(); dataTable.columns(i).search(v).draw(); } ); } ); Conexão DataTable com o Banco de dados
<?php $servername = "localhost"; $username = "root"; $password = ""; $dbname = "loc_equipamentos"; $conn = mysqli_connect($servername, $username, $password, $dbname) or die("Connection failed: " . mysqli_connect_error()); $requestData= $_REQUEST; $columns = array( 0=>'nome_usuario', 1=> 'cpf_usuario', 2=> 'data_nascimento', 3=> 'id_usuario', 4=> 'id_usuario', 5=> 'id_usuario' ); $sql = "SELECT nome_usuario, cpf_usuario, data_nascimento, id_usuario "; $sql.=" FROM usuario"; $query=mysqli_query($conn, $sql) or die("employee-grid-data.php: get employees"); $totalData = mysqli_num_rows($query); $totalFiltered = $totalData; . $sql = "SELECT nome_usuario, cpf_usuario, data_nascimento, id_usuario "; $sql.=" FROM usuario WHERE tipo_perfil = 'CLIENTE' AND ativo_usuario = 'TRUE'"; if( !empty($requestData['columns'][0]['search']['value']) ){ $sql.=" AND nome_usuario LIKE '".$requestData['columns'][0]['search']['value']."%' "; } if( !empty($requestData['columns'][1]['search']['value']) ){ $sql.=" AND cpf_usuario LIKE '".$requestData['columns'][1]['search']['value']."%' "; } if( !empty($requestData['columns'][2]['search']['value']) ){ //age $sql.=" AND data_nascimento LIKE '".$requestData['columns'][2]['search']['value']."%' "; } $query=mysqli_query($conn, $sql) or die("employee-grid-data.php: get employees"); $totalFiltered = mysqli_num_rows($query); $sql.=" ORDER BY ". $columns[$requestData['order'][0]['column']]." ".$requestData['order'][0]['dir']." LIMIT ".$requestData['start']." ,".$requestData['length']." "; $query=mysqli_query($conn, $sql) or die("employee-grid-data.php: get employees"); $data = array(); while( $row=mysqli_fetch_array($query) ) { $nestedData=array(); $informacao ="<div class='botaodiv'> <a href = ?informacao=".$row['id_usuario']." >+ Informações</a> </div>"; $editar ="<div class='botaodiv'> <a href = ?editar=".$row['id_usuario']." >Editar</a> </div>"; $deletar ="<div class='botaodiv'> <a href = ../Eventos/evento.php?DesativaCadastro=".$row['id_usuario']." >Excluir</a> </div>"; $nestedData[] = $row["nome_usuario"]; $nestedData[] = $row["cpf_usuario"]; $nestedData[] = $row["data_nascimento"]; $nestedData[] = $informacao; $nestedData[] = $editar; $nestedData[] = $deletar; $data[] = $nestedData; } $json_data = array( "draw" => intval( $requestData['draw'] ), "recordsTotal" => intval( $totalData ), "recordsFiltered" => intval( $totalFiltered ), "data" => $data ); echo json_encode($json_data); ?> Fora o caso de criar Detalhes para Linhas, Caso alguém tenha alguma sugestão de como melhorar meu código ( por exemplo uma Conexão ao Banco mais simples, um Js melhor etc.. ) ou alguma critica para eu evoluir, irei agradecer bastante!
-
Por Perroni91
Olá pessoal.
Estou com uma dúvida, mas como sou leiga no mysql, não estou conseguindo resolver.
Tenho duas tabelas no meu banco de dados:
Posts
id
titulo_principal
categoria_id
imagem
Categorias
id
categoria
---
Já cadastrei as categorias 'HTML' e 'CSS', e cada um contêm 1 post de cada.
O que eu gostaria era que: A cada vez que criar um post em alguma dessas categorias, mostrar a quantidade separadamente.
Ficaria assim:
HTML 3
CSS 1
Alguém poderia me ajudar, por favor?
Estou quebrando a cabeça tentando fazer isso e não consegui.
Obrigada!
-
Por danart5
Bom dia! Estou fazendo um sistema de chamados, e na pagina onde o cliente envia para mim os dados do seu chamado, gostaria de trazer um aviso onde informasse o ID do chamado do mesmo.
No banco de dados tem o campo id_ocorrencia, é auto incremente e assim que o usuário cadastra a ocorrência é cadastrado um id_ocorrencia.
Segue o código :
<div class="cadastro-form"> <?php $nome_solicitante = $_POST['nome_solicitante']; $ccusto = $_POST['ccusto']; $equip = $_POST['equip']; $tp_problema = $_POST['tipo_problema']; $obs_informada = $_POST['obs_informada']; $data_cadastro = date('Y-m-d'); $hora_cadastro = date('H:i:s'); //Conexão com o MySQL $conn = mysql_connect('localhost','root','123456'); if (!$conn) { die('Could not connect: ' . mysql_error($conn)); } mysql_select_db("osafti", $conn); mysql_set_charset("utf8", $conn); $sqli = mysql_query("INSERT INTO cadOcor (nome_solicitante, ccusto, equip, data_cadastro, hora_cadastro, tipo_problema, obs_informada, status) VALUES ('$nome_solicitante', '$ccusto', '$equip', '$data_cadastro', '$hora_cadastro', '$tp_problema', '$obs_informada', '0')", $conn) or die (mysql_error()); if ($sqli) { ?> --------- NESSA REGIÃO É ONDE GOSTARIA DE TRAZER O ID DO CADASTRO FEITO A CIMA, É POSSÍVEL ? ---- <div class="alert alert-success" role="alert"> Ocorrência cadastrada com sucesso! </div> <?php } else { ?> <div class="alert alert-danger" role="alert"> Erro ao cadastrar ocorrência. Tente novamente. Caso o erro persista entre em contato com o CPD. </div> <?php } mysql_close($conn); ?> </div> -
Por edyr0x
Alguém poderia me ajudar a gerar uma relátório em php?
preciso gerar uma tabela com total de bolsas vendidas por mês. com total de cada modelo de bolsa fabricada por mês e total geral
até consegui, porém gostaria de gerar com os meses nas colunas e só consegui gerar com os meses nas linhas...
tentei da seguinte forma:
$link = $conexao;
$consultar = "SELECT SUM(`resumo_bolsas_80`) AS m80,
SUM(`resumo_bolsa_12`) AS m12,
SUM(`resumo_bolsa_20`) AS m20,
SUM(`resumo_bolsa_40`) AS m40,
SUM(`resumo_bolsa_90`) AS m90,
SUM(`resumo_bolsa_38`) AS m38,
MONTHNAME(resumo_data) AS `mes`
FROM resocor
GROUP BY YEAR(`resumo_data`),
MONTH(`resumo_data`)";
$resulta = mysqli_query($link, $consultar);
################## codigo php #######################
<table>
<tr>
<th class="tg-sg5v">MES</th>
<th class="tg-sg5v">80</th>
<th class="tg-sg5v">12</th>
<th class="tg-sg5v">20</th>
<th class="tg-sg5v">40</th>
<th class="tg-sg5v">90</th>
<th class="tg-sg5v">38</th>
</tr>
<?php
foreach ($resulta as $row) {
?>
<tr>
<td class="tg-0w8i"><?php echo $row['mes']; ?></td>
<td class="tg-0w8i"><?php echo $row['m80']; ?></td>
<td class="tg-0w8i"><?php echo $row['m12']; ?></td>
<td class="tg-0w8i"><?php echo $row['m20']; ?></td>
<td class="tg-0w8i"><?php echo $row['m40']; ?></td>
<td class="tg-0w8i"><?php echo $row['m90']; ?></td>
<td class="tg-0w8i"><?php echo $row['m38']; ?></td>
</tr>
<?php } ?>
</table
SEGUE TABELA ANEXADA DE COMO GOSTARIA QUE APARECESSE NO RELATORIO
-
Por gersonab
há tempos utilizo para cadastrar data no BD a instrução :
implode('-',array_reverse(explode('/',$data)))
com isso no input posso colocar 09/02/2019 e no banco de dados grava 2019-02-09 , até ai sem problemas, porém ao atualizar um sistema para pdo, estou com problema no insert dinâmico, onde posso fazer 1 ou mais inserts, da forma abaixo cadastro quantos eu quiser :
$sql = "INSERT INTO cantos ( id_t, id_c, data, ca, cant, po, des) VALUES (:id_t, :id_c, :data, :ca, :cant, :po, :des)"; $stmt = $pdo->prepare($sql); foreach($_POST['idp'] as $indice => $valor) { $stmt->bindParam(':id_t', $_POST['id_tor'][$indice], PDO::PARAM_STR); $stmt->bindParam(':id_c', $_POST['idp'][$indice], PDO::PARAM_STR); $stmt->bindParam(':data', $_POST['data'][$indice], PDO::PARAM_STR); $stmt->bindParam(':ca', $_POST["ca"][$indice], PDO::PARAM_STR); $stmt->bindParam(':cant', $_POST['cant'][$indice], PDO::PARAM_STR); $stmt->bindParam(':po', $_POST['po'][$indice], PDO::PARAM_STR); $stmt->bindParam(':des', $_POST['des'][$indice], PDO::PARAM_STR); if ($stmt->execute()){ echo "Cadastrado com sucesso."; }
no entento a data vai no formato do input 09/02/2019.
caso utilize :
$stmt->bindParam(':data', implode('-',array_reverse(explode('/',$_POST['data'][$indice]))), PDO::PARAM_STR);
tenho o erro Strict standards: "Only variables should be passed by reference in "que significa "Apenas as variáveis podem ser passadas por referência"
qual a melhor forma de se fazer neste caso ?
-