Ir para conteúdo

POWERED BY:

Arquivado

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

horacio2009

array em pesquisas

Recommended Posts

boa tarde a todos!

pessoal, preciso pegar o resultado de uma query, depois, gerar uma array.

logo em seguida, eu pego essa array e lanço em outra pesquisa, selecionando apenas os códigos referentes aquela array, por exemplo, a primeira pesquisa deu 3 carros vermelhos, na segunda, vou procurar placas de todos carros vermelhos...

enfim, selecionar um resultado e aplicar o mesmo dentro de outra pesquisa,...

quero saber se tem como criar uma variável de array, para poder transportar em outras pesquisas...

vou postar uma pesquisa na qual se baseará a criação dessas array...

<?php
//$grupo=$_GET['$grupo'];
/*
function dados($grupo)
{ 
*/ 
include '../conexao.php';
$tab=mysql_query("SELECT * from reservas_grupos where relacionadoa='10232'");
$linhas=mysql_num_rows($tab);
$x="0";
for($x;$x<$linhas;$x++)
{
$codigo=mysql_result($tab,$x,'codigo');

//$info="<option value='1'>$modelo - $linhas</option>";
  //$info .= "<option value='1'>$modelo - $linhas</option>";
  echo"$codigo<br>";
}

?>
eu realmente to meio sem saber, pois nunca (acreditem, é verdade) precisei usar array...agora, preciso e não se como fazer...muito obrigado a todos!!

quem puder me ajudar, muito obrigado!

Horácio

Compartilhar este post


Link para o post
Compartilhar em outros sites

você num acha melhor passar o mesmo parametro q você usou nas pesquisas posteriores!!

 

ex:

$parametro_pesquisa = '10232';
//seleciona cor
$tab=mysql_query("SELECT cor from reservas_grupos where relacionado={$parametro_pesquisa}");
//em uma outra pagina você pode fazer a pesquisa por placa usando $parametro_pesquisa
$tab=mysql_query("SELECT placa from reservas_grupos where relacionado={$parametro_pesquisa}");

ou então explica melhor o q você ker

Compartilhar este post


Link para o post
Compartilhar em outros sites

ok, vou explicar com maiores detalhes...

eu tenho varias tabelas separadas, e cada uma contém informações especificas sobre caracteristicas dos dados.

aí, dependendo do grupo que é escolhido, existe uma quantidade x de dados, dados esses referentes a carros ( de outras tabelas)

eu quero pegar essa quantidade de dados( que eu não sei qual é)lança-los dentro de uma array e daí, usar essa array como critério de pesquisa numa proxima query...e daí,levantar determinadas classes de carros...

é isso,....qualquer dúvida, pergunte novamente, ok?

Compartilhar este post


Link para o post
Compartilhar em outros sites

inner join????

será que funciona???

pq na verdade, não sei como faria imamgine a seguinte situação:

para ver quais carros pertencem ao grupo, seleciono assim:

 

select * from tabela where grupo='10232'

 

aí, ele me fornece uma listagem de numeros pertencentes ao grupo.ok

depois, tenho que ir em outra tabela, e selecionar assim:

 

select * from codigo_reserva where codigo in(resultado da pesquisa anterior)

supondo o inner join, como faria uma pesquisa relacionada dessa maneira?

Compartilhar este post


Link para o post
Compartilhar em outros sites

você já se deu a resposta

select * from codigo_reserva where codigo in(resultado da pesquisa anterior)

 

use assim

select * from codigo_reserva where codigo in(select codigo from tabela where grupo='10232')

Compartilhar este post


Link para o post
Compartilhar em outros sites

então eu fiz da seguinte forma:

 

$tab=mysql_query("SELECT * from codigo_reserva where codigo_reserva IN (SELECT * from reservas_grupos where relacionadoa='10232')");
e deu argumento inválido...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom, o problema é na montagem na query, mas com certeza pode ser melhorado. Poste a estrutura das tabelas enquanto eu movo para o fórum de MySQL, que é onde você poderá obter uma resposta melhor.

 

Tópico Movido

PHP http://forum.imasters.com.br/public/style_emoticons/default/seta.gif MySQL

Compartilhar este post


Link para o post
Compartilhar em outros sites

errado

$tab=mysql_query("SELECT * from codigo_reserva where codigo_reserva IN (SELECT * from reservas_grupos where relacionadoa='10232')");

 

o select seu interior tem q escolher apenas o campo de comparação com codigo_reserva, você tá usando * que pega todos os campos

 

correto

$tab=mysql_query("SELECT * from codigo_reserva where codigo_reserva IN (SELECT campo_comparacao from reservas_grupos where relacionadoa='10232')");

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

bom, vamos lá

nessa tabela, eu vou pegar todos os códigos que pertecem a um determinado grupo(estou postando a estrutura)

CREATE TABLE IF NOT EXISTS `reservas_grupos` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `codigo` int(11) NOT NULL,
  `relacionadoa` int(11) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=615 ;
nessa segunda tabela, eu vou pegar os códigos da pesquisa anterior, e puxando eles, tenho o nome dos veiculos tbm...

CREATE TABLE IF NOT EXISTS `codigo_reserva` (
  `codigo_` int(11) NOT NULL AUTO_INCREMENT,
  `codigo_reserva` int(11) NOT NULL,
  `veiculo` varchar(250) NOT NULL,
  `codigo_carro` int(11) NOT NULL,
  `insercao` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
  `adquirida` int(11) NOT NULL DEFAULT '0',
  PRIMARY KEY (`codigo_`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=180 ;

ou seja, de posse dos dados da pesquisa anterior, eu levanto os códigos que cruzam daí, junto eu trago o nome dos carros, o campos são codigo_reserva e veiculo...

Compartilhar este post


Link para o post
Compartilhar em outros sites

SELECT * from codigo_reserva where codigo_reserva IN (SELECT codigo from reservas_grupos where relacionadoa='10232')
ou

SELECT c.* from codigo_reserva c inner join reservas_grupos r on c.codigo_reserva = r.codigo where r.relacionadoa='10232'

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.