Arquivado
Este tópico foi arquivado e está fechado para novas respostas.
Listar quantidades contando os valores iguais com PHP + MYSQL
Por
Pedro Henrique Pazini, em PHP
Recommended Posts
-
Conteúdo Similar
-
Por Ross Risso
Tenho uma tabela pedidos com o campo forma de pagamento - formpag - ele é uma combox que o usuário escolhe se o pagamento vai ser em dinheiro ou ou depósito em banco, na hora de criar o pedido.
Nessa tabela também existe o campo total. O que necessito é buscar em uma consulta o total de todos os pedidos e mostrar separadamente na mesma consulta o total em dinheiro e em depósito.
$qr="SELECT dataped, formpag, total FROM tblpedidos GROUP BY MONTH(dataped)"; $sqli=mysqli_query($conn,$qr); while($ln = mysqli_fetch_assoc($sqli)){} Como faço para obter a soma de "total" quando? Exemplo:
JANEIRO quando formpag for dinheiro - total em dinheido - quando formpag for depósito - total em depósito.
JANEIRO total em dinheiro $ 100,00 - total em depósito $ 50,00. E assim por diante: FEVEREIRO, MARÇO e etc.
espero ter sido claro. Agradeço a atenção de todos.
-
Por celsomacarini
Olá, estou com uma dúvida, como que eu faço para mandar a data e a hora atualizada para o meu banco? O código esta assim
FUNÇÃO DE ADICIONAR
public function adicionarSolicitacao($usuario = '', $assunto ='', $data ='', $hora ='') { if($this->existeEmail($email) == false) { $sql = "INSERT INTO solicitacao (usuario, assunto, data, hora) VALUES (:usuario, :assunto, :NOW(), :NOW())"; $sql = $this->pdo->prepare($sql); $sql->bindValue(':usuario', $usuario); $sql->bindValue(':assunto', $assunto); $sql->bindValue(':data', $data); $sql->bindValue(':hora', $hora); $sql->execute(); return true; } else { return false; } }
ARQUIVO SUBMIT
<?php include '../classes/ramal.class.php'; $contato = new Contato(); if(!empty($_POST['usuario'])){ $usuario = $_POST['usuario']; $assunto = $_POST['assunto']; $data = $_POST['data']; $hora = $_POST['hora']; $contato->adicionarSolicitacao($usuario, $assunto, $data, $hora); header("Location: index_servico.php"); }else{ header("Location: index_servico.php"); } ?> ARQUIVO DO FORMULÁRIO <div class="container"> <form name="formCadastro" method="POST" action="nova_solicitacao_submit.php"> <div class="form-row"> <div class="form-group col-md-6"> <fieldset disabled> <label for="inputEmail4">Nome do Usuário</label> <input type="text" class="form-control" name="usuario" value="<?php echo $_SESSION['usuarioNome']; ?>"> </div> </fieldset> <div class="form-group col-md-6"> <label for="inputState">Assunto</label> <select id="inputState" class="form-control" name="assunto"> <option selected>Impressoras</option> <option>EP-Específico Pormade</option> <option>Fluig</option> <option>Internet</option> <option>Logix</option> <option>Maker</option> <option>Office</option> <option>Inline</option> <option>Senhas</option> <option>SIMP</option> <option>Telefonia</option> <option>Terceiros</option> <option>Windows</option> <option>Backup</option> <option>CEDEPH</option> <option>Computadores</option> <option>CRM</option> <option>E-Mail</option> <option>Empréstimo de Equipamentos</option> <option>Formatação</option> <option>Outros</option> </select> </div> </div> <div class="input-group"> <div class="input-group-prepend"> <span class="input-group-text">Qual é o problema?</span> </div> <textarea class="form-control"></textarea> </div><br> <input class="btn btn-primary" type="submit" value="Enviar"> <a href="nova_solicitacao_submit.php" class="btn btn-info" role="button">Voltar</a> </div> </div> </form> </header> </body>
-
Por adrianno
Fala pessoal beleza?
Tenho um problema para resolver, tenho um sistema em PHP com MySQL, mas preciso melhorar a paginação, tenho uma 2 lógicas de paginação em mente, uma delas é a que mais se encontra e videos, blogs, postagens mostrando na web,
onde damos um primeiro select CAMPO from TABELA, contamos o resultado e temos o total de registros para tratar a quantidade de páginas, limite, quantidade que vai aparecer por página etc, apos isso damos novamente o select CAMPOS from TABELA limite x, y de acordo com o que obtivemos na lógica da paginação com a primeira SQL. esta lógica até que funciona, mas, não consegui aplicar ela usando JOIN agrupando 2 ou mais tabelas, pois ai, eu teria que fazer esta contagem lá a primeira SQL, ou seja no fim, teria 2 SQL sendo executadas , uma mais rápida devido ao limit passado, mesmo assim ainda seriam 2 consultas.
Outras lógica seria dar um SELECT count(CAMPO) from TABELA seria uma SQL mais rápida, mas... se eu tiver um JOIN agrupando dados de uma tabela de categoria + produtos, eu teria que contar o resultado já agrupado das 2.
Já pensei em executar a consulta normal, retornar o array dos dados, e depois paginar este array com array_slice, e dividir ele de acordo com a quantidade de páginas e registros de cada.
Já fiz paginação com JS/AJAX mas mesmo assim, ainda preciso passar os dados totalizados, consigo uma boa visualização final na interface, mas por tras, sei que o processamento no MYSQL pesa
Lembrando que em cada caso citado, cada vez que alteramos entre as páginas, é novamente executado os calculos.
Alguem tem uma lógica bacana para paginação? de forma que nao fique pesado, lento em uma tabela muito grande?
-
Por zinleo1
Galera, estou sofrendo com um problema ao editar a senha do aluno, alguém saberia ajudar com o motivo do erro? Tô precisando disso pra entregar a avaliação no curso urgentemente.
Pag 1: Codigos -> areadoaluno.php
<html> <?php session_start(); ?> <head> <title>Editar registro de aluno</title> <meta charset='utf-8'/> </head> <body> <form name="areadoaluno.php" method="POST" action="alterar_senha.php"> <fieldset> <legend>bem vindo,<?php echo $_SESSION['logado']."!";?></legend> <?php session_destroy(); ?> </fieldset> <input type="submit" name="editarsenha" value="Editar Senha"> </form> </body> </html> Pag 2: Codigos -> Alterar_senha.php
<html> <head> <title>Editando a senha do aluno</title> <meta charset='utf-8'/> </head> <body> <?php include('conexao.php'); $cod = $_GET['id']; echo $cod; echo "<b>Editando sua senha! ".$cod."</b></br></br>"; $query ="SELECT * FROM aluno WHERE cod_aluno = $cod"; $result = mysqli_query($con,$query); if ($result->num_rows > 0) { echo "<form method='post' action='alterar_senha_conf.php'>"; while($linha = mysqli_fetch_array($result)) { echo "<label>Login:</label><input required type='text' name='login_aluno' readonly='readonly' value='".$linha["login_aluno"]."'></input><br>"; echo "<label>Senha:</label><input type='text' name='senha_aluno' value='".$linha["senha_aluno"]."'></input><br>"; echo "<label>Código do aluno:</label><input type='text' name='cod_aluno' readonly='readonly' value='".$linha["cod_aluno"]."'></input><br>"; echo "<input type='submit' value='salvar'></input>"; } echo "</form>"; } else { echo "<b class='erro'>Sem resultados para mostrar</b><br><br>"; } ?> </body> </html> Pag 3: Codigos -> Alterar_senha_conf.php
<html> <head> <title></title> <meta charset='utf-8'/> </head> <body> <?php include('conexao.php'); $login = $_POST['login_aluno']; $senha = $_POST['senha_aluno']; $cod = $_POST['cod_aluno']; echo "Login: ".$login."</br>Senha: ".$senha."</br></br>"; $adc = "UPDATE aluno SET login_aluno='$login', senha_aluno='$senha' WHERE cod_aluno='$cod'"; $ins = mysqli_query($con,$adc); if($ins) { echo "<b style='color:green'>Usuário editado com sucesso!</b> </br><a href='areadoaluno.php'>Voltar</a>"; } else { echo "Erro </br><a href='areadoaluno.php'>Voltar</a>"; } ?> </body> </html>
-
Por Rodrigo2000
Bom dia,
Tenho estado a criar uma base dados onde vou inserir um conjunto de elementos de uma textarea.
Quando o texto é curto, facilmente passa para a base de dados, no caso de ser longo não passa nada.
O problema é claramente as variáveis, na base de dados já alterei o tamanho dos campos, mas resolveu o
problema.
Alguem tem uma ideia de como posso resolver o problema.
Envio o código fonte da página de entrada de dados.
Tenho igualmente um problema que ainda nem percebi o que se passa.
O texto quando carregado na textarea e input aparece com espaços, como é que os posso
eliminar.
Sem mais
Rodrigo Lourenço
<!DOCTYPE HTML>
<html>
<head>
<title>Adiciona Artigo</title>
<meta name="description" content="website description" />
<meta name="keywords" content="website keywords, website keywords" />
<meta http-equiv="content-type" content="text/html; charset=windows-1252" />
<link rel="stylesheet" type="text/css" href="style/style.css" title="style" />
</head>
<body>
<?php
//começa por verificar a sessão, caso não esteja activa envia para a página inicial.
require("livraria.php");
session_start();
$validacao = array();
$login = 0;
if (isset($_SESSION['login']) && isset($_SESSION["sessionmaxtime"])){
$login = $_SESSION['login'];
}
if ($login == 0)
echo "<meta http-equiv=\"refresh\" content=\"0; url=index.php\">";
else{
if ($_SERVER["REQUEST_METHOD"] == "POST"){
$validacao = validarAdd();
}
}
?>
<div id="main">
<div id="header">
<div id="logo">
<div id="logo_text">
<!-- class="logo_colour", allows you to change the colour of the text -->
<h1><a href="index.php">Livro<span class="logo_colour">Aberto</span></a></h1>
<h2>Um lugar onde se lê e fala de livros.</h2>
</div>
</div>
<div id="menubar">
<ul id="menu">
<!-- put class="selected" in the li tag for the selected page - to highlight which page you're on -->
<li><a href="index.php">Home</a></li>
<li class="selected"><a href="add.php">Criar</a></li>
<li><a href="apagar.php">Apagar</a></li>
<li><a href="alterar.php">Alterar</a></li>
<li><a href="gerir.php">Utilizadores</a></li>
<li><a href="sair.php">Sair</a></li>
<?php
echo "<li><a href=\"#\"> ".$_SESSION["utilizador"]."</a></li>";
?>
</ul>
</div>
</div>
<div id="site_content">
<div class="sidebar">
<!-- insert your sidebar items here -->
<h3>Livros em Revista</h3>
<p>Use o formulário para inserir um novo artigo.</p>
<p>
Os campos abaixo mencionados são preenchidos automáticamente.
<ul>
<li> Autor </li>
<li> Data </li>
</ul>
</p>
<p></p>
<h3>Sites Uteis</h3>
<ul>
<li><a href="#">link 1</a></li>
<li><a href="#">link 2</a></li>
<li><a href="#">link 3</a></li>
<li><a href="#">link 4</a></li>
</ul>
</div>
<div id="content">
<!-- insert the page content here -->
<h1>Novo Registo</h1>
<form action="#" method="post">
<div class="form_settings">
<p><span>Titulo
<?php
if ($_POST && in_array("titulo",$validacao))
echo "(Obrigatório)";
?></span><input class="contact" type="text" name="titulo" value="
<?php
if($_POST && (count($validacao) > 0))
if(!empty($_POST["titulo"]))
echo $_POST["titulo"];
?>
" /></p>
<p><span>Autor</span><input class="contact" type="text" name="autor" readonly="true" value="
<?php
echo $_SESSION["utilizador"];
?>" /></p>
<p><span>Artigo
<?php
if ($_POST && in_array("artigo",$validacao))
echo "(Obrigatório)";
?>
</span><textarea class="contact textarea" rows="20" cols="50" name="artigo">
<?php
//echo $_POST["artigo"];
if($_POST && (count($validacao) > 0))
if(!in_array("artigo",$validacao))
echo $_POST["artigo"];
?>
</textarea></textarea></p>
<p><span>Resumo
<?php
if ($_POST && in_array("resumo",$validacao))
echo "(Obrigatório)";
?>
</span><textarea class="contact textarea" rows="4" cols="50" name="resumo">
<?php
if($_POST && (count($validacao) > 0))
if(!in_array("resumo",$validacao) )
echo $_POST["resumo"];
?>
</textarea></textarea></p>
<p><span>Data</span><input class="contact" type="date" name="data" readonly="true" value="<?php
date_default_timezone_set('Europe/Lisbon');
echo date('Y-m-d');
?>" /></p>
<p style="padding-top: 15px"><span> </span><input class="submit" type="submit" name="contact_submitted" value="Adicionar" /></p>
</div>
</form>
</div>
</div>
<div id="footer">
Copyright © textured_blue | <a href="http://validator.w3.org/check?uri=referer">HTML5</a> | <a href="http://jigsaw.w3.org/css-validator/check/referer">CSS</a> | <a href="http://www.html5webtemplates.co.uk">Free CSS Templates</a>
</div>
</div>
<?php
//Uso da base de dados.
$servername = "localhost";
$username = "root";
$password = ""; //campo a ser mudado consoante a password da base de dados.
$dbname = "bdbooks";
// Create connection
$con = new mysqli($servername, $username, $password, $dbname);
//Verifica se houve erro ao aceder à base de dados
if ($con->connect_errno!=0){
echo "Ocorreu um erro de ligação à base de dados.".$con->connect_errno;
exit;
}
//Só quando não houverem elementos na $validação é que se pode avançar.
if(($_POST) && (count($validacao) == 0)){
//Inserção dos dados na base de dados.
//Usando antes o metodo query que usa a sintaxe mysql directamente.
//Tratamento das variáveis para evitar problemas de injecção de SQL.
$titulo = htmlentities(htmlspecialchars($_POST["titulo"]),ENT_QUOTES);
$artigo = htmlentities(htmlspecialchars($_POST["artigo"]),ENT_QUOTES);
$resumo = htmlentities(htmlspecialchars($_POST["resumo"]),ENT_QUOTES);
//Os campos pré preenchidos
$iduser = $_SESSION["userid"];
$data = $_POST["data"];
//Segundo construção da string para introdução dos dados SQL.
$query = "INSERT INTO articles (artigo, data, id_users, resumo, titulo) VALUES(";
//Introdução dos dados na string.
$query = $query. "\"".$artigo."\",";
$query = $query. "\"".$data."\",";
$query = $query. "\"".$iduser."\",";
$query = $query. "\"".$resumo."\",";
$query = $query. "\"".$titulo."\");";
//realização da query
$con->query($query);
//Depois de utilizar os dados temos que os apagar.
unset($_POST);
} //Fim do if
?>
</body>
</html>
-