Post não respondido

PHP

SELECT

PHPMailer

30/08/2019

Bom dia galera!

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
email
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

Francisco Nando

Curtidas 1

Melhor post

Alex William

Alex William

30/08/2019

Olá, amigo.

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
GOSTEI 2

Mais Respostas

Francisco Nando

Francisco Nando

30/08/2019

Olá, amigo.

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.
GOSTEI 0
Alex William

Alex William

30/08/2019

Olá, amigo.

Poste somente a query que voce utiliza, com a alteração que eu lhe informei. Gostaria de ver sua consulta como esta ocorrendo.
GOSTEI 0
Francisco Nando

Francisco Nando

30/08/2019

Olá, amigo.

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.
GOSTEI 0
POSTAR