Jump to content


Photo

Defeito Na Consulta Do Db


  • Faça o login para participar
3 replies to this topic

#1 JOTA MILER

JOTA MILER

    Novato no fórum

  • Usuários
  • 9 posts
  • Sexo:Masculino
  • Localidade:Avaré - SP

Posted 22/11/2010, 20:18

ola pessoal, to com uma pulga atraz da orelha, tenho um codigo php que busca no db alguns dados de comentario de foto, ele funfa beleza, o problema que quando não há registro no db ele naum carrega a pagina, sei que parece que to falando abobrinha. mesmo quando eu declaro com IF que se naum tiver registro pra ele ir pra outro lugar, mais nem a função ele carrega. dem uma olhada no codico:


<?
include "conexao.php";
include "config.php";
if(isset($_GET['id']))
{
$idcoment=$_GET['id'];

$sql_foto="SELECT * FROM fotos_pct WHERE  id_foto='$idcoment'" or die (mysql_error());
$consulta_foto=mysql_query($sql_foto) or die (mysql_error());
$foto=mysql_fetch_array($consulta_foto) or die (mysql_error());

$query = "SELECT * FROM comentarios WHERE id_coment and id_fot='$idcoment' " or die (mysql_error());
$consulta_query = mysql_query($query)or die (mysql_error());
$num_tr=mysql_num_rows($consulta_query)or die (mysql_error());
$fetch=mysql_fetch_array($consulta_query);

if ($num_tr=='0')
{
		echo "<script>window.alert(\"Ainda Não Existe Comentários Nesta Foto! Deixe um Comentário.\");</script>";
		echo "<script>window.location='criar_comentario.php?id=$idcoment';</script>";
}

$registros=3;
$pagina=$_GET["num"];
if (is_numeric($pagina))
	$inicio=(($pagina-1)*$registros);
	else
	$inicio=0;
$query = "SELECT * FROM comentarios WHERE id_fot='$idcoment' order by id_coment desc LIMIT $inicio,$registros" or die (mysql_error());
$consulta = mysql_query($query)or die (mysql_error());
$tr=mysql_num_rows($consulta)or die (mysql_error());
$paginas=ceil($num_tr/$registros);

}


 ?>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title><? echo "$titulo"; ?></title>
<style type="text/css">
* #content {
	min-height:100%;
}
#content {
	width:600px;
	background-color:#EFECE2;
	margin:0 auto;
	padding:10px 0 10px 10px;
	list-style:none;
}
#content img {
	width:400px;
	border:10px solid #FFF;
}
#comentar {
	width:100px;
	text-align:center;
}
#comentar:hover {
	background-color:#333;
	color:#FFF;
}
#comentar a {
	text-decoration:none;
	color:#333;
}
#comentar a:hover {
	background-color:#333;
	color:#FFF;
}
#conteudo {
	width:420px;
	margin:10px auto;
	border:5px solid #FFF;
	background-color:#D3CBAF;
}
p {
	display:block;
	width:350px;
	text-align:justify;
	background-color:#FFF;
	border:2px solid #666;
	font-family:Verdana, Geneva, sans-serif;
	font-size:14px;
	padding:0 10px;
	margin:10px;
	color:#333;
}
#data {
	font-size:11px;
}
#data span {
	display:block;
	background-color:#EFECE2;
	font-family:Verdana, Geneva, sans-serif;
	font-size:11px;
	color:#900;
	font-weight:bold;
	margin:0 -10px;
	padding:0 10px;
}
#nome {
	font-size:11px;
}
#nome span {
	display:block;
	background-color:#EFECE2;
	font-family:Verdana, Geneva, sans-serif;
	font-size:11px;
	color:#900;
	font-weight:bold;
	margin:0 -10px;
	padding:0 10px;
}
#email {
	font-size:11px;
}
#email span {
	display:block;
	background-color:#EFECE2;
	font-family:Verdana, Geneva, sans-serif;
	font-size:11px;
	color:#900;
	font-weight:bold;
	margin:0 -10px;
	padding:0 10px;
}
#comentario {
	font-size:11px;
}
#comentario span {
	display:block;
	background-color:#EFECE2;
	font-family:Verdana, Geneva, sans-serif;
	font-size:11px;
	color:#900;
	font-weight:bold;
	margin:0 -10px;
	padding:0 10px;
}
#paginacao {
	position:relative;
	width:600px;
	height:25px;
	text-align:center;
	clear:both;
}
#paginacao a {
	border:2px dashed #333;
	background-color: #DDD;
	font:"Trebuchet MS", Arial, Helvetica, sans-serif;
	text-decoration:none;
	color:#333;
	padding:5px;
}
#paginacao a:hover {
	background-color: #333;
	color:#FFF;
}
</style>
</head>
<body>
<div id="content" class="gallery clearfix">
  <center>
    <img src="fotos/fotos/<? echo $foto['imagem']; ?>" / >
    <p style="margin-top:0px; width:398px;"><? echo $foto['descricao_foto']; ?></p>
  </center>
  <center>
    <p id="data"> <span>
      <center>
        Nº de Comentario(os)
      </center>
      </span>
      <center>
        <? echo "$num_tr"; ?>
      </center>
    </p>
    <p id="comentar"><span><a href="criar_comentario.php?id=<? echo "$idcoment"; ?>">COMENTAR</a></span></p>
    <center>
    </center>
    <? for($i=0;$i<$tr;$i++){ $reg=mysql_fetch_array($consulta);?>
    <div id="conteudo">
      <p id="data"><span>Data</span><? echo $reg['data']; ?></p>
      <p id="nome"><span>Nome</span><? echo $reg['nome']; ?></p>
      <p id="email"><span>E-mail</span><? echo $reg['email']; ?></p>
      <p id="comentario"><span>Comentário</span><br>
        <? echo $reg['comentario']; ?></p>
    </div>
    <? } ?>
  </center>
  <center>
    <p style="background-color:#EFECE2; clear:both;"></p>
  </center>
  <div id="paginacao">
    <?php
	if($n_maquinas!==0){
			if ($pagina>1)
		echo "<a href='comentario.php?id=".$idcoment."&num=". ($pagina-1) ."'> << Anterior</a> ";

			
		for ($cont=1;$cont<=$paginas;$cont++)
	{
	if ($cont==$pagina)
		echo $cont." ";
	else
	
		echo "<a href='comentario.php?id=".$idcoment."&num=". $cont ."'> $cont</a> ";
	
	}
		if ($pagina<$paginas)
		echo "<a href='comentario.php?id=".$idcoment."&num=". ($pagina+1) ."'>  Próximo >></a> ";
			}

	  ?>
    </center>
  </div>
