Ir para conteúdo

POWERED BY:

Arquivado

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

Ghean

Relacionamento entre tabelas

Recommended Posts

Tenho duas tabelas em meu BD, uma produtos e outra fotos, na tabela fotos coloquei um campo prod_id, pra que seja feito o relacionamento com a tabela produto.

 

Como fazer para listar os produtos na minha pagina inicial e exibir uma imagen referente a ele e alguns dados.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Primeiramente você tem que codificar suas models:

 

class de Produtos

 

protected $_name = "produtos";

 

protected $_dependentTables = array( 'fotos' );

 

Aqui você fala quem depende de você, no caso a tabela fotos.

 

 

class de Fotos

 

protected $_name = "fotos";

 

A classe fotos precisa do id do produto para poder gravar alguma coisa, então:

 

protected $_referenceMap = array( array( 'refTableClass' => 'Produtos', 'refColumns' => 'id', 'columns' => 'prod_id' ) );

 

fazendo a leitura ficaria mais ou menos assim:

 

eu preciso de um prod_id para poder gravar na minha tabela, que faz referencia da tabela de classe chamada produtos e a coluna referente e id.

 

 

Depois, feito a codificação das dependências e referências, você pode fazer suas buscas la pela view ou no controller!

 

Se não souber como fazer isso, posta o codigo ai que eu te ajudo...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Na view como criar um foreach para listar os dados e as imagens?

Compartilhar este post


Link para o post
Compartilhar em outros sites

se não me engano antes você tem que fazer isso pelo proprio banco...

criar um index (indice) para o seu campo prod_id

 

ai você cria uma "chave estrangeira" para o mesmo...

 

eu quando vou relacionar faço desse modo:

 

ALTER TABLE NOMEDATABELA ADD INDEX (prod_id);

 

 

ALTER TABLE NOMEDATABELA ADD FOREIGN KEY (prod_id) REFERENCES NOMEDOBANCO.NOMEDATABELA(IDDATABELA) ON DELETE CASCADE ON UPDATE CASCADE;

 

ai tem que ver o que você vai querer fazer... on update cascade, on delete cascade...

 

esses sao os comandos pro console, pode fazer pelo modo grafico com mysql-front.. é mais simples sei la

espero ter ajudado

=)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Consegui da seguinte forma:

 

IndexController

public function indexAction()
		{
			$produtos = new Produtos();
			$this->view->produtos = $produtos->fetchAll();
			
			$fotos = new Fotos();
			$rowset = $fotos->fetchAll();
			$this->view->rowsetArray = $rowset->toArray();
			
			$this->render();
		}

view index.phtml

<table border="1">
<?php
	$counter = 1;
	foreach($this->produtos as $produto){
		if ($counter % 2 != 0)
		{
			echo $counter == 1 ? '<tr>' : '</tr><tr>';
		}
?>
	<td id="product_box">
		<?=$this->escape($this->rowsetArray[$produto->id]['foto'])?><br>
		<?=$this->escape($produto->nome)?><br>
		<?=$this->escape($produto->valor)?>
	</td>	
<?php
		$counter++;
	}
?>
</table>

http://forum.imasters.com.br/public/style_emoticons/default/joia.gif http://forum.imasters.com.br/public/style_emoticons/default/graduated.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

E ai Rodrigo o que postei não resolveu seu problema, ja que estava com a mesma duvida?

Compartilhar este post


Link para o post
Compartilhar em outros sites

pra usar o zend pra relacionamento de tabelas.. você usa findDependentRowset( "TABELA DEPENDENTE" ) e da um forech e se for uma referenceMap usa findParentRow( "TABELA REFERENTE" )->O CAMPO Q você QUER TRAZER

 

exemplo usando essa tabela de foto e produto:

 

eu tenho minha view que exibe o produto, ai preciso exibir a foto desse produto, como eu tenho uma uma dependentTables na minha model de Produtos eu posso falar na minha view:

 

foreach( $this->produto->findDependentRowset( "Fotos" ) as $fotos )

{

$foto->img;

}

 

mais ou menos assim.

 

espero ter ajudado...

Compartilhar este post


Link para o post
Compartilhar em outros sites

beleza estou conseguindo exibir as imagens dos produtos usando o relacionamento...

Agora o seguinte como posso exibir da seguinte forma:

 

Imagen_prod_01.jpg Imagen_prod_02.jpg

Nome do produto 01 Nome do produto 02

 

etc...

Compartilhar este post


Link para o post
Compartilhar em outros sites

crio um foreach dentro desse outro foreach?

E como chamar apenas a primeira imagem de cada produto???

Compartilhar este post


Link para o post
Compartilhar em outros sites

Por favor, alguém poderia me ajudar, ainda não consegui resolver e meu projeto esta parado desde então....

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.