Jump to content
PlayMa256

Problema montar tabela com php+consulta

Recommended Posts

PlayMa256

to tentando fazer um sistema de reserva de salas mas nao estou conseguindo.

na tabela salas tenho

o id, nome da sala, status e o horario

na tabela horarios tenho

o id, e a hora em si(que é 13:00..etc)

e quero montar algo assim:

24fe1xw.png

mas só consigo a primeira coluna preenchido com a hora.

tenho isto de codigo:

<?php require("config.php");?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<title>Index</title>
<link rel="stylesheet" type="text/css" href="">
</head>
<body>
<table border="1">




		 <?php

			 echo '<tr>';
		 echo '<td>Horarios</td>';

			 $sql = mysql_query("SELECT * FROM salas"); while($res = mysql_fetch_array($sql)){

		 echo '


			 <td>'.$res['nome'].'</td>
		 </tr>


		 ';










}?>



</table>


</body>
</html>

nao sei onde posso enfiar a pesquisa da hora, pra que fique certinho.

Share this post


Link to post
Share on other sites
Jorge Murta

Viva,

Se for uma coisa básica até podes usar uma só tabela com 3 campos (id : int , sala : varchar , horarios: text ), sendo este ultimo um campo com data JSON.

{"NomeDaSala":"Sala 1","Horario":[1,1,0,1,0,1,1,1,1,0,1]}
{"NomeDaSala":"Sala 2","Horario":[0,1,0,1,0,1,1,1,1,0,1]}
{"NomeDaSala":"Sala 3","Horario":[0,1,0,1,0,1,1,1,1,0,1]}

Depois podes preencher um array com os horarios para poderes fazer o foreach

// Intervalo das 8:00 as 18:00
$horarios = range(8,18);

O meu exemplo com arrays no PasteBin: http://pastebin.com/f0sybyxp

Sou novo aqui, não sei quais vão ser as opiniões dos outros membros mas esta é a minha sugestão.

Cumprimentos,

Edited by Jorge Murta

Share this post


Link to post
Share on other sites
NunoDinis

Põe o código bem identado e com a code (=PHP).

$res = mysql_query("query");	
$total = mysql_num_rows($res);
for($i=0; $i<$total; $i++)
{
$dados = mysql_fetch_row($res);
$nome = $dados[0];
}

Adapta à tua tabela.

(Vou partir do pressuposto que tens as tags HTML direitas.)

Edited by NunoDinis

Estranha forma de vida que tem a capacidade de transformar comandos em mensagens de erro.

ndsotware.org

Share this post


Link to post
Share on other sites
PlayMa256

Viva,

Se for uma coisa básica até podes usar uma só tabela com 3 campos (id : int , sala : varchar , horarios: text ), sendo este ultimo um campo com data JSON.

{"NomeDaSala":"Sala 1","Horario":[1,1,0,1,0,1,1,1,1,0,1]}
{"NomeDaSala":"Sala 2","Horario":[0,1,0,1,0,1,1,1,1,0,1]}
{"NomeDaSala":"Sala 3","Horario":[0,1,0,1,0,1,1,1,1,0,1]}

Depois podes preencher um array com os horarios para poderes fazer o foreach

// Intervalo das 8:00 as 18:00
$horarios = range(8,18);

O meu exemplo com arrays no PasteBin: http://pastebin.com/f0sybyxp

Sou novo aqui, não sei quais vão ser as opiniões dos outros membros mas esta é a minha sugestão.

Cumprimentos,

até entendi o que quer fazer, mas precisaria de uma integração com banco de dados nisso.

preciso trazer dinamicamente as salas de aula, e na hora de montar o link ele vai ir para uma outra pagina com o id da sala e a hora para que eu possa trazer outras informaçoes do banco de dados, preciso ver se aquela sala ta com status 1 ou 0, e se tiver com status 1, aparecer que ja foi reservada.

nao sei se deu para entender.

obrigado.

###Atualizando####

tentei fazer umas coisas aqui com a ideia do Nuno e cheguei a algo que funcionou, mas precisei repetir demais o mesmo codigo, queria saber se tem alguma outra forma de fazer sem repetir demasiadamente o mesmo codigo.

<?php require("config.php");?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
   <title>Index</title>
   <link rel="stylesheet" type="text/css" href="">
</head>
<body>
<table border="1">
 <thead>
   <td>Horarios</td>

   <?php
    $sql = mysql_query("SELECT * FROM salas");
    $total = mysql_num_rows($sql);

    for($i=0;$i<$total;$i++){
	  $dados = mysql_fetch_row($sql);
	  $nome = $dados[1];

	  echo '<td>'.$nome.'</td>';


    }
 ?>
 </thead>

 <?php $sql2 = mysql_query("SELECT * FROM horarios");
   while($res = mysql_fetch_row($sql2)){
  $idHora = $res[0];
  $hora = $res[1];


  echo '<tr>';
  echo '<td>'.$hora.'</td>';

   $sql = mysql_query("SELECT * FROM salas");
    $total = mysql_num_rows($sql);
  for($i=0;$i<$total;$i++){
	  $dados = mysql_fetch_row($sql);
	  $idSala = $dados[0];
	  $nome = $dados[1];

	  echo '<td><a href="#?idsala='.$idSala.'&idhora='.$idHora.'">Reservar</a></td>';


    }


  echo '</tr>';

   }


?>

</table>


</body>
</html>

Edited by PlayMa256

Share this post


Link to post
Share on other sites
PlayMa256

e onde guardas a reserva de sala numa hora específica ?

olha, eu estava com o problema de montar a tabela em si, mas agora parece que ja resolvi(mas ainda nao sei como fazer sem ter que repetir codigo, isso pra mim é horrivel, queria uma maneira de nao precisar duplicar o codigo)

voltando a pergunta, pretendo fazer uma procura por dia (ainda nao sei como vai ser pra procurar isso) e vou guardar as informaçoes da reserva no campo data na tabela salas, la vou guardar o dia e a hora(ainda nao sei como vou fazer isso)

Share this post


Link to post
Share on other sites
HappyHippyHippo

voltando a pergunta, pretendo fazer uma procura por dia (ainda nao sei como vai ser pra procurar isso) e vou guardar as informaçoes da reserva no campo data na tabela salas, la vou guardar o dia e a hora(ainda nao sei como vou fazer isso)

enquanto não sabes como fazer isso, esquece o PHP e como apresentar o que ainda não existe


IRC : sim, é algo que ainda existe >> #p@p

Share this post


Link to post
Share on other sites
PlayMa256

enquanto não sabes como fazer isso, esquece o PHP e como apresentar o que ainda não existe

na verdade sei e nao sei, é que nao pensei direito ainda...me expressei mal.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.