Jump to content


Photo

Dúvida No Select


  • Faça o login para participar
3 replies to this topic

#1 Falci

Falci

    12 Horas

  • Usuários
  • 187 posts
  • Sexo:Masculino
  • Localidade:Brasil

Posted 22/07/2008, 08:18

Nem sei se tem como fazer isso.

Mas imagine um sistema de reservas de equipamentos.. (tv, dvd, vhs, datashow,pc)

aih tem a tabela "reservas" (id,para,data_retirada,data_devolucao)
e a tabela "itens_reserva" (id,id_reserva,id_equipamento)

não tem limite para a quantidade de equipamentos por reserva, mas geralmente fica em 2 equipamentos por reserva..

tem como fazer um select para mostrar todas as reservas do dia, e os respectivos equipamentos:

ID |  Para  | Equipamentos		|  Periodo
--------------------------------------------
 1 |  Falci | TV + DVD			| 22/07/08 das 10:00 as 12:00
 2 |   Zé   | DS + PC			 | 23/07/08 das 19:00 as 21:30

A dúvida é como fazer a coluna "equipamentos" do exemplo acima...
<?php /* falci at Falci.me */

$naoAcrediroQueEuFizUmaVariavelTaoGrandeSoParaGuardarUmTres = 3;
?>

#2 boirock

boirock

    Tecnologia para todos (agora hexa campeão)

  • Usuários
  • 1559 posts
  • Sexo:Masculino
  • Localidade:Curitiba - PR
  • Interesses:PostgreSQL - PHP

Posted 22/07/2008, 09:27

Falci... é a mesma situação que discutimos aqui uns dias atrás com o seu ranking.
Tem como fazer sim... com STORED PROCEDURE!
Com query normal e pura não (pelo menos eu não vejo como), porque para isso você precisaria de um LOOP em cada tupla para montar os equipamentos... e nem com sub-select você consegue isso.

A maneira mais correta e fácil que eu encontrei pra resolver essas situações é retornar um equipamento em cada linha (mesmo com os outros dados repetindo) e ordenados pelo ID, por exemplo...
Aí no front-end (PHP, por exemplo), você pode controlar pela repetição do ID... acho que você entendeu, mas se quiser eu posto um código de exemplo aqui... blz? (y)

#3 Falci

Falci

    12 Horas

  • Usuários
  • 187 posts
  • Sexo:Masculino
  • Localidade:Brasil

Posted 22/07/2008, 10:15

ok..

Antes de tentar aki, eu faço os meus teste..

Por esquanto está assim:
$res   = SQL("SELECT id,nome,date_format(dh_ret,'%H:%i') ret,date_format(dh_dev,'%H:%i') dev,status FROM reservas WHERE DATE(dh_ret)='$data' ORDER BY dh_ret DESC");
	 $total = count($res);
	 
	 for($x=0; $x<$total; $x++){
	 
		$sql = SQL("SELECT itens.abrev
					  FROM itens, itensreserva
					 WHERE itensreserva.id_reserva=".$res[$x][0]."
					   AND itensreserva.id_item=itens.id");

		$itens = Array();
		foreach($sql as $v)
		   $itens[] = $v[0];
		$itens = implode(" + ",$itens);
SQL($sql) retorna um array bi-dimensional de $sql: $r[tupla][atributo]

Obrigado pela resposta .. ^^
<?php /* falci at Falci.me */

$naoAcrediroQueEuFizUmaVariavelTaoGrandeSoParaGuardarUmTres = 3;
?>

#4 RonsisM

RonsisM

    Super Veterano

  • Usuários
  • 15724 posts
  • Sexo:Masculino
  • Localidade:Plovdiv

Posted 25/09/2017, 18:15

Forum Gel Kamagra Buy Abilify Buy Misporstol 200 Pills cialis Propecia To Regrow Eyebrows Oct Products Similiar To Lasix




0 user(s) are reading this topic

0 membro(s), 0 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq