Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Bom dia a todos, mais uma vez recorrendo ao fórum ...
Pessoal eu tenho um site onde existe uma tela de login para acesso, no banco de dados existe as tabelas:
documentos
estrutura:
id
documento
descricao
data
-------------------------------------------------------------
usuarios
estrutura:
id
nome
login
senha
ativo
Quando o usuário logar ele vai direto para home, no menu documentos, eu queria que
só fosse exibido os documentos de acordo com o número de id do usuário...
hoje eu utilizo uma página onde cada link corresponde a um id em especifico, ai a restrição é
feita em cada página ... Isso é muito ruim pois sempre que aparece um novo id, eu tenho que
criar uma nova página
Todas as páginas estão de acordo com esse script:
<?php require_once('Connections\config.php');
//Script de pesquisa de documentos
if (isset($_POST['ok'])){
$q = mysql_escape_string($_POST['b']);
mysql_select_db($database_config, $config);"SELECT * FROM
documentos
WHERE
(
documento LIKE '%$q%'
OR descricao LIKE '%$q%'
OR data LIKE '%$q%'
)
AND id = 1 ";
//Ao pesquisar os documentos, só retorna os documentos que for = ao id 1 ...
$busca = mysql_query($query_busca, $config) or die(mysql_error());
$row_busca = mysql_fetch_assoc($busca);
$totalRows_busca = mysql_num_rows($busca);
}else{
//exibir os docuementos que for = ao id 1
mysql_select_db($database_config, $config);
$query_busca = "SELECT * FROM documentos where id = 1";
$busca = mysql_query($query_busca, $config) or die(mysql_error());
$row_busca = mysql_fetch_assoc($busca);
$totalRows_busca = mysql_num_rows($busca);
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "url=[http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd]http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">[/url]
<html xmlns="[url=[http://www.w3.org/1999/xhtml](http://www.w3.org/1999/xhtml)][http://www.w3.org/1999/xhtml](http://www.w3.org/1999/xhtml)">[/url]
<head>
<link rel="stylesheet" href="tabela.css">
<link rel="stylesheet" href="botao.css">
<meta http-equiv="Content-Type" content="latin1" />
<title>Documentos</title>
</head>
<body onload="window.defaultStatus='Frase';"> <div align="center">
<font face="verdana" size="3,5" color="black">
<br />
<form id="form" name="form" method="post" action="">
<label for="b"></label>
<b> Digite o número do documento para a busca ser mais precisa, Exemplo:<font color="red"> "0022"</font></b>
<input type="text" name="b" id="b" style=" height: 26px;"/>
<input type="submit" name="ok" id="ok" value="Buscar" class="ab-boton " />
</form><br />
Caso a sua pesquisa não retorne o resultado esperado, Clique<a href="documentos1.php">"aqui"<a/> para listar os documentos novamente.
<table width="478" border="0" cellspacing="0" cellpadding="0">
<thead>
<tr>
<td width="150"> <font style='font-weight:bold;' color="white">Documento</font></b></td>
<td width="846"><font style='font-weight:bold;' color="white">Descrição</font></td>
<td> <font style='font-weight:bold;' color="white">Data</font></td>
</tr>
</thead>
<?php do {?>
<tr>
<td><?php echo '<a href="documentos /'.$row_busca['documento'].' ">'.$row_busca['documento'].'</a>'; ?></td>
<td>
<?php echo $row_busca['descricao'];?></td>
<td width="188"><?php echo $row_busca['data'];?></td>
</tr>
<?php } while ($row_busca = mysql_fetch_assoc($busca));?>
</table>
</div>
</font>
</body>
</html>
<?php
mysql_free_result($busca);
?>Então ALex, con forme mencionado já existe o ID nas duas tabelas ...
Se a estrutura postada acima estiver completa, está faltando sim, veja:
documentos
-
id_usuario
usuarios
Grifei de vermelho o campo a ser adicionado.
Ok, por exemplo como eu defino o meu código página documentos?
existem mais usuários e eu quero que alguns vejam e outros não ...
Eu estou definindo isto de acordo com o código acima, para cada id, eu uso
uma página, como eu utilizo isto para todos ids?
Se for documento exclusivo para o usuário, basta montar a query:
SELECT * FROM documentos INNER JOIN usuarios ON documentos.id_usuario = usuarios.id
Se for vários usuários para cada documento, ai na tabela documentos não vai precisar do id_usuario, você vai precisar de uma terceira tabela, 'documentos_usuarios'. Nela você grava o 'id_documento' e 'id_usuario'.
>
Se for documento exclusivo para o usuário, basta montar a query:
SELECT * FROM documentos INNER JOIN usuarios ON documentos.id_usuario = usuarios.id
Se for vários usuários para cada documento, ai na tabela documentos não vai precisar do id_usuario, você vai precisar de uma terceira tabela, 'documentos_usuarios'. Nela você grava o 'id_documento' e 'id_usuario'.
Eu utilizo o mesmo script mencionado ?
Se for só um usuário por documento, sim.
seria para varios usuarios ...
Então segue a instrução do meu post, o número #6
Allex,
O post 6 está com este título:
Duvidas com .htaccess e arquivos de envioem PHP
Mais alguém ??
Você não entendeu. Disse #6 porque é aqui dentro, http://forum.imasters.com.br/topic/527326-exibicao-de-documentos-de-acordo-com-num-de-id/?p=2100731. Veja no lado direito na barra cinza no meu nome. Em cima da foto. Tem #1 na sua postagem, #2 na minha resposta e assim por diante.
Enfim, esta é a parte que interessa:
>
Se for vários usuários para cada documento, ai na tabela documentos não vai precisar do id_usuario, você vai precisar de uma terceira tabela, 'documentos_usuarios'. Nela você grava o 'id_documento' e 'id_usuario'.
documentos
usuarios
documentos_usuarios
Depois é só fazer o INNER JOIN.
Se deseja vincular os documentos aos usuários, precisa adicionar um campo 'id_usuario' na tabela documentos. Só assim poderá distinguir qual documento corresponde a cada usuário.