Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
tenho duas tabelas, como faço para filtrar apenas campos com conteudo iguais,
exemplo:
tabela usuarios: usu_id
tabela noticias: not_id
como consulto e mostra apenas quando usu_id e not_id ter valores iguais?
eu fiz daquele geito mas ele não esta filtrando... esta mostrando todos os dados da tabela....
<?php
mysql_select_db($database_ConnImasters, $ConnImasters);
$query_rsRelatorioplaylist = "SELECT * FROM playlist INNER JOIN usuarios ON playlist.not_usuario_id = usuarios.usu_id ORDER BY not_usuario_id DESC";
$rsRelatorioplaylist = mysql_query($query_rsRelatorioplaylist, $ConnImasters) or die(mysql_error());
$row_rsRelatorioplaylist = mysql_fetch_assoc($rsRelatorioplaylist);
$totalRows_rsRelatorioplaylist = mysql_num_rows($rsRelatorioplaylist);
?>
html:
<?php do { ?>
<tr>
<td><?php echo $row_rsRelatorioplaylist['nome']; ?></td>
<td><a href="noticia_excluir.php?not_id=<?php echo $row_rsRelatorioplaylist['not_id']; ?>"><img src="../img/delete.gif" width="16" height="16" /></a></td>
</tr>
<?php } while ($row_rsRelatorioplaylist = mysql_fetch_assoc($rsRelatorioplaylist)); ?>
</table>
</body>
</html>
<?php
mysql_free_result($rsRelatorioplaylist);
?>Olá STHELT, bom..e se você colocar a condição WHERE no lugar do ON??? http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif
mesmo assim... ele continua mostrando todos os dados da tabela...
nao tem outro geito?
Como está o seu código neste momento?
Carlos Eduardo
igual o de cima, só que no lugar de ON ta WHERE...
Estou achando que você está querendo uma coisa e estamos explicando outra... Por acaso, você quer saber somente as notícias de um usuário específico?
Carlos Eduardo
sim! só quero saber somente as notícias de um usuário específico...
Mais ou menos assim
"SELECT * FROM playlist INNER JOIN usuarios ON playlist.not_usuario_id = usuarios.usu_id WHERE usu_id = 'id_do_usuario' ORDER BY not_usuario_id DESC";
Carlos Eduardo
agora ele não esta moostrando nada...
olhe como esta o codigo:
<?php
mysql_select_db($database_ConnImasters, $ConnImasters);
$query_rsRelatorioplaylist = "SELECT * FROM playlist INNER JOIN usuarios ON playlist.not_usuario_id = usuarios.usu_id WHERE usu_id = 'id_do_usuario' ORDER BY not_usuario_id DESC";
$rsRelatorioplaylist = mysql_query($query_rsRelatorioplaylist, $ConnImasters) or die(mysql_error());
$row_rsRelatorioplaylist = mysql_fetch_assoc($rsRelatorioplaylist);
$totalRows_rsRelatorioplaylist = mysql_num_rows($rsRelatorioplaylist);
?>
<?php do { ?>
<tr>
<td><?php echo $row_rsRelatorioplaylist['nome']; ?></td>
<td><a href="noticia_excluir.php?not_id=<?php echo $row_rsRelatorioplaylist['not_id']; ?>"><img src="../img/delete.gif" width="16" height="16" /></a></td>
</tr>
<?php } while ($row_rsRelatorioplaylist = mysql_fetch_assoc($rsRelatorioplaylist)); ?>
</table>
</body>
</html>
<?php
mysql_free_result($rsRelatorioplaylist);
?>Amigão, eu deu um exemplo... Leia o código que eu passei, especialmente nesta parte.
WHERE usu_id = 'id_do_usuario'
Esta é a parte que faz a condição. usu_id é o campo da condição e o que está entre aspas é o valor que vai ser usado para identificar o usuário.
Imaginemos que o campo a ser usado vai ser o usu_id mesmo e que você quer as notícias do usuário 1. Seu código ficaria assim.
$query_rsRelatorioplaylist = "SELECT * FROM playlist INNER JOIN usuarios ON playlist.not_usuario_id = usuarios.usu_id WHERE usu_id = 1 ORDER BY not_usuario_id DESC";
Como você não vai poder colocar o número do id estático, você deve colocar a variável que tenha o valor deste id ali naquela condição.
Compreendeu?
Carlos Eduardo
mais ai eu vou ter q por manualmente o usu_id? não era pra mostrar de acordo com o usuario que esta logado?
Como você sabe qual usuário está logado? Grava o id dele em SESSION, por exemplo? Se for, é só jogar esta variável na consulta.
Carlos Eduardo
como? eu não sei muito php... estou fazendo pelo Dreamweaver...
olhe como esta o codigo...: o que eu tenho q fazer?
<?php require_once('../Connections/ConnImasters.php'); ?>
<?php
//initialize the session
session_start();
// Logout the current user.
$logoutAction = $_SERVER['PHP_SELF']."?doLogout=true";
if ((isset($_SERVER['QUERY_STRING'])) && ($_SERVER['QUERY_STRING'] != "")){
$logoutAction .="&". htmlentities($_SERVER['QUERY_STRING']);
}
if ((isset($_GET['doLogout'])) &&($_GET['doLogout']=="true")){
//to fully log out a visitor we need to clear the session varialbles
session_unregister('MM_Username');
session_unregister('MM_UserGroup');
$logoutGoTo = "login.php";
if ($logoutGoTo) {
header("Location: $logoutGoTo");
exit;
}
}
?>
<?php
$MM_authorizedUsers = "";
$MM_donotCheckaccess = "true";
// *** Restrict Access To Page: Grant or deny access to this page
function isAuthorized($strUsers, $strGroups, $UserName, $UserGroup) {
// For security, start by assuming the visitor is NOT authorized.
$isValid = False;
// When a visitor has logged into this site, the Session variable MM_Username set equal to their username.
// Therefore, we know that a user is NOT logged in if that Session variable is blank.
if (!empty($UserName)) {
// Besides being logged in, you may restrict access to only certain users based on an ID established when they login.
// Parse the strings into arrays.
$arrUsers = Explode(",", $strUsers);
$arrGroups = Explode(",", $strGroups);
if (in_array($UserName, $arrUsers)) {
$isValid = true;
}
// Or, you may restrict access to only certain users based on their username.
if (in_array($UserGroup, $arrGroups)) {
$isValid = true;
}
if (($strUsers == "") && true) {
$isValid = true;
}
}
return $isValid;
}
$MM_restrictGoTo = "login.php";
if (!((isset($_SESSION['MM_Username'])) && (isAuthorized("",$MM_authorizedUsers, $_SESSION['MM_Username'], $_SESSION['MM_UserGroup'])))) {
$MM_qsChar = "?";
$MM_referrer = $_SERVER['PHP_SELF'];
if (strpos($MM_restrictGoTo, "?")) $MM_qsChar = "&";
if (isset($QUERY_STRING) && strlen($QUERY_STRING) > 0)
$MM_referrer .= "?" . $QUERY_STRING;
$MM_restrictGoTo = $MM_restrictGoTo. $MM_qsChar . "accesscheck=" . urlencode($MM_referrer);
header("Location: ". $MM_restrictGoTo);
exit;
}
?>
<?php
mysql_select_db($database_ConnImasters, $ConnImasters);
$query_rsRelatorioplaylist = "SELECT * FROM playlist INNER JOIN usuarios ON playlist.not_usuario_id = usuarios.usu_id WHERE usu_id = not_usuario_id ORDER BY not_usuario_id DESC";
$rsRelatorioplaylist = mysql_query($query_rsRelatorioplaylist, $ConnImasters) or die(mysql_error());
$row_rsRelatorioplaylist = mysql_fetch_assoc($rsRelatorioplaylist);
$totalRows_rsRelatorioplaylist = mysql_num_rows($rsRelatorioplaylist);
?><html xmlns="[http://www.w3.org/1999/xhtml">](http://www.w3.org/1999/xhtml)
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
</head>
<body>
<div>
<ul>
<li><a href="index.php">Início do Admin</a></li>
<li><a href="<?php echo $logoutAction ?>">Log out</a></li>
<li><a href="cadastro_usuario.php">Cadastrar usuário</a></li>
<li><a href="noticia_inserir.php">Cadastrar notícias</a></li>
</ul>
</div>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<th scope="col">Título</th>
<th scope="col">Data</th>
<th scope="col">Status</th>
<th scope="col">Responsável</th>
<th colspan="2" scope="col"> </th>
</tr>
<?php do { ?>
<tr>
<td><?php echo $row_rsRelatorioplaylist['nome']; ?></td>
<td><a href="noticia_excluir.php?not_id=<?php echo $row_rsRelatorioplaylist['not_id']; ?>"><img src="../img/delete.gif" width="16" height="16" /></a></td>
</tr>
<?php } while ($row_rsRelatorioplaylist = mysql_fetch_assoc($rsRelatorioplaylist)); ?>
</table>
</body>
</html>
<?php
mysql_free_result($rsRelatorioplaylist);
?>Olha... Vou tentar te explicar e você faz sozinho...
"SELECT * FROM playlist INNER JOIN usuarios ON playlist.not_usuario_id = usuarios.usu_id WHERE usu_id = 1 ORDER BY not_usuario_id DESC";
Vamos traduzir o que está sendo enviado para o banco de dados.
>
SELECIONE *(todos os campos) DA TABELA playlist JUNTANDO COM a tabela usuarios ONDE o campo playlist.not_usuario_id for igual a usuarios.usu_id AONDE o campo usu_id for igual a ?????
usu_id é o nome do campo na tabela playlist que identifica de qual usuário é aquele playlist e aonde tem os pontos de interrogação é o valor deste campo. Então, ali você tem que por a variável que contenha este valor.
Carlos Eduardo
olha como eu fiz agora, mas esta dando erro de sintese...(You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'ORDER BY not_id DESC' at line..)
mysql_select_db($database_ConnImasters, $ConnImasters);
$query_rsRelatorioplaylist = "SELECT * FROM playlist INNER JOIN usuarios ON playlist.not_usuario_id = usuarios.usu_id WHERE usu_id = " . $row_Recordset1['usu_id'] ." ORDER BY not_id DESC";
$rsRelatorioplaylist = mysql_query($query_rsRelatorioplaylist, $ConnImasters) or die(mysql_error());
$row_rsRelatorioplaylist = mysql_fetch_assoc($rsRelatorioplaylist);
$totalRows_rsRelatorioplaylist = mysql_num_rows($rsRelatorioplaylist);
mysql_select_db($database_ConnImasters, $ConnImasters);
$query_Recordset1 = "SELECT usu_id FROM usuarios";
$Recordset1 = mysql_query($query_Recordset1, $ConnImasters) or die(mysql_error());
$row_Recordset1 = mysql_fetch_assoc($Recordset1);
$totalRows_Recordset1 = mysql_num_rows($Recordset1);Então imprime a query antes de executar pra ver como está a consulta que está sendo enviada para o banco.
Carlos Eduardo
como? eu nao sei muito php...
@sthelt
Desculpa a franqueza mas... Adianta uma pessoa te explicar como se calcula a massa de um átomo de cloridrato de sódio se você não souber nada de química?
Estude um pouco de PHP antes... Depois estude o básico sobre MySQL... Podemos responder sua dúvida, fazer seu script funcionar e você vai sair sem aprender nada.
Veja se isso te ajuda:
http://thiagobelem.net/blog/mysql/2009/08/15/relacionamento-de-tabelas-no-mysql-622/