Ir para conteúdo
Fórum Script Brasil
  • 0

Como Retornar A Pesquisa Com Array


MSGeek

Pergunta

Tenho q pesquisar numa tabela (EMPRESTIMO) os livros emprestados para a matrícula do aluno e retorna o tombo do livro (tombo.EMPRESTIMO).

Em outra tabela (LIVROS) eu preciso pegar o tombo do livro (tombo.LIVROS) e exibir o NOME e AUTOR.

Entaum fica: tombo.EMPRESTIMO = tombo.LIVROS.

Blza. Retorna o livro q está emprestado pra determinada matrícula, mas só o primeiro livro. Por exemplo, se eu tiver 5 livros na tabela EMPRÉSTIMO ele só retorna o 1º livro. Se eu apagar o 1º livro, ele retorna o 2º livro e assim por diante... não retorna todos q estaum na tabela!!!

Será q deu pra entender?

Como fazer pra exibir todos os livros emprestados para determinada matrícula?

Aew vai o código inteiro:

<?php

// inicia a sessão

session_start();

// estabelece a conexão

require "conecta.php";

// seleciona da tabela emprestimo matricula=20202458

$c = "SELECT * FROM emprestimo WHERE matricula='20202458'";

// se falhar, exibe mensagem

$r = @mysql_query($c,$con) or die ("Erro na seleção emprestimo");

// cria um array com o resultado

$q = @mysql_fetch_array($r);

// cria a tabela

echo "<p align='center'><b><font face='Verdana' size='5'>LIVROS EMPRESTADOS</font></b></p>";

echo "<center><table>

<tr>

<td width='120' bgcolor='#DADADA'><b><font face='Verdana' size='3'>Codigo</font></b></td>

<td width='350' bgcolor='#DADADA'><b><font face='Verdana' size='3'>Nome da Conta</font></b></td>

</tr>";

// recebe o que está no array

$tombo = $q['tombo'];

$data_empr = $q['data_empr'];

$data_prev = $q['data_prev'];

// seleciona da tabela livro tombo=$tombo

$c2 = "SELECT * FROM livro WHERE tombo=$tombo'";

// se falhar, exibe mensagem

$r2 = @mysql_query($c2,$con) or die ("Erro na seleção livro");

//atribui variáveis para o laço

$aux = 0;

$cor=0;

// cria um array com o resultado enquanto < $aux

