Jump to content
flavio_jeronimo

[resolvido]selecionar registos de um determinado campo e metelos num combobox

Recommended Posts

flavio_jeronimo

Bom dia a todos, gostaria que esclarecessem como posso fazer uma query na minha base de dados e dps nessa query selecionar determinado campo e usar os registos desse campo numa combo box.

O meu codigo e o seguinte mas nao estou bem orientado:

<?php 

$host="000webhost.com"; // Nome do Host 
$username="Flavio"; // Mysql username
$password="blabla"; // Mysql password
$db_name="Jeronim"; // nome da Database 
$tbl_name="cinema"; // nome da tabela

// Conecta ao server e seleciona a database.

mysql_connect("$host", "$username", "$password")or die("cannot connect");
mysql_select_db("$db_name")or die("cannot select DB");


$spec = stripslashes($spec);
$spec = mysql_real_escape_string($spec);
/$result = mysql_query ( "SELECT nomedoespetaculo='$spec' FROM $tbl_name ");
or die(mysql_error());


?>
<select size="1" name="D1">
<option selected value="Selecione">Espetaculos</option>
<option value=""><></option>

</select>

Share this post


Link to post
Share on other sites
herty

Para isso tens de fazer uma query a BD, verificas o numero de linhas/registos

da tabela, obtens os dados e fazes um ciclo pelo numero de linhas/registos da tabela que verificas-te.

Um exemplo:

depois da conexão efectuada...

<?php
$res=mysql_query(query);
$num=mysql_num_rows($res);
?>
<select size="1" name="D1">
<option selected value="Selecione">Espetaculos</option>

<?php
for ($i=0;$i<$num;$i++){?>
$data=mysql_fetch_array($res);
<option value="<?php echo $i; ?>">
<?php echo $data['coluna_da_tabela']; ?></option>
<?php
}
?>
</select>

Share this post


Link to post
Share on other sites
ruimcosta

Ou, seguindo outra via, em que não precisas de saber qts registos tens, bastando validar que pelo menos tem um:

<?php
$res=mysql_query(query);
$num=mysql_num_rows($res);
?>
<select size="1" name="D1">
<option selected value="Selecione">Espetaculos</option>

<?php
if( $num > 0 ){
     while( $data=mysql_fetch_array($res) ){
            echo '<option value="'.$data['teu_id'].'">'.$data['coluna_da_tabela'].'</option>'."\r\n";
     }
?>

</select>


Abraços e beijinhos,Rui Costa

Share this post


Link to post
Share on other sites
flavio_jeronimo

Boas noites eu usei o codigo que o herty postou pois achei que era o codigo que se adequava melhor ao que eu precisava.

Após me ter deparado com alguns problemas como o seguinte código estar mal posicionado:

$data=mysql_fetch_array($res);

e esta expressão não funcionar:

$res=mysql_query(query);

Alterei  o código da seguinte forma:

<?php 

$host="000webhost.com"; // Nome do Host
$username="Flavio"; // Mysql username
$password="blabla"; // Mysql password
$db_name="Jeronim"; // nome da Database
$tbl_name="cinema"; // nome da tabela

// Conecta ao server e seleciona a database.

mysql_connect("$host", "$username", "$password")or die("cannot connect");
mysql_select_db("$db_name")or die("cannot select DB");
?>

<?php

$res = mysql_query ("SELECT nomedoespetaculo FROM cinema ");
$num=mysql_num_rows($res);
$data =mysql_fetch_array($res);
?>
<select size="1" name="D1">
<option selected value="Selecione">Espetaculos</option>

<?php
for ($i=0;$i<$num;$i++){?>
<option  value="<?php echo $i;?>">
<?php echo $data['nomedoespetaculo']; ?></option>
<?php
}
?>
</select>

O problema agora é que o combobox funciona, e aparecem os 2 registos, só que na minha base de dados os 2 registos daquele campo são diferentes e na combobox, aparece o primeiro registo 2 vezes em vez de aparecer o primeiro e segundo registo.

Como podem  testar: http://projecto.net84.net/site/index.php?pag=espetaculos

obrigado e boas festas

Share this post


Link to post
Share on other sites
ruimcosta

Ao colocares esta linha $data =mysql_fetch_array($res); fora do ciclo, so te retorna o 1º registo seleccionado. Se tivesses utilizado o meu exemplo ja não terias esse problema.

Ate ja.


Abraços e beijinhos,Rui Costa

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.