Ir para conteúdo

POWERED BY:

Arquivado

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

thunderlight

Exibir Registros em 2 Tabelas - Php Mysql

Recommended Posts

Bom Dia,

 

Tenho este código que em parte funciona bem ele mostra os resultados vindos do banco de dados em duas tabelas já andei dando algumas modificadas mais ele apresenta um erro´que só ocorre quando tenho registros " impares "

 

Este é o erro : ( varia as linhas de acordo com a filtragem dos dados mais o erro é sempre o mesmo)

 

Warning: mysql_result() [function.mysql-result]: Unable to jump to row 1 on MySQL result index 9 in C:\xampp\htdocs\belgocercasfortaleza.com.br\site\produtos\produto_detalhe.php on line 97

 

Warning: mysql_result() [function.mysql-result]: Unable to jump to row 1 on MySQL result index 9 in C:\xampp\htdocs\belgocercasfortaleza.com.br\site\produtos\produto_detalhe.php on line 98

 

Warning: mysql_result() [function.mysql-result]: Unable to jump to row 1 on MySQL result index 9 in C:\xampp\htdocs\belgocercasfortaleza.com.br\site\produtos\produto_detalhe.php on line 99

 

 

<? include ('../conexao.php');
		
		$id_categoria = $_GET['id_categoria']; 
					// RECUPERA A VARIAVEL QUE VEM DA OUTRA PAGINA
		
		$sql= "SELECT * FROM produtos WHERE id_categoria = $id_categoria";
		$res = mysql_query ($sql); // requisição sql do banco
		$linhas = mysql_num_rows ($res); //pega o total de linha do banco (tabela)
		print mysql_error();
		//print "Linhas : $linhas<br>"; 
		//print $sql;
		/*while ($result = mysql_fetch_array($res))
		{
		print $result[1].'<br>'; 
		}*/
		?>
		<br />
		<div align="left"> <table border=0 cellpadding=10 cellspacing=0 style="border-collapse: collapse" bordercolor=#F0F0F0 width=400 id=AutoNumber1>
		
<? // FLAG PRA ALTERAR COR DE TABELA
$valor = 0;
?>						  
	  <? $result = mysql_fetch_array($res 
	  ?> 
	  <h1><? print $result[2];?></h1><br />	
				
<?
for($i=0; $i< $linhas; $i++) { 
$idautor = mysql_result($res,$i,"id_produto");
$foto = mysql_result($res,$i,"img_destaque");
$nome = mysql_result($res,$i,"produto");
	
if($foto and $idautor) { 

if ($valor==0){
		$cor ='#EEEEEE';
		   $valor= 1;
		}
		else {
		  $cor='#FBFBFB';
		  $valor= 0;
		  }

?>

		

<tr> 									   
<td align="left" bgcolor="<? print $cor?>"><font face=Verdana size=2><a href='produto_detalhe1.php?id_produto=<? print $idautor?>' class="linkconteudo"><img src=<? print $foto ?> width="100" height="80"	border="0"><br>
  <? print "$nome" ?></a></font></td>

<? } 

$i++; ?>
<?
$idautor = mysql_result($res,$i,"id_produto");
$foto = mysql_result($res,$i,"img_destaque");
$nome = mysql_result($res,$i,"produto");


if($foto and $idautor) { ?>
<td align=center bgcolor="<? print $cor?>"><font face=Verdana size=2><a href='produto_detalhe1.php?id_produto=<? print $idautor?>' class="linkconteudo"><img src=<? print $foto ?> width="100" height="80" border=0><br>
  <? print $nome ?></a></font></td></tr>
<? }?>

<? } ?>

</table>
</div>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tem um erro de sintaxe aqui:

 

<? // FLAG PRA ALTERAR COR DE TABELA
$valor = 0;
?>						  
<? $result = mysql_fetch_array($res	  ?>

$result = mysql_fetch_array($res) ?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Independente disto esta dando o erro este erro de sintaxe foi por que fui apager um comentario quando postei no código não tem este erro

o que acontece é que a pagina até exibi os resultados mais vem com o erro como citei acima

 

 

veja:

 

Imagem PostadaImagem Postada

 

<? // FLAG PRA ALTERAR COR DE TABELA

$valor = 0;

?>

<? $result = mysql_fetch_array($res);

?>

<h1><? print $result[2];?></h1><br />

Compartilhar este post


Link para o post
Compartilhar em outros sites

Caro thunderlight,

 

O seu código está muito errado.

 

- Você usa ShortTags (<? ?>) ao invés do correto que é <?php ?>;

 

- Você está fazendo muitas alternações entre o PHP e o HTML, a todo momento você abre e fecha o PHP, isso está errado.

 

- O seu código está completamente fora de indentação, o que impossibilita uma manutenção correta e rápida.

 

- Não entendi se você está fazendo todo este código só pra mudar cores das linhas da tabela, através do laço?!;

 

- Não existe nenhuma validação na passagem do parâmetro $_GET;

 

Tente fazer um código mais limpo e direto e poste novos resultados.

 

Sucesso.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigado pela dica mais continuo com a duvida este codigo já consegui atraves de pesquisas e pelo visto foi o unico que consegui colocar para funcionar a custa de muitas modificações

 

aguardo novas respostas

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não precisa agradecer as dicas, pois acho que é um dever de todos dar dicas relevantes em qualquer tipo de programação.

 

Diga-me o seguinte: Segundo sua postagem, você quer exibir registros de duas tabelas e nesta exibição, quando houver mais de uma linha, quer fazer um efeito Zebra (cor sim, cor não)?

 

Responda e eu te ajudarei.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Consegui sanar meu problema em 90% com essa codigo simples em tabless dê uma olhada, claro dai substitui

pelas conexões com o banco com while fetch_array etc deu certo só não ficou muito bom a questão do cor sim cor não

 

<div class="container">
<? $valor = 0; ?>

<?php for($i = 1; $i <= 100; $i++){

if ($valor==0){
		$cor ='#EEEEEE';
		   $valor= 1;
		}
		else {
		  $cor='#FBFBFB';
		  $valor= 0;
		  }

?>  

<div class="div_imagem" style="background:<? print $cor ?> "><img width="75" height="75" src="imagens/<?php print($i); ?>.jpg" /></div>
<?php } ?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

a algum tempo fiz essa função para ter o efeito zebra com php xhtml e css

 

função

<?php function idline($p_count){
	if($p_count%2==0)
		{
		return true;
		}
	else
		{
		return false;
		}
}
?>

Um for qualquer:

<php
for($i = 0; $i < 10; $i++)
  {
  if(idline($i)){$ClassLine = 'LinhaPar';} else{$ClassLine = '';}
  echo '<tr '."$ClassLine".'><td>blablablabal</td></tr>';
  }
?>

e meu css é mais ou menos assim...

<style type="text/css">
table{
  width:100%:
}
table thead{}
table thead tr{}
table thead tr th{}
table tbody{}
table tbody tr{}
table tbody tr.LinhaPar{
  background:#CCCCCC;
}
/* se quizer tratar as tds dentro da tr com a classe LinhaPar pode fazer assim */
table tbody tr.LinhaPar td{
  color:#FF6600;
}
</style>

perdoem a ma identação mas refiz o css pra ficar bem claro!

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.