while ($aux < mysql_num_rows($r2)) {

$q2 = @mysql_fetch_array($r2);

// recebe o que está no array

$nome = $q2['nome];

$autor = $q2['autor'];

if((bcmod($cor,2))==0) {

echo "<tr>

<td width='120' bgcolor='F0F0F0'><font face='Arial' size='2'>$nome</font></td>

<td width='350' bgcolor='F0F0F0'><font face='Arial' size='2'>$autor</font></td>

</tr>";

} else{

echo "<tr>

<td width='120'><font face='Arial' size='2'>$nome</font></td>

<td width='350'><font face='Arial' size='2'>$autor</font></td>

</tr>";

}

$cor=$cor+1;

$aux=$aux+1;

}

echo "</table></center>";

?>

Por favor me ajudem!!!

T+ galera,

Link para o comentário
Compartilhar em outros sites

6 respostass a esta questão

Posts Recomendados

  • 0

se voce der um print_r($r) e print_r($r2) o que ele mostra??/ os valores estão certos??

tenta faze um loop com a primeira consulta...dai dentro dessa você coloca um loop pra mostra os tombos....

tenta por isso no final do loop

$q2 = @mysql_fetch_array($r2);

que mais...

naumvi a necessidade de ter uam var $aux pra contar os registros.. você não precisa fazer essa comparação..

o que eu achei estranho é a forma comom você faz o loop.. você coloca um mysql_num_rows pra executa o loop.. na hora de exibir os dados faz um fetch_array... seirlá.. eu uso a mesma coisa pros doisi... bom enfim.. coloca teu codigo com o negocinho do php [ php] e [/ php] fica mais facild e ler o codigo e entender... tongue.gif

tentae.. na verdade nau entendi direito seu problema.. se tiver erado me avise...

mas antes tente o que eu falei...

Link para o comentário
Compartilhar em outros sites

  • 0

Cara você so vai resolver seu prb relacionando as tabelas...

você quer que ele mostre os cadastros dos livros emprestados.. certo...

so que na segunda query... ele faz busca condicionada a primeira linha do tombo da primeria busca.. então

Seo cara matricula -- tem 10 livros tomados emprestados... quando você recupera os valores do banco

$tombo = $q['tombo'];

quando ele faz a segunda query WHERE = $tombo.... ele coloca o valor da primeira linha.....

Não sei se tem outra forma mas acho que tu vai ter que relacionar as duas tabelas ao invés de dois Query....

Posta a estrutura das suas tabelas

Adailton

Link para o comentário
Compartilhar em outros sites

  • 0

Segue a estrutura das minhas tabelas:

#

# Estrutura da tabela `emprestimo`

#

CREATE TABLE emprestimo (

cod_empr int(10) NOT NULL auto_increment,

matricula int(8) NOT NULL default '0',

tombo varchar(5) NOT NULL default '',

data_empr varchar(10) NOT NULL default '',

data_prev varchar(10) NOT NULL default '',

data_dev varchar(10) NOT NULL default '',

PRIMARY KEY (cod_empr)

) TYPE=MyISAM;

#

# Extraindo dados da tabela `emprestimo`

#

INSERT INTO emprestimo VALUES (1, 20202458, '88888', '25/05/2005', '31/05/2005', '');

INSERT INTO emprestimo VALUES (2, 20202458, '12345', '2005-11-02', '2005-12-01', '');

# --------------------------------------------------------

#

# Estrutura da tabela `livro`

#

CREATE TABLE livro (

tombo varchar(5) NOT NULL default '',

nome varchar(50) NOT NULL default '',

autor varchar(50) NOT NULL default '',

PRIMARY KEY (tombo)

) TYPE=MyISAM;

#

# Extraindo dados da tabela `livro`

#

INSERT INTO livro VALUES ('88888', 'Livro de PHP - Aprendendo', 'Qualquer cara bom');

INSERT INTO livro VALUES ('12345', 'Livro qualquer de teste', 'autor qualquer de teste');

# --------------------------------------------------------

ME AJUDEM!!!! POR FAVOR...

Link para o comentário
Compartilhar em outros sites

  • 0

tenta usar a função direto cara no loop, ao invés de interagir com outra var... aqui uma vez tinha algo parecido e resolvi assim...

while($q=mysql_fetch_array($r))//a mysql_fetch_array retorna false quando n tme mais nada

verifica se ele está executando o laço... da um echo $cor ali, já que a tua cor é um contador... dae tu vai ver alista de zero até o número total de livros... se aparecer isso é porque tah certo, se aparecer um só, ae o bicho pegou...

quanto as query`s, procura no manual por JOIN ou UNION (n lembro certo heheh mas é uma das duas haiha), aqui na sb tb tem... é pra juntar dois selects

ve se isso te ajuda

Link para o comentário
Compartilhar em outros sites

  • 0

Galera, resolvi o prbl... (fiz um laço dentro de outro)

só q a pg. demora pra carregar (ficou lento d+).

O q pode ser?

O código ficou assim:

<?php

// estabelece a conexão

require "conecta.php";

$matricula = "20202458";

// seleciona da tabela usuario matricula=$matricula

$c = "SELECT * FROM emprestimo WHERE matricula='$matricula' AND data_dev=''";

// se falhar, exibe mensagem

$r = @mysql_query($c,$con) or die ("Erro na seleção emprestimo");

$aux = 0;

while ($aux < mysql_num_rows($r)){

// cria um array com o resultado

$q = @mysql_fetch_array($r);

// recebe o que está no array

$tombo = $q['tombo'];

//pesquisa na tabela livro o tombo=$tombo;

$clivro = "SELECT * FROM livro WHERE tombo=$tombo'";

// se falhar, exibe mensagem

$rlivro = @mysql_query($clivro,$con) or die ("Erro na seleção livro");

$aux = 0;

while ($aux < mysql_num_rows($rlivro)){

// cria um array com o resultado

$qlivro = @mysql_fetch_array($rlivro);

// recebe o que está no array

$nome = $qlivro['nome];

$autor = $qlivro['autor'];

echo "$nome<BR>";

echo "$autor<BR>";

$aux=$aux+1;

}

$aux=$aux+1;

}

?>

Valeu galera!!!

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...