Ir para conteúdo

POWERED BY:

Arquivado

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

Dexter Morgan

[Resolvido] comparar tabelas para exibir foto

Recommended Posts

Olá pessoal tenho um sistema de comentarios, e queria que mostrasse a foto da pessoa se for usuario , então tenho as seguintes tabelas ...

 

user


--
-- Estrutura da Tabela User
--

CREATE TABLE user(
id_user int(11) NOT NULL auto_increment,
id_tipo int(11) NOT NULL,
emailalternativo varchar(255) NOT NULL,
email varchar(255) NOT NULL,
senha varchar(255) NOT NULL,
nomeavatar varchar(255) NOT NULL,
nome varchar(255) NOT NULL,
sobrenome varchar(255) NOT NULL,
cpf_cnpj varchar(255) NOT NULL,
sexo char(1) default '',
foto varchar(255) NOT NULL,
pais varchar(255) NOT NULL,
estado varchar(255) NOT NULL,
cidade varchar(255) NOT NULL,
cep varchar(255) NOT NULL,
rua varchar(255) NOT NULL,
bairro varchar(255) NOT NULL,
ddd varchar(255) NOT NULL,
tel varchar(255) NOT NULL,
nivel varchar(255) default 'Assinante',
ativado enum('0','1') NOT NULL default '0',
PRIMARY KEY  (id_user)
) ENGINE = MYISAM CHARACTER SET latin1 COLLATE latin1_general_ci COMMENT = '';

-- --------------------------------------------------------

 

post


--
-- Estrutura da Tabela Post
--

CREATE TABLE post(
id_post int(11) NOT NULL auto_increment,
id_user int(11) NOT NULL,
nome varchar(255) NOT NULL,
email varchar(255) NOT NULL,
post text NOT NULL,
data date NOT NULL,
nivel varchar(255) default 'Usuário',
publicado char(1) default 'N',
PRIMARY KEY  (id_post),
UNIQUE KEY id (id_post)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=1;

-- --------------------------------------------------------

 

eu quero que quando for listar os post faz a verificação de email entre as tabelas se o email corresponder busca a foto cadastrada e exibe segue o codigo do post ...

 

comentarios.php


<?php

include "conexao.php";
$end = $_SERVER['PHP_SELF'];
if(isset($coment)) {
$coment = $coment;
}
else{
$coment = 1;
}
$qnt = 6;
$inicio = ($coment*$qnt) - $qnt;


$sql_listar_post = "SELECT id_post, nome, post, data, nivel, publicado FROM post WHERE publicado='S' ORDER BY id_post DESC LIMIT $inicio, $qnt";

$resultado_listar_post = mysql_query($sql_listar_post) or die (mysql_error());
if(mysql_num_rows($resultado_listar_post) < 1) {
echo "";
}
else {
while ($linha = mysql_fetch_array($resultado_listar_post)) {
$id_post = $linha["id_post"];
$nome = $linha["nome"];
$post = $linha["post"];


$fotopost = $linha["foto"];


$data = $linha["data"];
$nivel = $linha["nivel"];
echo "<div class='post'>";


if(($fotopost)){
echo "<img src='assinante/fotos/$fotopost' class='photo' title='$nome' alt='$nome' width='60' />";
}
else {
echo "<img src='home/img/default.jpg' class='photo' title='$nome' alt='$nome' height='60' width='60' />";
}


echo "<div class='post-arrow'></div>";
echo "<div class='post-box'>";
echo "<div class='post-author'>";
echo "<strong>$nome</strong> <font face='arial' size='2' color='#444444'>disse em</font> <small>";print escreveDatapost("$data");echo "</small> <font class='nivel'><font face='arial' size='2' color='#444444'>Nível:</font> <small>$nivel</small></font>";
echo "</div>";
echo "<div class='post-text'>";
echo "<p>$post</p>";
echo "</div>";
echo "</div>";
echo "</div>";
}
}
echo "<center><div id='pg'>";
$sql_listar_post = "SELECT * FROM post";
$resultado_listar_post = mysql_query($sql_listar_post);
$total_registros = mysql_num_rows($resultado_listar_post);
$pags = ceil($total_registros/$qnt);
$anterior = $coment - 1;
$proxima = $coment + 1;
$max_links = 3;
echo "<span class='pagination'><a href='$end?coment=1' title='Primeira' target='_self' style='outline:0;'><< </a></span>   ";
if($anterior > 0) {
echo "<span class='pagination'><a href='$end?coment=".$anterior."' title='Anterior' target='_self' style='outline:0;'> <</a></span>   <font face='trebuchet ms' color='#333333' size='3'>|</font> ";
}
for($i = $coment-$max_links; $i <= $coment-1; $i++) {
if($i <=0) {
}
else{
echo "<span class='pagination'><a href='$end?coment=".$i."' target='_self' style='outline:0;'>".$i."</a></span> <font face='trebuchet ms' color='#333333' size='3'>|</font> ";
}
}
echo "<font face='trebuchet ms' color='#333333' size='3'><strong>";
echo $coment." ";
echo "</strong></font>";
echo "<font face='trebuchet ms' color='#333333' size='3'>|</font> ";
for($i = $coment+1; $i <= $coment+$max_links; $i++) {
if($i > $pags) {
}
else{
echo "<span class='pagination'><a href='$end?coment=".$i."' target='_self' style='outline:0;'>".$i."</a></span> <font face='trebuchet ms' color='#333333' size='3'>|</font> ";
}
}
if($proxima <= $pags) {
echo "<span class='pagination'>  <a href='$end?coment=".$proxima."' title='Próximo' target='_self' style='outline:0;'> ></a></span>";
}
echo "<span class='pagination'>  <a href='$end?coment=".$pags."' title='Último' target='_self' style='outline:0;'> >></a></span>";
echo "</div></center>";

?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

consegui fazer dessa forma esta funcionando corretamente com o LEFT JOIN ,,,

 


$sql_listar_post = "SELECT post.*, user.email, user.foto, user.nivel FROM post LEFT JOIN user ON post.email = user.email WHERE post.publicado='S' ORDER BY post.id_post DESC LIMIT $inicio, $qnt";
$resultado_listar_post = mysql_query($sql_listar_post) or die (mysql_error());
if(mysql_num_rows($resultado_listar_post) < 1) {
echo "";
}
else {
while ($linha = mysql_fetch_array($resultado_listar_post)) {
$id_post = $linha["id_post"];
$nome = $linha["nome"];
$email = $linha["email"];
$fotopost = $linha["foto"];
$post = $linha["post"];
$data = $linha["data"];
$nivel = $linha["nivel"];
echo "<div class='post'>";
if(($fotopost)){
echo "<img src='assinante/fotos/$fotopost' class='photo' title='$nome' alt='$nome' width='60' />";
}
else {
echo "<img src='home/img/default.jpg' class='photo' title='$nome' alt='$nome' height='60' width='60' />";
}
echo "<div class='post-arrow'></div>";
echo "<div class='post-box'>";
echo "<div class='post-author'>";
echo "<strong>$nome</strong> <font face='arial' size='2' color='#444444'>disse em</font> <small>";print escreveDatapost("$data");echo "</small> <font class='nivel'><font face='arial' size='2' color='#444444'>Nível:</font>";
if(($nivel)){
echo " <small>$nivel</small></font>";
}
else {
echo " <small>Usuário</small></font>";
}
echo "</div>";
echo "<div class='post-text'>";
echo "<p>$post</p>";
echo "</div>";
echo "</div>";
echo "</div>";
}
}

 

mas tenho outra pergunta quando envio o comentario coloquei com default para nao publicar ficar em espera para moderação, mas quando um moderador comentar quero que vai direto nao, pq assim os comentarios dos moderados tbm ficam como nao publicado ....

Compartilhar este post


Link para o post
Compartilhar em outros sites

faça uma condição no teu INSERT.

 

if Moderador, tal campo de publicar seta como publicado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então William Bruno eu fiz uma alteração na tabela post tirei nivel de la para puxar com relacionamento na tabela user certo ai fiz o insert assim

 


<?php

include "conexao.php";

$data = date("Y-m-d");
$newdata = substr($data,8,2) . "/" .substr($data,5,2) . "/" . substr($data,0,4);
$nome = $_POST["nome"];
$email = $_POST["email"];
$nivel = $_POST["nivel"];
$postcoment = $_POST["postcoment"];
$sql = mysql_query("SELECT post.*, user.email, user.nivel FROM post INNER JOIN user ON post.email = user.email WHERE user.email='$email'");
$resultado = mysql_num_rows($sql);
if($resultado > 0){
$sql_publish_user = mysql_query("INSERT INTO post (nome, email, data, post, publicado) VALUES ('$nome', '$email', '$data', '$postcoment', 'S')");
if($sql_publish_user == true){
echo "<script>window.location='index.php';alert('Enviado com Sucesso!');</script>";
}
}
else{
$sql_publish_post = mysql_query("INSERT INTO post (nome, email, data, post) VALUES ('$nome', '$email', '$data', '$postcoment')");
if($sql_publish_post == true){
echo "<script>window.location='index.php';alert('Enviado com Sucesso!');</script>";
}
}

?>

 

Ele publica direto quando um moderador envia mas só se o moderador ja tiver um comentario postado se nao tiver nenhum postado nao publica ;/

 

Minhas tabelas estão assim agora relacionadas

 


--
-- Estrutura da Tabela User
--

CREATE TABLE user(
id_user int(11) NOT NULL auto_increment,
id_tipo int(11) NOT NULL,
emailalternativo varchar(255) NOT NULL,
email varchar(255) NOT NULL,
senha varchar(255) NOT NULL,
nomeavatar varchar(255) NOT NULL,
nome varchar(255) NOT NULL,
sobrenome varchar(255) NOT NULL,
cpf_cnpj varchar(255) NOT NULL,
sexo char(1) default '',
foto varchar(255) NOT NULL,
pais varchar(255) NOT NULL,
estado varchar(255) NOT NULL,
cidade varchar(255) NOT NULL,
cep varchar(255) NOT NULL,
rua varchar(255) NOT NULL,
bairro varchar(255) NOT NULL,
ddd varchar(255) NOT NULL,
tel varchar(255) NOT NULL,
nivel varchar(255) default 'Assinante',
ativado enum('0','1') NOT NULL default '0',
PRIMARY KEY  (id_user)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=1;

-- --------------------------------------------------------

--
-- Estrutura da Tabela Post
--

CREATE TABLE post(
id_post int(11) NOT NULL auto_increment,
nome varchar(255) NOT NULL,
email varchar(255) NOT NULL,
post text NOT NULL,
data date NOT NULL,
publicado char(1) default 'N',
PRIMARY KEY  (id_post),
UNIQUE KEY id (id_post)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=1;

-- --------------------------------------------------------

Compartilhar este post


Link para o post
Compartilhar em outros sites

agora deu certo vlw

 

<?php

include "conexao.php";

$data = date("Y-m-d");
$newdata = substr($data,8,2) . "/" .substr($data,5,2) . "/" . substr($data,0,4);
$nome = $_POST["nome"];
$email = $_POST["email"];
$postcoment = $_POST["postcoment"];
$sql = mysql_query("SELECT email, nivel FROM user WHERE email='$email' AND nivel='Moderador'");
$resultado = mysql_num_rows($sql);
if($resultado > 0){
$sql_publish_user = mysql_query("INSERT INTO post (nome, email, data, post, publicado) VALUES ('$nome', '$email', '$data', '$postcoment', 'S')");
if($sql_publish_user == true){
echo "<script>window.close;alert('Post enviado com Sucesso!');window.location='index.php';</script>";
}
}
else{
$sql_publish_post = mysql_query("INSERT INTO post (nome, email, data, post) VALUES ('$nome', '$email', '$data', '$postcoment')");
if($sql_publish_post == true){
echo "<script>window.close;alert('Post enviado com Sucesso. Aguarde Moderacao!');window.location='index.php';</script>";
}
}

?>

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.