Jump to content

Datas em PHP


op_h2tuga

Recommended Posts

Ola,

Tenho a seguinte query:

$queryDatas = $this->executarSQL("SELECT total_compra,id_cliente FROM compra WHERE DATA BETWEEN '$data' AND '$segdata'");

Depois passo para um array:

$result = mysql_fetch_array($queryDatas);

O que está mal é que só retorna a primeira linha do resultado desta query, não mostra as outras, fiz o print_r e acho estranho a maneira como está o array. Está assim:

Array ( [0] => 4000 [total_compra] => 4000 [1] => 1 [id_cliente] => 1 )

Não sei o porquê de se repetir o total compra, a query está a funcionar no mysql mas no site só devolve um registo.

Alguém sabe o que pode ser?

Cumprimentos

Edited by op_h2tuga
Link to comment
Share on other sites

Documentação oficial (e repara bem no aviso que aparece ao início).

De qualquer forma, os teus dois problemas são:

  1. Só é retornada a primeira linha de resultados: isso é comportamento esperado (vê a documentação), tens de iterar pelos resultados da forma que te der mais jeito (um while que verifica se ainda há linhas costuma ser a solução preferida da malta);
  2. Índices numéricos e associativos ao mesmo tempo: também é comportamento esperado, visto que não especificaste de que modo queres os resultados (é o segundo parâmetro do método), e o comportamento por defeito é "ambos", quando pode ser "numérico" ou "associativo".

Em suma: lê a documentação, está lá tudo.

"Para desenhar um website, não tenho que saber distinguir server-side de client-side" - um membro do fórum que se auto-intitula webdesigner. Temo pelo futuro da web.

Link to comment
Share on other sites

while($result = mysql_fetch_array($queryDatas))
{
print_r($result);
}

Mostra mais um ou dois resultados, mas curiosamente desaparece com o que sempre me tem aparecido.

Peço desculpa por não ter fornecido toda a informação, eu tenho isto feito a iterar com um while, for e foreach obviamente não ao mesmo tempo, e não consigo obter os resultados quero, já fiz centenas de querys e é a primeira vez que estou com um problema destes. Como já disse já experimentei de tudo.

Cumprimentos

Link to comment
Share on other sites

Peço desculpa por não ter fornecido toda a informação, eu tenho isto feito a iterar com um while, for e foreach obviamente não ao mesmo tempo

estás a dizer que tens isso encadeado ?? se for isso o problema está resolvido

é melhor colocares o teu código porque senão é ver pessoal a mandar "bitaites" a ver se acerta

IRC : sim, é algo que ainda existe >> #p@p
Link to comment
Share on other sites

estás a dizer que tens isso encadeado ?? se for isso o problema está resolvido

é melhor colocares o teu código porque senão é ver pessoal a mandar "bitaites" a ver se acerta

Eu disse que não estava tudo ao mesmo tempo, experimentei com os três ciclos para ver se havia alguma coisa que me estava a falhar.

Mas obrigado pela ajuda mas já consegui resolver o problema.

Cumprimentos

Link to comment
Share on other sites

e o código ??

Está aqui

$data = $_POST['data'];
   $data1 = strtotime($data);
   $segdata = $_POST['segdata'];
   $segdata1 = strtotime($segdata);
   $queryDatas = $this->executarSQL("SELECT total_compra,id_cliente FROM compra WHERE DATA BETWEEN '$data' AND '$segdata'");
   $result = mysql_fetch_array($queryDatas);
   while($result = mysql_fetch_array($queryDatas))
   {
   $total = $result['total_compra'];
   $totais = $totais + $total;   
   }
Link to comment
Share on other sites

Tens um fetch fora do ciclo; como tal, o primeiro resultado nunca te aparece.

(e continuas sem definir o tipo de resultados - isso é um desperdício de memória)

"Para desenhar um website, não tenho que saber distinguir server-side de client-side" - um membro do fórum que se auto-intitula webdesigner. Temo pelo futuro da web.

Link to comment
Share on other sites

O fetch fora do sitio é resultado do copy paste

Isso quer dizer que já estás a ver os resultados correctos?

explica lá melhor o definir o tipo de resultados?

De qualquer forma, os teus dois problemas são:

  1. (...);
  2. Índices numéricos e associativos ao mesmo tempo: também é comportamento esperado, visto que não especificaste de que modo queres os resultados (é o segundo parâmetro do método), e o comportamento por defeito é "ambos", quando pode ser "numérico" ou "associativo".

"Para desenhar um website, não tenho que saber distinguir server-side de client-side" - um membro do fórum que se auto-intitula webdesigner. Temo pelo futuro da web.

Link to comment
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.