Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

rodrigojacinto

exibir consulta sql filtrando dados de um array

Recommended Posts

Boa noite

uma ajudinha por favor, tenho uma tabela simples com

 

id | titulo | id_usuarios_utilizados

1 | titulo 1 | 4,3

2 | titulo 2 | 4,1

3 | titulo 3 | 2

4 | titulo 4 | 2

 

preciso que quando fizesse a consuta sql/php digamos se eu estiver logado com o id_usuario 3 ao efetuar essa consulta retornasse somente os registro 2, 3, 4 pois o registro de id 1 ja foi utilizado por esse id_usuario 3.

 

essa tabela id_usuarios_utilizados é alimentada com o id do usuario que esta logado cada vez que o usuario clica no titulo e separa por virgula.

 

tentei o seguinte

<?php
include ('conexao.php');
$MySQLi = new MySQLi($MySQL['servidor'], $MySQL['usuario'], $MySQL['senha'], $MySQL['banco']);
if (mysqli_connect_errno())
    trigger_error(mysqli_connect_error(), E_USER_ERROR);
$sql = "select * from tb_noticias";
$resultado = $MySQLi->query($sql) OR trigger_error($MySQLi->error, E_USER_ERROR);

while ($noticia  = $resultado->fetch_object()) {

//$id_membro nesse caso seria eu logado com o id 3

if($id_membro != array ($noticia->id_usuarios_utilizados)){
	echo "imprimi".$noticia->titulo."</br>";
}else{
	
}
	


}
// Libera o resultado para liberar memória
$resultado->free();	

?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá, está um pouco diferente do seu script mas funciona. Como usuário não faz parte da tabela noticia criei outra tabela user_not que registra todas as noticias que o usuário viu definindo um relacionamento de muitos para muitos.

 

Por essa tabela eu primeiro checo quais notícias o user já visitou e cada notícia visitada eu adiciono dentro de um array.

$sql = mysql_query("SELECT * FROM user_not WHERE id_user = $id_user") or die(mysql_error());

$noticias = array();

while ($arr = mysql_fetch_array($sql)) {
	array_push($noticias, $arr['id_noticia']); 
} 

Esse array é transformado em uma string já pré configurada que será utilizada na consulta para mostrar as notícias que ele ainda não visitou.

$noticias_vistas = implode(' and id != ', $noticias);

Faço uma consulta na tabela notícias chamando por id diferente de todas as notícias vistas pelo user.

$sql_not = mysql_query("SELECT * FROM noticia WHERE id != $noticias_vistas") or die(mysql_error());;

while ($arr_not = mysql_fetch_array($sql_not)) {
	echo $arr_not['titulo']. '<br/>'; 
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

Olá, está um pouco diferente do seu script mas funciona. Como usuário não faz parte da tabela noticia criei outra tabela user_not que registra todas as noticias que o usuário viu definindo um relacionamento de muitos para muitos.

 

Por essa tabela eu primeiro checo quais notícias o user já visitou e cada notícia visitada eu adiciono dentro de um array.

$sql = mysql_query("SELECT * FROM user_not WHERE id_user = $id_user") or die(mysql_error());

$noticias = array();

while ($arr = mysql_fetch_array($sql)) {
	array_push($noticias, $arr['id_noticia']); 
} 

Esse array é transformado em uma string já pré configurada que será utilizada na consulta para mostrar as notícias que ele ainda não visitou.

$noticias_vistas = implode(' and id != ', $noticias);

Faço uma consulta na tabela notícias chamando por id diferente de todas as notícias vistas pelo user.

$sql_not = mysql_query("SELECT * FROM noticia WHERE id != $noticias_vistas") or die(mysql_error());;

while ($arr_not = mysql_fetch_array($sql_not)) {
	echo $arr_not['titulo']. '<br/>'; 
}

 

Berges, primeiramente obrigado pela atenção..

nao tenho muito conhecimento em php estou me aventurando... e começei a utilizar o php versao 5. alguma coisa onde esta decapretd o tipo de conexao mysql_query

e de acordo com seu exemplo nao estou conseguindo modificar o tipo de conexao que uso MySQLi com o seu codigo..

sera que poderia me dar uma ajuda com isso tambem rsrs..

 

desde já agradeço..

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.