Ir para conteúdo

Arquivado

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

Hijack

Erro na condição

Recommended Posts

Boa noite, após examinar o código umas "centenas" de vezes não estou a conseguir perceber o que estou a fazer errado. A ideia é caso exista registos, eles sejam exibidos neste bloco de código:

 

  <?php
				
				
    							$sql = "SELECT id_noticia, data, titulo, categoria, tbl_noticias.*, tbl_categorias_noticias.* 
								FROM tbl_noticias, tbl_categorias_noticias 
								WHERE tbl_noticias.id_categoria_noticia = tbl_categorias_noticias.id_categoria_noticia 
								AND tbl_noticias.status = 1 
								ORDER BY data DESC LIMIT 5;";
								$consulta = mysql_query($sql) or die(mysql_error());
								$total = mysql_num_rows($consulta) or die(mysql_error());
								if($consulta){
									
									echo "<table class=\"tablesorter\" cellspacing=\"0\">";
						echo "<thead>"; 
						
							echo "<tr>"; 
								echo "<th></th>";
								echo "<th>Nome</th>"; 
								echo "<th>Categoria</th>";
								echo "<th>Data de Publicação</th>"; 
								echo "<th>Ações</th>"; 
							echo "</tr>"; 
						echo "</thead>"; 
							echo "<tbody>"; 
								
					while($mostrar = mysql_fetch_array($consulta)){
						
									$idartigo = $mostrar['id_noticia'];
									$categoria = $mostrar['categoria'];
									$titulo = $mostrar['titulo'];
									$data = $mostrar['data'];
									
							echo "<tr>";
								echo "<td><input type=\"checkbox\"></td>";
								echo "<td>". $titulo ."</td>";
								echo "<td>". $categoria ."</td>";
								echo "<td>". $data ."</td>";
								echo "<td>
			<a href=\"editarartigo.php?id_noticia=$idartigo\"><input type=\"image\" src=\"images/icn_edit.png\" name=\"alterar\" title=\"Alterar\" value=\"Editar\"></a>
			<a href=\"sistema/excluirartigo.php?id_noticia=$idartigo\"><input type=\"image\" src=\"images/icn_trash.png\" title=\"Excluir\"></a>
			<a href=\"previsualizar.php?id_noticia=$idartigo\"><input type=\"image\" src=\"images/eye.png\" title=\"Visualizar\"></a></td>";
								
							echo "</tr>";
							}
					}

 

caso contrario, exibe a mensagem contida neste bloco de código:

else{
						
					echo "<table class=\"tablesorter\" cellspacing=\"0\">";
								
						echo "<thead>"; 
							echo "<tr>"; 
								echo "<th></th>"; 
								echo "<th>Nome</th>"; 
								echo "<th>Categoria</th>";
								echo "<th>Data de Publicação</th>"; 
								echo "<th>Ações</th>"; 
							echo "</tr>"; 
						echo "</thead>"; 
						echo "<tbody>"; 
								echo "<tr>";
								echo "<td></td>";
								echo "<td>Não existem noticias publicadas</td>";
								echo "<td></td>";
								echo "<td></td>";
								echo "<td></td>";
							echo "<tr>";
						echo "</tbody>"; 
					echo "</table>";
					}

a questão é que, quando não existe registos, não exibe o bloco de código dentro do else. Alguém me pode ajudar?

 

Aqui está o código completo:

<div id="tab1" class="tab_content">
			
                <?php
				
				
    							$sql = "SELECT id_noticia, data, titulo, categoria, tbl_noticias.*, tbl_categorias_noticias.* 
								FROM tbl_noticias, tbl_categorias_noticias 
								WHERE tbl_noticias.id_categoria_noticia = tbl_categorias_noticias.id_categoria_noticia 
								AND tbl_noticias.status = 1 
								ORDER BY data DESC LIMIT 5;";
								$consulta = mysql_query($sql) or die(mysql_error());
								$total = mysql_num_rows($consulta) or die(mysql_error());
								if($consulta){
									
									echo "<table class=\"tablesorter\" cellspacing=\"0\">";
						echo "<thead>"; 
						
							echo "<tr>"; 
								echo "<th></th>";
								echo "<th>Nome</th>"; 
								echo "<th>Categoria</th>";
								echo "<th>Data de Publicação</th>"; 
								echo "<th>Ações</th>"; 
							echo "</tr>"; 
						echo "</thead>"; 
							echo "<tbody>"; 
								
					while($mostrar = mysql_fetch_array($consulta)){
						
									$idartigo = $mostrar['id_noticia'];
									$categoria = $mostrar['categoria'];
									$titulo = $mostrar['titulo'];
									$data = $mostrar['data'];
									
							echo "<tr>";
								echo "<td><input type=\"checkbox\"></td>";
								echo "<td>". $titulo ."</td>";
								echo "<td>". $categoria ."</td>";
								echo "<td>". $data ."</td>";
								echo "<td>
			<a href=\"editarartigo.php?id_noticia=$idartigo\"><input type=\"image\" src=\"images/icn_edit.png\" name=\"alterar\" title=\"Alterar\" value=\"Editar\"></a>
			<a href=\"sistema/excluirartigo.php?id_noticia=$idartigo\"><input type=\"image\" src=\"images/icn_trash.png\" title=\"Excluir\"></a>
			<a href=\"previsualizar.php?id_noticia=$idartigo\"><input type=\"image\" src=\"images/eye.png\" title=\"Visualizar\"></a></td>";
								
							echo "</tr>";
							}
					}
					
					else{
						
					echo "<table class=\"tablesorter\" cellspacing=\"0\">";
								
						echo "<thead>"; 
							echo "<tr>"; 
								echo "<th></th>"; 
								echo "<th>Nome</th>"; 
								echo "<th>Categoria</th>";
								echo "<th>Data de Publicação</th>"; 
								echo "<th>Ações</th>"; 
							echo "</tr>"; 
						echo "</thead>"; 
						echo "<tbody>"; 
								echo "<tr>";
								echo "<td></td>";
								echo "<td>Não existem noticias publicadas</td>";
								echo "<td></td>";
								echo "<td></td>";
								echo "<td></td>";
							echo "<tr>";
						echo "</tbody>"; 
					echo "</table>";
					}
					mysql_free_result($consulta);
				?>
                
			</tbody> 
			</table>
			</div><!-- Fim do separador #tab1 -->
			
			<div id="tab2" class="tab_content"> 
			<?php
    							$sql = "SELECT id_noticia, data, titulo, categoria, tbl_noticias.*, tbl_categorias_noticias.* 
								FROM tbl_noticias, tbl_categorias_noticias 
								WHERE tbl_noticias.id_categoria_noticia = tbl_categorias_noticias.id_categoria_noticia 
								AND tbl_noticias.status != 1
								ORDER BY data DESC LIMIT 5;";
								$consulta = mysql_query($sql) or die(mysql_error());
								$total = mysql_num_rows($consulta) or die(mysql_error());
								if(($total)>0){
									
									echo "<table class=\"tablesorter\" cellspacing=\"0\">";
						echo "<thead>"; 
						
							echo "<tr>"; 
								echo "<th></th>";
								echo "<th>Nome</th>"; 
								echo "<th>Categoria</th>";
								echo "<th>Data de Publicação</th>"; 
								echo "<th>Ações</th>"; 
							echo "</tr>"; 
						echo "</thead>"; 
							echo "<tbody>"; 
								
					while($mostrar = mysql_fetch_array($consulta)){
						
									$idartigo = $mostrar['id_noticia'];
									$categoria = $mostrar['categoria'];
									$titulo = $mostrar['titulo'];
									$data = $mostrar['data'];
									
							echo "<tr>";
								echo "<td><input type=\"checkbox\"></td>";
								echo "<td>". $titulo ."</td>";
								echo "<td>". $categoria ."</td>";
								echo "<td>". $data ."</td>";
								echo "<td>
			<a href=\"editarartigo.php?id_noticia=$idartigo\"><input type=\"image\" src=\"images/icn_edit.png\" name=\"alterar\" title=\"Editar\" value=\"alterar\"></a>
			<a href=\"sistema/excluirartigo.php?id_noticia=$idartigo\"><input type=\"image\" src=\"images/icn_trash.png\" title=\"Excluir\"></a>
			<a href=\"previsualizar.php?id_noticia=$idartigo\"><input type=\"image\" src=\"images/eye.png\" title=\"Visualizar\"></a></td>";
								
							echo "</tr>";
							}
					}else{
						
					echo "<table class=\"tablesorter\" cellspacing=\"0\">";
								
						echo "<thead>"; 
							echo "<tr>"; 
								echo "<th></th>"; 
								echo "<th>Nome</th>"; 
								echo "<th>Categoria</th>";
								echo "<th>Data de Publicação</th>"; 
								echo "<th>Ações</th>"; 
							echo "</tr>"; 
						echo "</thead>"; 
						echo "<tbody>"; 
								echo "<tr>";
								echo "<td></td>";
								echo "<td>Não existem noticias publicadas</td>";
								echo "<td></td>";
								echo "<td></td>";
								echo "<td></td>";
							echo "<tr>";
						echo "</tbody>"; 
					echo "</table>";
					}
				?>
                
			</tbody> 
			</table>
			</div><!-- Fim do separador #tab2 -->

Se alguém me puder ajudar, fico grato.

 

Obrigado a todos

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

já que vc tbm seleciona o numero de linhas da consulta faz assim

 

if($total > 0){
...
}

 

Obrigado por ter respondido ao meu post rockrgo.

Pois, também já experimentei e não resulta, não percebo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara, posso te dar uma dica?

Separa os blocos de código em métodos/funções, como aqui:

 

 

$consulta = mysql_query($sql) or die(mysql_error());
$total = mysql_num_rows($consulta) or die(mysql_error());
if($consulta){
cabecalho(); 
while($mostrar = mysql_fetch_array($consulta)){
   escreveRegistro($mostrar);
}
} else {
escreveInfoSemRegistros();
}

 

Fica bem mais fácil separar a parte lógica da parte visual, inclusive visualizar eventuais erros.
Ainda não é orientação a objetos, mas já é algo na direção.
O importante é não duplicar código, coisa que teu código faz.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigado por ter respondido ao meu post rockrgo.

Pois, também já experimentei e não resulta, não percebo.

 

Cara seu problema deve estar na query então. Faz a consulta direto no mysql (phpmyadmin) para ver se retorna alguma coisa ou está dando erro na consulta.

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.