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

pedrotuga

Drop down com array em PHP

25 mensagens neste tópico

Epa... estou aqui com uma ideia na cabeça, e para alem de ser ainda muito limitado em termos de código, nem sequer estoua ver uma forma facil de fazer aqui uma coisa que me parece basica.

Ora bem, tenho uma lista de nomes de pessoas numa tabela da base de dados.

Agora o objectivo é:

fazer um ciclo for em php que me pegue em todos os nomes e os ponha numa drop down de forma a utilizador poder escolher um nome. Depois de escolhido o nome o programa deve pegar no ID correspondente para poder utiliza-lo nos relacionamentos com outras tabelas.

Alguém sabe como isto se faz?

Não tenho muita pratica nisto do php... o php suporta structs ou coisa assim parecida?

tipo... por exemplo..

este código é válido?

$array[1].ID=1;
$array[1].nome="jorge sampaio";
e este?
$array[1]->ID=1;
$array[1]->nome="jorge sampaio";
Mesmo assim, podendo usar structs não estou bem a ver como contornar este problema.
0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Isso é possivel e se não me engano simples.

Não experimentei isto mas vê este codigo:

<?php
$result=mysql_query($query);
?>

<form method="POST" action="--WEBBOT-SELF--">
<p><select size="1" name="D1">
        <?php
while ( $linha= mysql_fetch_array( $tabela)){
   print '<option value="'.$linha[id].'l">'.$linha[nome].'</option>';
}?>
        </select><input type="submit" value="Submit" name="B1"><input type="reset" value="Reset" name="B2"></p>
</form>
 

Cumps

Pedantilva

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Au... claro que é possivel...

epá isto de um gajo andar a aventurar-se em php e não saber html...loooll

obrigado pedantilva.

Já agora... sabes se se podem usar structs da forma que eu exemplifiquei lá atrás? é que o query pode já ter sido feito lá p trás e posso já ter o array cheio. Assim poderei ter que usar um for em vez do while com o mysql_fetch_array.

Pode ser?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Para que precisas da struck?

Para saber a dimensão??

Para isso utilizas a função do mysql:

$num_linhas = mysql_num_rows($result);

que eu saiba, não dá para fazer como estás a dizer, mas podes sempre fazer desta forma.

Se preferires claro

$utilizador["pedrotuga"] = "15";

Não sei para que queres guardar os valores ao certo, se os queres guardar.

Queres usar só na drop-down ou é para mais alguma aplicação?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Pa.... a base de dados tem muitos relacionamentos... entre os quais muitos são de n-para-n o que gera tabelas só de relacionamentos.

Pode ser necessário guardar valores de uma tabela para a seguir inserir noutras tabelas por exemplo.

A struct serviria por exemplo para

$utilizador["pedrotuga"].nome=pedro;

$utilizador["pedrotuga"].local=coimbra;

topas?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Eu acho que o que tu precisas é apenas do ID da linha que queres. Uma unica variavel.

Depois atraves de queries vais buscar toda a informação necessária.

Tu tendo o ID(chave primaria) do utilizador podes aceder a toda a informação com uma simples query que so vai buscar uma linha.

Por exemplo:

Seleciona na drop-down um utilizador e grava o ID

dps só precisa de fazer uma query com WHERE id=$id_utilizador

Já agora tás habituado a programar em ke?

C?

Cumps

Pedantilva

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Yaps... Nesse primeiro parágrafo disseste tudo.

Basta-me a chave para ir buscar o que quiser... só estava mesmo naquela de tentar outra aproximação guardando os dados num array ao longo de um script. Mas não vale a pena inventar :)

Não tenho muita prática a programar, mas a que tenho é em C++, se bem que a porra das classes e do POO sempre me deixou um pouco céptico em relação à dimensão do projecto para o qual a POO facilita as coisas. Acho que é só mesmo para projectos grandes :)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

POO? K é isso? Algum algoritmo de resolução?

Não. POO é a sigla para Programação Orientada a Objectos. Tenho a certeza que assim já ficaste totalmente elucidado. :)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

php tambem suporta classe...  objectos...

Sim, penso que foi a partir do PHP 4 que essa funcionalidade entrou em vigor no sistema. Podemos criar classes sempre que acharmos mais conveniente, para uma melhor organização do código.

Cumps

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

epa.... isto já lá vai algum tempo... estou um pouco perro...

vamos cá ver se isto tem fundamento... death, podes dizer-me se este código está bem

class livro{
int $ano;
float $preo;
funtion mudapreco(
$preco=$preco+preco*0,1;
)
}

livro $romance;
$romance.preco=20;
$romance.ano=1999;
$romance->mudapreco;

