Ir para o conteúdo
carvalho2707

Aplicação php para seleccionar a data

Mensagens Recomendadas

carvalho2707    0
carvalho2707

boas,

tenho uma BD com duas entidades

create table Data(
dia integer,
mes VARCHAR(45),
ano integer,
constraint c2 primary key (dia, mes, ano));

create table Disponivel(
nomeA VARCHAR(80),
nomeR VARCHAR(80),
dia integer,
mes VARCHAR(45),
ano integer,
constraint c3 primary key(nomeA,nomeR,dia,mes,ano),
foreign key(nomeA) references Prato(nomeA),
foreign key(nomeR) references Restaurante(nomeR),
foreign key(dia, mes, ano) references Data(dia,mes,ano));

na minha aplicação estou a tentar seleccionar o nome do restaurante e a data a que quero disponibilizar um prato.. mas como seleciono a data visto que tem 3 campos?

o que eu tentei foi isto:

*Data:
  <select name="data">
  <?php
 try
 {
 $host = "xxxx";
 $user ="xxxx";
 $password = "xxx";
 $dbname = $user;
 $db = new PDO("mysql:host=$host;dbname=$dbname", $user, $password);
 $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
 $sql = "SELECT * FROM Data;";
 $result = $db->query($sql);
 foreach($result as $row)
 {
 $dia = $row['dia'];
 $mes = $row['mes'];
 $ano = $row['ano'];
 echo("<option value=\"$dia $mes $ano\">$dia - $mes - $ano</option>\n");

 }
 $db = null;
 }
 catch (PDOException $e)
 {
 echo("<p>ERROR: {$e->getMessage()}</p>");
 }
  ?>

  </select>

e depois noutro ficheiro para tratar o submit

<html>
<body>
<?php
$nomeA = $_REQUEST['nomeA'];
$nomeR = $_REQUEST['nomeR'];
$dia = $_REQUEST['dia'];
$mes = $_REQUEST['mes'];
$ano = $_REQUEST['ano'];
try
{
$host = "xxxxx";
$user ="xxxxx";
$password = "xxxx";
$dbname = $user;
$db = new PDO("mysql:host=$host;dbname=$dbname", $user, $password);
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$sql = "INSERT INTO Disponivel VALUES ('$nomeA', '$nomeR',$dia,'$mes',$ano);";
echo("<p>$sql</p>");
$db->query($sql);
$db = null;
}
catch (PDOException $e)
{
echo("<p>ERROR: {$e->getMessage()}</p>");
}
?>
</body>
</html>

alguem me consegue explicar o que esta mal?

desculpem se pus demasiado codigo, mas achei que era o necessario :P

Editado por carvalho2707

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
HappyHippyHippo    1140
HappyHippyHippo

sem entrar por caminhos de explicar que existem tipos de dados em mysql para esse tipo de coisas, eu não percebo a dúvida já que existe uma relação directa entre os campos da tabela e os campos do request do PHP ...

Editado por HappyHippyHippo

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

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
carvalho2707    0
carvalho2707

sem entrar por caminhos de explicar que existem tipos de dados em mysql para esse tipo de coisas, eu não percebo a dúvida já que existe uma replação directa entre os campos da tabela e os campos do request do PHP ...

não percebi a tua resposta.. So queria perceber o que estou a fazer mal, ninguem me ensinou isto e então fui lendo coisas mas não percebi esta parte

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
carvalho2707    0
carvalho2707

quero adicionar um prato a' tabela dos disponiveis num restaurante.

consigo seleccionar o prato, o restaurante mas na data nao sei como o fazer

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
HappyHippyHippo    1140
HappyHippyHippo

tens de ser mais claro naquilo que pretendes porque de outra forma, como já deves ter reparado, ninguém vai conseguir responder.

não sabes fazer algo ? o que não sabes fazer ?

não consegues fazer algo ? o que não consegues fazer ? porquê ?

o que fizeste está a dar erro ? que erro está a dar ?


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

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
carvalho2707    0
carvalho2707

desculpem se não fui claro, mas pensava que o estava a ser.

eu quero criar uma aplicação php para disponibilizar um prato, num determinado restaurante numa determinada data, ou seja inserir uma nova entrada na tabela disponivel.

Nota: a data esta definida em cima.

O meu problema está em como fazer para o utilizador escolher a data, uma vez que é constituida por 3 campos.

O que fiz mostra a data no ecra :

$dia = $row['dia'];
	 $mes = $row['mes'];
	 $ano = $row['ano'];
	 echo("<option value=\"$dia $mes $ano\">$dia - $mes - $ano</option>\n");

mas quando faço submit ele nao me separa os campos : a resposta do servidor é

INSERT INTO Disponivel VALUES ('Abacate', 'El Gordo',,'',);

fui mais claro?

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
HappyHippyHippo    1140
HappyHippyHippo

estas a enviar um parâmetro com o nome "data" é isso que esta'definido no "select"

necessitas de criar o valor de uma forma mais inteligente e, ao receber. "partir" esse valor de maneira a obteres os valores que pretendes

// o valor da opção de forma inteligente : formato de data
echo("<option value='$ano/$mes/$dia'>$dia - $mes - $ano</option>\n");

// ler/interpretar/partir o valor recebido
$dia = date("d", strtotime($_REQUEST['data']));
$mes = date("m", strtotime($_REQUEST['data']));
$ano = date("Y", strtotime($_REQUEST['data']));


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

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
carvalho2707    0
carvalho2707

estas a enviar um parâmetro com o nome "data" é isso que esta'definido no "select"

necessitas de criar o valor de uma forma mais inteligente e, ao receber. "partir" esse valor de maneira a obteres os valores que pretendes

// o valor da opção de forma inteligente : formato de data
echo("<option value='$ano/$mes/$dia'>$dia - $mes - $ano</option>\n");

// ler/interpretar/partir o valor recebido
$dia = date("d", strtotime($_REQUEST['data']));
$mes = date("m", strtotime($_REQUEST['data']));
$ano = date("Y", strtotime($_REQUEST['data']));

no submit então ele parte o date consoante encontra d, m,ou y certo?

INSERT INTO Disponivel VALUES ('Abacate','El Gordo',01,'01',1970);

EDIT: estranho, ja está a aparecer a data certa. tens alguma explicação para ter aparecido essa data?

Editado por Rui Carlos

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora


×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.