</div>
</body>
</html>


onde que eu to errando se sempre usei essa maneira de consultar o banco, me ajudem por favor

#2 Guilherme Vieira

Guilherme Vieira

    Normal

  • Usuários
  • 113 posts
  • Sexo:Masculino
  • Localidade:Fortaleza, Ceará
  • Interesses:Desenvolvimento Web baseado nos padrões do W3C, HTML5, CSS3, PHP, JavaScript, jQuery, AJAX, SQL, MySQL.

Posted 22/11/2010, 22:42

Yo! Boa noite.
Experimenta tirar as aspas simples dos ids na sua sql que está assim:
$sql_foto="SELECT * FROM fotos_pct WHERE  id_foto='$idcoment'" or die (mysql_error());
$consulta_foto=mysql_query($sql_foto) or die (mysql_error());
$foto=mysql_fetch_array($consulta_foto) or die (mysql_error());

$query = "SELECT * FROM comentarios WHERE id_coment and id_fot='$idcoment' " or die (mysql_error());
$consulta_query = mysql_query($query)or die (mysql_error());
$num_tr=mysql_num_rows($consulta_query)or die (mysql_error());
$fetch=mysql_fetch_array($consulta_query);

para fia assim:
$sql_foto="SELECT * FROM fotos_pct WHERE  id_foto=$idcoment" or die (mysql_error());
$consulta_foto=mysql_query($sql_foto) or die (mysql_error());
$foto=mysql_fetch_array($consulta_foto) or die (mysql_error());

$query = "SELECT * FROM comentarios WHERE id_coment and id_fot=$idcoment " or die (mysql_error());
$consulta_query = mysql_query($query)or die (mysql_error());
$num_tr=mysql_num_rows($consulta_query)or die (mysql_error());
$fetch=mysql_fetch_array($consulta_query);

Guilherme Vieira
g.

PS: Te ajudei? Me dá ponto! ^^

#3 JOTA MILER

JOTA MILER

    Novato no fórum

  • Usuários
  • 9 posts
  • Sexo:Masculino
  • Localidade:Avaré - SP

Posted 23/11/2010, 08:44

Ola Guilherme, fiz o que vc disse mais infelismente naum adiantou. ciceramente eu naum sei se pode ser alguma configuração no php no CPANEL ou sei la, da uma olhadinha no link : Galeria de fotos

é estranho, veja bem, no codigo acima eu deixo bem claro que se não houver registro, ou seja, não houver numero de linhas, para direcionar para a pagina de comentario. muito estranho, pois se eu clico em uma foto que ja tem comentario... os registros são exibidos normalmente, mas se a foto ainda não tiver nenhum comentario nem o codigo fonte ele mostra, fika totalmente em branco a pagina, ou seja, nem a funcão pra verificar e direcionar não funciona... muito estranho. o que vcs acham?



















data recovery, dvd ripper download

#4 cristiano_cds

cristiano_cds

    Normal

  • Usuários
  • 85 posts
  • Sexo:Não informado

Posted 31/12/2010, 17:59

Voce esta " matando " a execucao do script:

$sql_foto="SELECT * FROM fotos_pct WHERE  id_foto='$idcoment'" or die (mysql_error());
$consulta_foto=mysql_query($sql_foto) or die (mysql_error());
$foto=mysql_fetch_array($consulta_foto) or die (mysql_error());

$query = "SELECT * FROM comentarios WHERE id_coment and id_fot='$idcoment' " or die (mysql_error());
$consulta_query = mysql_query($query)or die (mysql_error());
$num_tr=mysql_num_rows($consulta_query)or die (mysql_error());
$fetch=mysql_fetch_array($consulta_query);

Veja que depois das declaracoes do " WHERE " quando sua funcao SQL nao encontra o que foi pedido, ele MATA a execucao "or die (mysql_error()"
Pra começar tire esse comando e depois procure utilizar nas suas " $guery " o seguinte

WHERE aqui_fica_a_tabela_do_banco_que_vc_nao_quer_exibir_se_for_vazio != ''
isso vai definir que seu comando soh busque em tabelas diferentes de vazias.




1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq