AntonioGraca Posted August 8, 2013 at 09:08 PM Report #521284 Posted August 8, 2013 at 09:08 PM (edited) 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). 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 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 $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. $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 Edited August 8, 2013 at 10:00 PM by AntonioGraca
brunoais Posted August 9, 2013 at 01:00 PM Report #521347 Posted August 9, 2013 at 01:00 PM $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']; } Devia de ser algo como: $lista_provas=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']}'"); while ($linha = mysql_fetch_array($lista_provas)) { echo $linha['prova_marcas']; } Já agora, 2 coisas. 1º as funções mysql_* já estão classificadas como deprecated. Usa o mysqli ou o PDO. 2º Verifica se ha erros 3º Pq é que estavas a meter o resource que o mysql_query() retorna num array? "[Os jovens da actual geração]não lêem porque não envolve um telecomando que dê para mirar e atirar, não falam porque a trapalhice é rainha e o calão é rei" autor: thoga31 Life is a genetically transmitted disease, induced by sex, with death rate of 100%.
AntonioGraca Posted August 9, 2013 at 01:45 PM Author Report #521351 Posted August 9, 2013 at 01:45 PM Olá Bruno 1º, muito obrigado pela resposta. Na realidade, iria jurar que já tinha testado essa solução, mas parece que não pois agora não dá erro. Bom, temos o 1º passo. Retornou o seguinte: Corta-mato1500m800m300m1000m3000m que são as provas que um determinado atleta tem registadas em como fez. Mas e agora o 2º passo? 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. Tenho este código, $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"); Neste 2º passo, o codigo sql funciona mas tenho que estar a fazer uma pesquisa por cada prova que o utilizador escolhe. Mas como meter os valores do array neste código para retornar a melhor marca de cada uma das provas contidas no array? Mais uma vez, muito obrigado Bruno. António Graça
brunoais Posted August 9, 2013 at 01:57 PM Report #521354 Posted August 9, 2013 at 01:57 PM (edited) Preciso de código exemplo do HTML do formulário (se há várias possibilidades, então mostra umas 2-4) (o HTML visto pelo browser) Edited August 9, 2013 at 01:58 PM by brunoais "[Os jovens da actual geração]não lêem porque não envolve um telecomando que dê para mirar e atirar, não falam porque a trapalhice é rainha e o calão é rei" autor: thoga31 Life is a genetically transmitted disease, induced by sex, with death rate of 100%.
AntonioGraca Posted August 9, 2013 at 02:43 PM Author Report #521360 Posted August 9, 2013 at 02:43 PM (edited) Não te assustes... Não sei se percebeste bem a minha dificuldade... Estava a fazer assim, um sql para cada prova escolhida pelo utilizador. Mas na realidade, com os dados das provas do array deve ser possivel pesquisar todos apenas com uma pesquisa. <?php $user =& JFactory::getUser(); $user_id = $user->id; $atleta_select=JRequest::getVar('atleta_select'); $prova_select1=JRequest::getVar('prova_select1'); $prova_select2=JRequest::getVar('prova_select2'); $prova_select3=JRequest::getVar('prova_select3'); $prova_select4=JRequest::getVar('prova_select4'); $prova_select5=JRequest::getVar('prova_select5'); $prova_select6=JRequest::getVar('prova_select6'); $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"); $prova2 = 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_select2']}' ORDER BY `marca_marcas` LIMIT 1"); $prova3 = 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_select3']}' ORDER BY `marca_marcas` LIMIT 1"); $prova4 = 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_select4']}' ORDER BY `marca_marcas` LIMIT 1"); $prova5 = 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_select5']}' ORDER BY `marca_marcas` LIMIT 1"); $prova6 = 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_select6']}' ORDER BY `marca_marcas` LIMIT 1"); echo "<table width='100%'>"; echo '<tr> <th bgcolor="#008dd2", height="25px"><span style="color: #ffffff;">Prova</th> <th bgcolor="#008dd2"><span style="color: #ffffff;">Marca</th> <th bgcolor="#008dd2"><span style="color: #ffffff;">Data</th> <th bgcolor="#008dd2"><span style="color: #ffffff;">Época</th> <th bgcolor="#008dd2"><span style="color: #ffffff;">Local</th> <th bgcolor="#008dd2"><span style="color: #ffffff;">Competição</th> </tr>'; /// Cor de fundo das linhas da listagem $i = 1; if ($i == '1') { $cor = "#FFFFFF"; $i = "0"; } else { $cor = "#f6f6f6"; $i = "1"; } while ($linha1 = mysql_fetch_array($prova1)) { $data_nasc_db = strtotime($linha1['data_marcas']); $data_nasc = date('d-m-Y', $data_nasc_db); echo "<tr><td bgcolor='$cor'><center>" . $linha1['prova_marcas'] . "</center></td><td bgcolor='$cor'><center>" . $linha1['marca_marcas'] . "</center></td><td bgcolor='$cor'><center>" . $data_nasc . "</center></td><td bgcolor='$cor'><center>" . $linha1['epoca_marcas'] . "</center></td><td bgcolor='$cor'><center>" . $linha1['local_marcas'] . "</center></td><td bgcolor='$cor'><center>" . $linha1['competicao_marcas'] . "</center></td></tr>"; if ($i == '1') { $cor = "#FFFFFF"; $i = "0"; } else { $cor = "#f6f6f6"; $i = "1"; } } while ($linha2 = mysql_fetch_array($prova2)) { $data_nasc_db = strtotime($linha2['data_marcas']); $data_nasc = date('d-m-Y', $data_nasc_db); echo "<tr><td bgcolor='$cor'><center>" . $linha2['prova_marcas'] . "</center></td><td bgcolor='$cor'><center>" . $linha2['marca_marcas'] . "</center></td><td bgcolor='$cor'><center>" . $data_nasc . "</center></td><td bgcolor='$cor'><center>" . $linha2['epoca_marcas'] . "</center></td><td bgcolor='$cor'><center>" . $linha2['local_marcas'] . "</center></td><td bgcolor='$cor'><center>" . $linha2['competicao_marcas'] . "</center></td></tr>"; if ($i == '1') { $cor = "#FFFFFF"; $i = "0"; } else { $cor = "#f6f6f6"; $i = "1"; } } while ($linha3 = mysql_fetch_array($prova3)) { $data_nasc_db = strtotime($linha3['data_marcas']); $data_nasc = date('d-m-Y', $data_nasc_db); echo "<tr><td bgcolor='$cor'><center>" . $linha3['prova_marcas'] . "</center></td><td bgcolor='$cor'><center>" . $linha3['marca_marcas'] . "</center></td><td bgcolor='$cor'><center>" . $data_nasc . "</center></td><td bgcolor='$cor'><center>" . $linha3['epoca_marcas'] . "</center></td><td bgcolor='$cor'><center>" . $linha3['local_marcas'] . "</center></td><td bgcolor='$cor'><center>" . $linha3['competicao_marcas'] . "</center></td></tr>"; if ($i == '1') { $cor = "#FFFFFF"; $i = "0"; } else { $cor = "#f6f6f6"; $i = "1"; } } while ($linha4 = mysql_fetch_array($prova4)) { $data_nasc_db = strtotime($linha4['data_marcas']); $data_nasc = date('d-m-Y', $data_nasc_db); echo "<tr><td bgcolor='$cor'><center>" . $linha4['prova_marcas'] . "</center></td><td bgcolor='$cor'><center>" . $linha4['marca_marcas'] . "</center></td><td bgcolor='$cor'><center>" . $data_nasc . "</center></td><td bgcolor='$cor'><center>" . $linha4['epoca_marcas'] . "</center></td><td bgcolor='$cor'><center>" . $linha4['local_marcas'] . "</center></td><td bgcolor='$cor'><center>" . $linha4['competicao_marcas'] . "</center></td></tr>"; if ($i == '1') { $cor = "#FFFFFF"; $i = "0"; } else { $cor = "#f6f6f6"; $i = "1"; } } while ($linha5 = mysql_fetch_array($prova5)) { $data_nasc_db = strtotime($linha5['data_marcas']); $data_nasc = date('d-m-Y', $data_nasc_db); echo "<tr><td bgcolor='$cor'><center>" . $linha5['prova_marcas'] . "</center></td><td bgcolor='$cor'><center>" . $linha5['marca_marcas'] . "</center></td><td bgcolor='$cor'><center>" . $data_nasc . "</center></td><td bgcolor='$cor'><center>" . $linha5['epoca_marcas'] . "</center></td><td bgcolor='$cor'><center>" . $linha5['local_marcas'] . "</center></td><td bgcolor='$cor'><center>" . $linha5['competicao_marcas'] . "</center></td></tr>"; if ($i == '1') { $cor = "#FFFFFF"; $i = "0"; } else { $cor = "#f6f6f6"; $i = "1"; } } while ($linha6 = mysql_fetch_array($prova6)) { $data_nasc_db = strtotime($linha6['data_marcas']); $data_nasc = date('d-m-Y', $data_nasc_db); echo "<tr><td bgcolor='$cor'><center>" . $linha6['prova_marcas'] . "</center></td><td bgcolor='$cor'><center>" . $linha6['marca_marcas'] . "</center></td><td bgcolor='$cor'><center>" . $data_nasc . "</center></td><td bgcolor='$cor''><center>" . $linha6['epoca_marcas'] . "</center></td><td bgcolor='$cor'><center>" . $linha6['local_marcas'] . "</center></td><td bgcolor='$cor'><center>" . $linha6['competicao_marcas'] . "</center></td></tr>"; if ($i == '1') { $cor = "#FFFFFF"; $i = "0"; } else { $cor = "#f6f6f6"; $i = "1"; } } echo "</table>"; if ($prova4==0) { echo "teste"; } ?> António Graça No formulário pode-se escolher uam prova em $prova_select1 (que irá ser pesquisada em $prova1), e assim sucessivamente até $prova_select6. Recordo os dados desse formulário: tabela = (apo_chronoforms_data_marcas_registo) utilizador = (cf_user_id) $atleta_select = (nome_marcas) $prova_select = (prova_marcas) António Graça Edited August 9, 2013 at 02:57 PM by AntonioGraca
brunoais Posted August 9, 2013 at 03:08 PM Report #521363 Posted August 9, 2013 at 03:08 PM Preciso de código exemplo do HTML do formulário (se há várias possibilidades, então mostra umas 2-4) (o HTML visto pelo browser) E tb n sei o que é esse JRequest. Eu sempre usei as variáveis directamente nos arrays $_GET e $_POST "[Os jovens da actual geração]não lêem porque não envolve um telecomando que dê para mirar e atirar, não falam porque a trapalhice é rainha e o calão é rei" autor: thoga31 Life is a genetically transmitted disease, induced by sex, with death rate of 100%.
AntonioGraca Posted August 9, 2013 at 03:27 PM Author Report #521365 Posted August 9, 2013 at 03:27 PM (edited) Olá Bruno Eu estou a trabalhar com o chronoforms e há código gerado pelo componente. Seria possível concentrarmo-nos apenas no array e como fazer a pesquisa com os valores desse array? Temos o código do array: $lista_provas=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']}'"); while ($linha = mysql_fetch_array($lista_provas)) { echo $linha['prova_marcas']; } Ele retornou estes dados: array=Corta-mato1500m800m300m1000m3000m (isto é um exemplo porque podem ser outros) Eu com uma prova faço este código: $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"); E a questão que coloco é, com este código e os dados do array, como altero o código da pesquisa para retornar as melhores marcas (ORDER BY `marca_marcas` LIMIT 1) de cada uma prova contida no array. Será preciso substituir (penso) esta paret do código `prova_marcas` = '{$form->data['prova_select1']}' em que em vez de pesquisar apenas uma prova vai pesquisar as várias que estão contidas no array. Volto a dizer, penso... Mas como? 😕 Mais uma vez, obrigado pela atenção. António Graça Edited August 9, 2013 at 03:53 PM by AntonioGraca
brunoais Posted August 9, 2013 at 07:24 PM Report #521381 Posted August 9, 2013 at 07:24 PM Vê se é isto que procuras: http://dev.mysql.com/doc/refman/5.0/en/comparison-operators.html#function_in É que, fora isso, não tenho dados para te dar uma ajuda concreta, só tenho pozinhos. "[Os jovens da actual geração]não lêem porque não envolve um telecomando que dê para mirar e atirar, não falam porque a trapalhice é rainha e o calão é rei" autor: thoga31 Life is a genetically transmitted disease, induced by sex, with death rate of 100%.
AntonioGraca Posted August 9, 2013 at 07:29 PM Author Report #521382 Posted August 9, 2013 at 07:29 PM Sim, deve andar por aqui e já andava a explorar essa opção. Já tinha testado e só me encontra o 1º valor da expressão quando sei que há lá 5 (p.ex). Direi do andamento da coisa Já tinha testado mas só Obrigado
AntonioGraca Posted August 9, 2013 at 08:31 PM Author Report #521384 Posted August 9, 2013 at 08:31 PM Olá, mais uma vez A coisa vai andando mas ainda com uma falha que não estou a ver porque. Então fiz este código para obter as provas a pesquisar: $lista_provas=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']}'"); while ($linha = mysql_fetch_array($lista_provas)) { $cond.= "'".$linha['prova_marcas']."'".','; ///echo $linha['prova_marcas']; } $size = strlen($cond); $condicao = substr($cond,0,$size-1); Ao fazer echo $condicao; retorna '800m','1500m','Milha','1000m','300m' Depois utilizei esses dados num select com o IN $provas = 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` IN ($condicao) ORDER BY `marca_marcas` LIMIT 1"); Mas só retorna o primeiro registo (referente à prova de 800m) quando eu sei que deveria de retornar 5 provas ('800m','1500m','Milha','1000m','300m'). Experimentei com um exemplo simples $condicao="'800m','1500m'"; e deu na mesma coisa. Só o primeiro registo apareceu. Tinha seguido este exemplo... $sql=mysql_query("select * from tb_album where id_album in($condicao) order by id_album"); Seré deste query? while ($linha1 = mysql_fetch_array($provas)) { $data_nasc_db = strtotime($linha1['data_marcas']); $data_nasc = date('d-m-Y', $data_nasc_db); ... } Estou aberto a ugestões. Já estev mais longe... 😄 António Graça
brunoais Posted August 9, 2013 at 08:41 PM Report #521386 Posted August 9, 2013 at 08:41 PM (edited) Dica: Quado queres mais q 1 coisa, não se indica ao DBMS que só se quer 1 coisa. Edited August 9, 2013 at 08:42 PM by brunoais "[Os jovens da actual geração]não lêem porque não envolve um telecomando que dê para mirar e atirar, não falam porque a trapalhice é rainha e o calão é rei" autor: thoga31 Life is a genetically transmitted disease, induced by sex, with death rate of 100%.
AntonioGraca Posted August 9, 2013 at 09:42 PM Author Report #521393 Posted August 9, 2013 at 09:42 PM (edited) Antes o ORDER BY `marca_marcas` LIMIT 1 funcionava bem, apresentava-me a melhor marca de cada uma das provas que o utilizador escolhia. Dai o facto de ter mantido para conseguir o mesmo resultado 😕 Ok, retirei o ORDER BY `marca_marcas` LIMIT 1 e já aparecem todas. Mas todas mesmo 😁 . Eu tinha o LIMIT 1 para aparecer apenas a melhor marca em cada uma das provas ('800m','1500m','Milha','1000m','300m'), ou seja, mostrar apenas o valor mais pequeno de cada prova e não as provas todas de cada distância. Sabes a solução? 😁 Vou dar mais umas marteladas, mas continuo a dizer, já se esteve mais longe. António Graça Edited August 9, 2013 at 09:44 PM by AntonioGraca
brunoais Posted August 10, 2013 at 07:29 AM Report #521402 Posted August 10, 2013 at 07:29 AM http://dev.mysql.com/doc/refman/5.5/en/example-maximum-column-group.html Talvês tb: http://dev.mysql.com/doc/refman/5.5/en/select.html#idp93692528 "[Os jovens da actual geração]não lêem porque não envolve um telecomando que dê para mirar e atirar, não falam porque a trapalhice é rainha e o calão é rei" autor: thoga31 Life is a genetically transmitted disease, induced by sex, with death rate of 100%.
AntonioGraca Posted August 10, 2013 at 09:27 AM Author Report #521405 Posted August 10, 2013 at 09:27 AM (edited) Ola, mais uma vez.... Experimentei as propostas e não resultaram, ou pelo menos e não consegui que resultassem. No entanto, ontem depois de ter fechado o pc lembrei-me desta ideia: se não posso utilizar o ORDER BY LIMIT 1 numa pesquisa com um array, então porque não colocar uma pesquisa dentro do ciclo que extrai os valores do array? Por cada ciclo, por cada valor extraido do array, faz uma pesquisa por esse valor podendo assim utilizar o ORDER BY LIMIT 1. Então segui este raciocínio: Pesquisa para verificar quais as provas que o atleta tem registadas na tabela e passá-las para um array Ciclo para extrair quais as provas contidas do array Encontra a 1ª prova contida no array -- Pesquisa para encontrar a 1ª prova do array --- Escreve os dados da 1ª prova --- <Table> para fazer o header da listagem --- Ciclo while para escrever os dados encontrados --- Fecha o ciclo que escrever os dados Fecha o cilco que extrai o array --- </Table> Fecha table Cada vez que passa pelo ciclo escreve uma prova podendo (penso eu) utilizar o ORDER BY `marca_provas` LIMIT 1 para em cada passagem pelo ciclo encontrar a melhor marca da prova encontrada no 1º valor do array. E assim sucessivamente com o 2º valor, 3º valor, até se acabarem os valores contidos no ciclo do array. Mas logo que encontra o 1º valor do array, coloca a melhor marca da prova (caso eu coloque ODER BY LIMIT 1) e sai fora do ciclo do array. Isto acontece quer eu utilize o ODER BY LIMIT 1 ou não. Portanto, os plano sairam furados. Código $lista_provas=mysql_query(" /// select para encontrar as provas que atleta tem registadas na tabela e colocá-las num array SELECT DISTINCT (`prova_marcas`) FROM `apo_chronoforms_data_marcas_registo` WHERE `cf_user_id`=$user_id AND `nome_marcas` = '{$form->data['atleta_select']}'"); while ($linha = mysql_fetch_array($lista_provas)) { /// ciclo para extrair os valores do array $condicao.= "'".$linha['prova_marcas']."'"; /// encontra o valor do array $provas = mysql_query(" /// select para encontrar na tabela a prova (ou seja, o valor contido na array) SELECT * FROM `apo_chronoforms_data_marcas_registo` WHERE `cf_user_id`=$user_id AND `nome_marcas` = '{$form->data['atleta_select']}' AND `prova_marcas` IN ($condicao) ORDER BY `marca_marcas`LIMIT 1"); /// com o ORDER BY LIMIT 1 dá-me a melhor marca dessa prova pesquisada echo "<table width='100%'>"; /// escreve a header da listagem echo '<tr> <th bgcolor="#008dd2", height="25px"><span style="color: #ffffff;">Prova</th> <th bgcolor="#008dd2"><span style="color: #ffffff;">Marca</th> <th bgcolor="#008dd2"><span style="color: #ffffff;">Data</th> <th bgcolor="#008dd2"><span style="color: #ffffff;">Época</th> <th bgcolor="#008dd2"><span style="color: #ffffff;">Local</th> <th bgcolor="#008dd2"><span style="color: #ffffff;">Competição</th> </tr>'; while ($linha1 = mysql_fetch_array($provas)) { /// inicía um ciclo para extrair os dados do slect $data_nasc_db = strtotime($linha1['data_marcas']); $data_nasc = date('d-m-Y', $data_nasc_db); echo "<tr><td bgcolor='$cor'><center>" . $linha1['prova_marcas'] . "</center></td><td bgcolor='$cor'><center>" . $linha1['marca_marcas'] . " </center> </td><td bgcolor='$cor'><center>" . $data_nasc . "</center></td><td bgcolor='$cor'><center>" . $linha1['epoca_marcas'] . "</center></td> <td bgcolor='$cor'><center>" . $linha1['local_marcas'] . "</center></td><td bgcolor='$cor'><center>" . $linha1['competicao_marcas'] . "</center></td> </tr>"; } ///fecha o ciclo onde escreve os dados } /// fecha o ciclo do array echo "</table>"; Como esyás a ver, o código já encolheu drásticamente. Podes dar uma vista de olhos para perceberes porque ele quando encontra o 1º valor do array sai fora do ciclo? Obrigado António Graça Edited August 10, 2013 at 09:38 AM by AntonioGraca
AntonioGraca Posted August 12, 2013 at 04:27 PM Author Report #521528 Posted August 12, 2013 at 04:27 PM Corrigindo de $condicao.= "'".$linha['prova_marcas']."'"; para $condicao= "'".$linha['prova_marcas']."'"; Assim o while Já não salta fora do ciclo (nem sei porque é que aquele pontinho de concatenação ficou ali...) Com isto, considero solucionado o tópico. Obrigado a quem deu o seu contributo António Graça
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now