isto funciona? ou é uma grande aberraçao?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Bem isso não funcionará por algumas razões (corrijam-me se estiver muito enganado, pois sou newb a PHP :D):

*Em PHP não se precisa de indicar o tipo das variáveis, sendo que esse int e float só estão aí a estorvar e causaram um erro no código;

*Falta-te um 'c' em function;

Quanto ao resto do código ainda não aprendi, portanto não te posso dar a ajuda final... :D

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Tb sou n0ob

Pelo que vi no manual de php

Para inicializares um objecto é algo do genero:

$romance= new livro;

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Estiva a ler o manual do php no capitulo de classes. Acho que podiam ter feito melhor... pois qdo li o manual no inicio andei a levar com uma carrada de noçoes basicas que qq cego via e qdo chego ao capitulo de classes pressupõe que o leitor já esteja super familiarizado com POO.

Só falam das cenas especificas do php em relação a classes nu«outras linguagens.

Posto isto foi dar uma olhadela ao site cprogramming.com a ver o que dizia de classes. Eu só aprendi C++, e já na altura achava aquilo das classes assim uma cena confusa p burro, aindapara mais com os exemplos inuteis que me davam, agora vejo bem porque é que uma carrada de programadores em C diz qto mal há de C++. E porque é que há mais programadores de C do que de C++... sem bem que continuo da opiniao que o C++ é a linguagem mais robusta e poderosa.

Moral da história.... já nao me lembro de como usar classes, é estupidamente complicado, no fim de contas só me daria mais trabalho e ainda estou p descobrir se no fim de contas dada a dimensao de um projecto pessoal não acabam de baralhar ainda mais as coisas. Caguei para as classes. Segue php sem POO, pelo que me parece a maior parte do código em php que aí anda não usa classes... eu n vou usar.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

É como dizes: classes só utilizarei em projectos de grande dimensão. Para páginas web convencionais não são necessárias classes. Assim sendo, sou mais um programador que ainda não vou utilizar classes para programar em PHP.

Hoje recomeço o estudo.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

As classes em C++ não são assim tão dificies de compreender.

Claro que é preciso alguma prática e saber alguns conseitos.

Há pouco tempo é que soube que o PHP também tinha classes.

Fiquei bastante interessado e até estou a pensar usar no meu projecto .

Mas isso é para futuras actualizações.

Por enquanto vou usar PHP sem classes para me familiarizar bem com o PHP e depois avançar para as classes.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Em 2/23/2006 às 09:46, Ped@ntilva disse:

Isso é possivel e se não me engano simples.

Não experimentei isto mas vê este codigo:


<?php
$result=mysql_query($query);
?>

<form method="POST" action="--WEBBOT-SELF--">
<p><select size="1" name="D1">
        <?php
while ( $linha= mysql_fetch_array( $tabela)){
   print '<option value="'.$linha[id].'l">'.$linha[nome].'</option>';
}?>
        </select><input type="submit" value="Submit" name="B1"><input type="reset" value="Reset" name="B2"></p>
</form>
 

Cumps

Pedantilva

epa... estoua experimentar esse código... mas... onde está $linha de ser $tabela certo?

obrigado

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

???

Eu vou reescrever o código:

<?php
$tabela=mysql_query($query);
?>

<form method="POST" action="--WEBBOT-SELF--">
<p><select size="<?php print mysql_num_rows($tabela);
                                                     //imprime o número de linhas da tabela
                                                    ?>" name="D1">
        <?php
while ( $linha= mysql_fetch_array( $tabela)){  //sempre que este while é chamado vai 'mudando' de linha
   print '<option value="'.$linha[id].'l">'.$linha[nome].'</option>';
}?>
        </select><input type="submit" value="Submit" name="B1"><input type="reset" value="Reset" name="B2"></p>
</form>

Já percebes melhor?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

loooll

eu tinha percebido bem....

mas tinhas um erro.

agora puseste bem... mas na tuma mensagem anterior... puseste o resultado do query para uma variavel e depois enches o array com outra... ora vê lá se nao tenho razao.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Lol....

Enganei-me

Não testei antes de enviar o codigo.....

Foi feito à pressa...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

epa...

uma duvida... para que serve esta parte do código

<input type="reset" value="Reset" name="B2">

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Isso faz parte do form html.

Mas podes tirar.

Isso é para fazer um reset à opção escolhida....

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Em 2/26/2006 às 07:33, pedrotuga disse:

epa...

uma duvida... para que serve esta parte do código

<input type="reset" value="Reset" name="B2">

isso vai ser um botao para fazer reset, tipo limpar o que esta escrito no formulario... isso é html...

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