• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

Umbus

option + base de dados

22 mensagens neste tópico

tenho uma base de dados que tem os seguintes dados:

id | Cidade | preco

1 | velha | 80

2 | lobo | 50

Agora eu tenho o select assim:

<select name="select" size="1">

    <option>Velha</option>

    <option>Lobo</option>

O que pretendo e que o valor de obo seja os 50€ e o valor de velha seja os 80€ tal como diz na base de dados, ja andei a matutar, mas so consigo fazer com que fique so 1 valor (o da velha). Podem-me ajudar?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Vê a documentação do W3C (http://www.w3c.org) sobre o HTML.

A tag <option> pode ter um value, podes lá colocar o valor monetário ou o o id da tabela.

<option value="1">Velha</option>

ou

<option value="50">Lobo</option>

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

eu sei, o problema e ligar ela ao mysql :S. Porque se eu quero por exemplo o lobo, tenho que dizer que quero o preço do id 2, e isso que nao sei fazer no value :S

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Não estou a perceber a tua dúvida...

A ver se mesmo sem a perceber te consigo ajudar. Tipicamente, numa web app, usa-se o seguinte ciclo:

1. Recuperação de informação da BD, com selects às tabelas;

2. Cálculos necessário ao nível da lógica de negócio;

3. Desenho da página com a informação recuperada e calculada;

4. Submissão de informação para o servidor a partir da página;

5. Actualização de informação na BD com inserts e updates;

Transcrevendo isto para o teu caso:

- no ponto 3, tens de desenhar os <options> com value=id dos registos

- no ponto 4, recebes a informação do select com o id da opção escolhida pelo utilizador

- no ponto 5, agarras no id recebido do select, fazes a query à db para saberes a informação relativa ao id escolhido pelo utilizador

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Percebi :thumbsup:. Agora o que nao sei e fazer com que o id seja 1, ou 2... que codigo tenho que fazer para isso, eu usava isto, mas so me da um resultado :S

<?php echo $row->id; ?>

E ja agora depois como faço para recolher a informação do preço e por exemplo aparecer na pagina assim que o suposto utilizador carrega na cidade?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Percebi :thumbsup:. Agora o que nao sei e fazer com que o id seja 1, ou 2... que codigo tenho que fazer para isso, eu usava isto, mas so me da um resultado :S

<?php echo $row->id; ?>

Tens de iterar por todos os registos do cursor e fazer (algo como)

<?php

echo "<option value=\"";

echo $row->id;

echo "\"/>";

echo $row->nome;

echo "<\option>";

?>

em cada registo.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

M6, que confusão. :thumbsup:

<?php
echo '<option value="';
echo $row->id;
echo '">';
echo $row->nome;
echo '</option>';
?>

(Faz-me confusão usar \ para escapar coisas quando basta usar plicas, e tinhas o fecho da tag mal (primeiro meteste self-closing e depois metestes a / ao contrário).)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Ou seja ai por exemplo no exemplo do lobo colocava

<?php
echo '<option value="';
echo $row->1;
echo '">';
echo $row->nome;
echo '</option>';
?>

Agora tenho um problema, eu tenho duas tabelas como faço para ele ir a tabela certa (ex: tabela cidades tabela aldeias)?

E acabaram-me por não me dizer como colocava dependendo da escolha do utilizador o preco (num echo) (mal ele clicasse na cidade que queria aparecia aotomaticamente o preço)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

<?php
include('conexao/config.php');//ficheiro de conexao a BD

$consultacidade = mysql_query('SELECT id, cidade, preco  FROM cidades ORDER BY cidade ASC');//faz a consulta na bd dos campos que queres

?>
<table width="800" border="0" cellspacing="0" cellpadding="0" align="center">
  <tr><td><table width="800" border="0" cellspacing="0" cellpadding="0" bgcolor="#999aaa">
  <tr>
    <td height="41">Adicionar Filme </td>
  </tr>
</table>
</td></tr><tr><form name="form" method="post" action="adicionar.php">
      <?php 

 echo '<select name="genero">';
 while($linha = mysql_fetch_assoc($consultacidade))
 {
 	echo '<option value="'.$linha['id'].'">'.$linha['cidade'].''.$linha['preco'].'</option>';

 }
 echo '</select>';	
 //o codigo a cima mostra os valores id-cidade-preco
 ?>
      <input name="Novo" type="submit" id="Novo" value="Novo" />
      </label></td>
  </form>
  </tr>
</table>

espero ter ajudao ate pus algum codigo html para saberes onde por :thumbsup:

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

So existe um problema XD. E que quando eu clico na opçao so aparece a cidade. E o preco aparece mais a baixo a parte (fora do select :thumbsup:).

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

<?php
include('conexao/config.php');//ficheiro de conexao a BD

$consultacidade = mysql_query('SELECT id, cidade, preco  FROM cidades ORDER BY cidade ASC');//faz a consulta na bd dos campos que queres

?>
<table width="800" border="0" cellspacing="0" cellpadding="0" align="center">
  <tr><td><table width="800" border="0" cellspacing="0" cellpadding="0" bgcolor="#999aaa">
  <tr>
    <td height="41">Adicionar Filme </td>
  </tr>
</table>
</td></tr><tr><form name="form" method="post" action="adicionar.php">
      <?php 

 echo '<select name="genero">';
 while(mysql_fetch_assoc($consultacidade))
 {
$preco = $_GET['preco'];
$id = $_GET['id'];
$cidade = $_GET['cidade'];
 	echo '<option value="'.$id.'">'.$id.':'.$cidade.':'.$preco.'</option>';

 }
 echo '</select>';	
 //o codigo a cima mostra os valores id-cidade-preco
 ?>
      <input name="Novo" type="submit" id="Novo" value="Novo" />
      </label></td>
  </form>
  </tr>
</table>

ve agora assim

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Ele nao me acha a tabela nao sei porque:

E acrescentei:

$result = @mysql_query($consultacidade, $ligar) or die("Erro: " . mysql_error());

Agora tenho um erro "Erro: Query was empty"

Edit: antes que me perguntem o config esta certo e a tabela certa, apenas nao me achou dados...

Como tinhas ele dava o segunte codigo (entao esprimntei colocar uma virgula antes do ASC:

Erro: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'Resource id #4' at line 1

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Ele acha que teno 2 dados na base de dados, mas nao coloca dentro do codigo so fica os ::: :thumbsup:

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Antes dessa linha do teu último post, mete var_dump($consultacidade); e mete aqui o resultado.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

SELECT id, local, preco FROM cidade WHERE 1 ORDER BY local ASC

Nem sei se o where é obrigatório... mas... não custa experimentares

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Se a sugestão do pedrotuga não der, mostra aí uma screenshot do phpMyAdmin da tabela cidade (conteúdo).

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

string(72) "SELECT id, LOCAL, preco FROM cidade WHERE 1 ORDER BY LOCAL ASC"

Base de dados:

-- Estrutura da tabela `cidade`

--

CREATE TABLE `cidade` (

  `id` int(10) unsigned NOT NULL auto_increment,

  `local` varchar(40) NOT NULL,

  `preco` int(30) NOT NULL,

  PRIMARY KEY  (`id`)

) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=31 ;

--

-- Extraindo dados da tabela `cidade`

--

INSERT INTO `cidade` (`id`, `local`, `preco`) VALUES

(1, 'toto', 30),

(2, 'afsas', 41),

(3, 'fdsfsdf', 60);

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Olha ja consegui nao e preciso perder mais tempo:

         

echo '<select name="Cidade">';
        for ($i=0; $i <$nregistos; $i++) {
        $registo = mysql_fetch_assoc($result);
        echo '<option value="'.$registo['preco'].'">'.$registo['local'].'</option>';
        }
        echo '<</select>';

Agora tenho uma duvida, como faço para ir buscar os dados do preço por exemplo mas com o ip certo. Por exemplo eu supunha que nao queria mudar a cidade e sabia que:

<option>Velha</option>
<option>Lobo</option>

Agora queria por o valor

value="'.$registo[preco'].'"

, com o ip certo, ou seja "value= o preço do id 2"

0

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