Post não respondido
30/08/2019
0
Tenho um programinha e estou com uma duvida e não to sabendo resolver.
tenho duas tabelas ADMS_USUARIOS e ADMS_FORMULARIOS
ADMS_USUARIOS
id
nome
aps
usuario
[...]
ADMS_FORMULARIO
id
nome
mes_ano
O usuário vai preencher um formulários e vai ficar gravado seu nome na tabela adms_formulario, ja na tabela adms_usuario ele vai trazer apenas os registros solicitados a partir de um determinado nome solicitado.
EX:. eu preencho um formulario com o nome joão. Depois ele vai ver se na tabela adms_ususario tem o nome joão e vai me retornar quantas vezes o nome joão foi cadastrado, e vai me retornar apenas os nomes "joão".
$resul_form = "select adms_usuarios.id, adms_usuarios.nome, adms_formulario.id, adms_formulario.nome, adms_formulario.mes_ano from adms_usuarios inner join adms_formulario on adms_usuarios.nome = adms_formulario.nome ";
eu coloquei esse codigo mais ta me retornando todos os nomes cadastrados.
<?php if (!isset($seg)) { exit; } include_once 'app/adms/include/head.php'; ?> <body> <?php include_once 'app/adms/include/header.php'; ?> <div class="d-flex"> <?php include_once 'app/adms/include/menu.php'; ?> <div class="content p-1"> <div class="list-group-item"> <div class="d-flex"> <div class="mr-auto p-2"> <h2 class="display-4 titulo">Relatório Individual</h2> </div> <div class="p-2"> <?php $btn_cad = carregar_btn('visualizar/home', $conn); if ($btn_cad) {; echo "<a href='" . pg . "/visualizar/home' class='btn btn-outline-success btn-sm'><i class='fas fa-align-justify'></i> Inicio </a>"; } ?> <?php $btn_cad = carregar_btn('listar/list_formulario', $conn); if ($btn_cad) { echo "<a href='" . pg . "/listar/list_formulario' class='btn btn-outline-warning btn-sm'><i class='fas fa-reply'></i> Voltar</a>"; } ?> </div> </div> <?php if (isset($_SESSION['msg'])) { echo $_SESSION['msg']; unset($_SESSION['msg']); } //Receber o número da página $pagina_atual = filter_input(INPUT_GET, 'pagina', FILTER_SANITIZE_NUMBER_INT); $pagina = (!empty($pagina_atual)) ? $pagina_atual :1; //Setar a quantidade de itens por pagina $qnt_result_pg = 60; //Calcular o inicio visualização $inicio = ($qnt_result_pg * $pagina) - $qnt_result_pg; if(($_SESSION['adms_niveis_acesso_id'] == 1) or ($_SESSION['adms_niveis_acesso_id'] == 2) or ($_SESSION['adms_niveis_acesso_id'] == 3)) { $resul_form = "select adms_usuarios.nome, adms_formulario.id, adms_formulario.nome, adms_formulario.mes_ano from adms_usuarios Left Join adms_formulario on adms_usuarios.nome = adms_formulario.nome where adms_usuarios.nome ' . "; //$resul_form = "select adms_formulario.id, adms_formulario.nome, adms_formulario.mes_ano //from adms_formulario"; //$resul_form = "SELECT fo.id, fo.nome, fo.mes_ano //FROM adms_formulario fo //ORDER BY mes_ano ASC LIMIT $inicio, $qnt_result_pg"; } $resultado_form = mysqli_query($conn, $resul_form); if (($resultado_form) AND ( $resultado_form->num_rows != 0)) { ?> <div class="table-responsive"> <table class="table table-striped table-hover table-bordered"> <thead> <tr> <th>Nome</th> <th class="d-none d-sm-table-cell"><center>Competência</center></th> <th class="text-center">Ações</th> </tr> </thead>
uma parte do codigo ai.
Francisco Nando
Post mais votado
30/08/2019
Está faltando a clausula WHERE da sua consulta.
select adms_usuarios.id, adms_usuarios.nome, adms_formulario.id, adms_formulario.nome, adms_formulario.mes_ano from adms_usuarios inner join adms_formulario on adms_usuarios.nome = adms_formulario.nome WHERE adms_usuarios.nome LIKE "%JOÃO%"
este é só um exemplo, no lugar do nome você coloca o input do seu formulario que vem pelo POST ou GET.
Espero ter ajudado. :D
Alex William
Mais Posts
02/09/2019
Francisco Nando
Está faltando a clausula WHERE da sua consulta.
select adms_usuarios.id, adms_usuarios.nome, adms_formulario.id, adms_formulario.nome, adms_formulario.mes_ano from adms_usuarios inner join adms_formulario on adms_usuarios.nome = adms_formulario.nome WHERE adms_usuarios.nome LIKE "%JOÃO%"
este é só um exemplo, no lugar do nome você coloca o input do seu formulario que vem pelo POST ou GET.
Espero ter ajudado. :D
eu tento fazer assim mais não da certo, tipo se eu tenho dois usuários cadastrados Ex: João e Maria, e clico no nome joão aparece so os formulários do João, ate ai tudo ótimo, o problema é que quando clico no nome da Maria aparece também só os formulários do João sendo que tem que os fomrularios correspondentes ao nome que cliquei.
05/09/2019
Alex William
Poste somente a query que voce utiliza, com a alteração que eu lhe informei. Gostaria de ver sua consulta como esta ocorrendo.
06/09/2019
Francisco Nando
Poste somente a query que voce utiliza, com a alteração que eu lhe informei. Gostaria de ver sua consulta como esta ocorrendo.
Olá!
<?php
if (!isset($seg)) {
exit;
}
include_once 'app/adms/include/head.php';
?>
<body>
<?php
include_once 'app/adms/include/header.php';
?>
<div class="d-flex">
<?php
include_once 'app/adms/include/menu.php';
?>
<div class="content p-1">
<div class="list-group-item">
<div class="d-flex">
<div class="mr-auto p-2">
<h2 class="display-4 titulo">Relatório Listado</h2>
</div>
<div class="p-2">
<?php
$btn_cad = carregar_btn('listar/list_relatorio', $conn);
if ($btn_cad) {;
echo "<a href='" . pg . "/listar/list_relatorio' class='btn btn-outline-warning btn-sm'><i class='fas fa-reply'></i> Voltar </a>";
}
?>
</div>
</div>
<?php
if (isset($_SESSION['msg'])) {
echo $_SESSION['msg'];
unset($_SESSION['msg']);
}
//Receber o número da página
$pagina_atual = filter_input(INPUT_GET, 'pagina', FILTER_SANITIZE_NUMBER_INT);
$pagina = (!empty($pagina_atual)) ? $pagina_atual : 1;
//Setar a quantidade de itens por pagina
$qnt_result_pg = 40;
//Calcular o inicio visualização
$inicio = ($qnt_result_pg * $pagina) - $qnt_result_pg;
if(($_SESSION['adms_niveis_acesso_id'] == 1) or ($_SESSION['adms_niveis_acesso_id'] == 2) or ($_SESSION['adms_niveis_acesso_id'] == 3)) {
$resul_fo = "SELECT fo.id, fo.nome, fo.matricula,
fo.aps
FROM adms_usuarios fo
ORDER BY id ASC LIMIT $inicio, $qnt_result_pg";
}
$resultado_fo = mysqli_query($conn, $resul_fo);
if (($resultado_fo) AND ( $resultado_fo->num_rows != 0)) {
?>
<div class="table-responsive">
<table class="table table-striped table-hover table-bordered">
<thead>
<tr>
<th>ID</th>
<th>Nome</th>
<th class="d-none d-sm-table-cell">Matricula</th>
<th class="d-none d-sm-table-cell">APS</th>
<th class="text-center">Ações</th>
</tr>
</thead>
<tbody>
<?php
while ($row_fo = mysqli_fetch_assoc($resultado_fo)) {
?>
<tr>
<th><?php echo $row_fo['id']; ?></th>
<td><?php echo $row_fo['nome']; ?></td>
<td class="d-none d-sm-table-cell"><?php echo $row_fo['matricula']; ?></td>
<td class="d-none d-sm-table-cell"><?php echo $row_fo['aps']; ?></td>
<td class="text-center">
<span class="d-none d-md-block">
<?php
$btn_vis = carregar_btn('listar/list_formulario_ind', $conn);
if ($btn_vis) {
echo "<a href='". pg . "/listar/list_formulario_ind?id=" . $row_fo['id'] ."' class='btn btn-outline-primary btn-sm'><i class='fas fa-address-card'></i> Relatórios Mensais</a> ";
}
?>
</span>
</td>
</tr>
<?php
}
?>
</tbody>
</table>
<?php
$result_pg = "SELECT COUNT(id) AS num_result FROM adms_usuarios";
$resultado_pg = mysqli_query($conn, $result_pg);
$row_pg = mysqli_fetch_assoc($resultado_pg);
//echo $row_pg['num_result'];
//Quantidade de pagina
$quantidade_pg = ceil($row_pg['num_result'] / $qnt_result_pg);
//Limitar os link antes depois
$max_links = 2;
echo "<nav aria-label='paginacao-blog'>";
echo "<ul class='pagination pagination-sm justify-content-center'>";
echo "<li class='page-item'>";
echo "<a class='page-link' href='" . pg . "/listar/list_formulario?pagina=1' tabindex='-1'>Primeira</a>";
echo "</li>";
for ($pag_ant = $pagina - $max_links; $pag_ant <= $pagina - 1; $pag_ant++) {
if ($pag_ant >= 1) {
echo "<li class='page-item'><a class='page-link' href='" . pg . "/listar/list_formulario?pagina=$pag_ant'>$pag_ant</a></li>";
}
}
echo "<li class='page-item active'>";
echo "<a class='page-link' href='#'>$pagina</a>";
echo "</li>";
for ($pag_dep = $pagina + 1; $pag_dep <= $pagina + $max_links; $pag_dep++) {
if ($pag_dep <= $quantidade_pg) {
echo "<li class='page-item'><a class='page-link' href='" . pg . "/listar/list_formulario?pagina=$pag_dep'>$pag_dep</a></li>";
}
}
echo "<li class='page-item'>";
echo "<a class='page-link' href='" . pg . "/listar/list_formulario?pagina=$quantidade_pg'>Última</a>";
echo "</li>";
echo "</ul>";
echo "</nav>";
?>
</div>
<?php
}
?>
</div>
</div>
<?php
include_once 'app/adms/include/rodape_lib.php';
?>
</div>
</body>
quando clico em "Relatorios Mensais" vai para a outra pagina que foi a que mandei uma parte na minha primeira pergunta. Veja se isso lhe ajuda a entender.
Clique aqui para fazer login e interagir na Comunidade :)