Quantcast
Channel: Tópicos
Viewing all articles
Browse latest Browse all 14700

Valores num array a partir de dados de uma tabela

$
0
0
Olá

Tenho um formulário em que o utilizador escolhe as provas e o atleta para saber quais os recordes pessoais desse atleta (a melhor marca em cada uma das provas escolhidas).
Imagem Colocada

Até agora, tudo funciona. Mas gostaria de optimizar a coisa. Ou seja, gostaria que o utilizador (cf_user_id) apenas escolhesse o atleta em que gostava de saber quais os recordes pessoais não havendo necessidade de escolher as provas.

Para isso, preciso fazer uma listagem das melhores marcas de um atleta (atleta_select) em cada prova (nome_marcas) que ele tem inserida numa tabela. Mas eu não sei quais são as provas que foram introduzidas pelo utilizador na tabela (apo_chronoforms_data_marcas_registo).

tabela = (apo_chronoforms_data_marcas_registo)
utilizador = (cf_user_id)
atleta = (atleta_select)
prova = (nome_marcas)

Então, estava a tentar fazer o seguinte:

1 - fazer uma pesquisa à tabela (a partir de um formulário) em que as provas de um determinado atleta que fossem encontrasse (e que não fossem repetidas) eram colocadas num array.
2 - A partir dos dados desse array, fazer uma pesquisa à mesma tabela onde pesquisava as provas que o atleta tem introduzidas seleccionando apenas a melhor marca em cada prova.

Para o passo 1 tentei o seguinte, mas dá erro

Citar

mysql_fetch_array() expects parameter 1 to be resource,
. O código a partir do salect no phpMyadmin faz exatamente o que eu preciso. Mas ao tentar passar para um array dá erro

Código (PHP):
$lista_provas1=mysql_query("
 SELECT DISTINCT (`prova_marcas`)
 FROM `apo_chronoforms_data_marcas_registo`
 WHERE `cf_user_id`=$user_id AND
`nome_marcas` = '{$form->data['atleta_select']}'");
$lista_provas=array($lista_provas1);

while ($linha = mysql_fetch_array($lista_provas)) {
echo $linha['prova_marcas'];
}


Para o passo 2, tenho o seguinte código mas não sei depois como fazer a pesquisa com o resultado do array.
Código (PHP):
$prova1 = mysql_query("
 SELECT *
 FROM `apo_chronoforms_data_marcas_registo`
 WHERE `cf_user_id`=$user_id AND
`nome_marcas` = '{$form->data['atleta_select']}' AND `prova_marcas` = '{$form->data['prova_select1']}' ORDER BY `marca_marcas` LIMIT 1");

Depois o while, etc...
Neste 2º passo, o codigo sql funciona mas tenho que estar a fazer uma pesquisa por cada prova que o utilizador escolhe.

Desde já, os meus agradecimentos por possíveis ajudas


António Graça

Viewing all articles
Browse latest Browse all 14700