joaocasta Posted October 10, 2012 at 07:28 AM Report #478520 Posted October 10, 2012 at 07:28 AM (edited) Boas tenho aqui uma query que acho que nao está a funcionar bem. <?php include "config.php"; session_start(); $sumgalp = mysql_query("SELECT SUM(combustiveis) AS Quantidade FROM combustiveis WHERE id_referente_combustiveis = '4'"); if (mysql_num_rows($sumgalp) == 0) { echo "0"; } else { $row = mysql_fetch_array($sumgalp); echo $row['Quantidade']; } ?> o if nao me está a devolver o "0" nao sei pq. Edited October 11, 2012 at 08:14 AM by brunoais Título alterado para um melhor (ainda pode ser melhorado)
brunoais Posted October 10, 2012 at 08:01 AM Report #478522 Posted October 10, 2012 at 08:01 AM (edited) Porque é que devia de devolver 0? Desaconselho-te a usar as funções do grupo mysql_* usa as mysqli_* ou o PDO. Altera o título do tópico para algo mais explícito. O que estás a usar é demasiado vago. Edited October 10, 2012 at 08:03 AM 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%.
joaocasta Posted October 10, 2012 at 10:13 AM Author Report #478530 Posted October 10, 2012 at 10:13 AM devolve 0 se nao houver dados...
Rui Carlos Posted October 10, 2012 at 10:31 AM Report #478533 Posted October 10, 2012 at 10:31 AM Penso que se não tiver linhas para somar vai devolver na mesma uma linha com o valor NULL. O que deves fazer é ver se o valor devolvido é NULL ou um valor numérico. (O também podes alterar a query para que devolva 0 em vez de NULL nesses casos.) Rui Carlos Gonçalves
joaocasta Posted October 10, 2012 at 10:55 AM Author Report #478538 Posted October 10, 2012 at 10:55 AM e como faço isso Rui?
Rui Carlos Posted October 10, 2012 at 10:59 AM Report #478541 Posted October 10, 2012 at 10:59 AM Na query podes usar o IFNULL ou o COALESCE. http://dev.mysql.com/doc/refman/5.0/en/comparison-operators.html Rui Carlos Gonçalves
joaocasta Posted October 10, 2012 at 11:00 AM Author Report #478542 Posted October 10, 2012 at 11:00 AM tipo isto <?php include "config.php"; session_start(); $sumgalp = mysql_query("SELECT COALESCE(SUM(combustiveis), 0) AS Quantidade FROM combustiveis WHERE id_referente_combustiveis = '4'"); while ($row = mysql_fetch_array($sumgalp) { echo $row['Quantidade']; } ?>
MASNathan Posted October 10, 2012 at 11:02 AM Report #478543 Posted October 10, 2012 at 11:02 AM (edited) tipo $result1 = mysql_query('SELECT SUM(VAR) AS VAR_CENAS FROM TABLENAME'); $row1 = mysql_fetch_assoc($result1); $sum = $row1['VAR_CENAS']; mas aconcelho o que o brunoais disse Porque é que devia de devolver 0? Desaconselho-te a usar as funções do grupo mysql_* usa as mysqli_* ou o PDO. Altera o título do tópico para algo mais explícito. O que estás a usar é demasiado vago. Edited October 10, 2012 at 11:03 AM by MASNathan
joaocasta Posted October 10, 2012 at 11:04 AM Author Report #478544 Posted October 10, 2012 at 11:04 AM mas MASNathan isso nao retorna o valor de 0
Rui Carlos Posted October 10, 2012 at 11:05 AM Report #478545 Posted October 10, 2012 at 11:05 AM tipo isto <?php include "config.php"; session_start(); $sumgalp = mysql_query("SELECT COALESCE(SUM(combustiveis), 0) AS Quantidade FROM combustiveis WHERE id_referente_combustiveis = '4'"); while ($row = mysql_fetch_array($sumgalp) { echo $row['Quantidade']; } ?> Sim, isso deve funcionar. Mas não era preciso usar o while, visto que só vais ter uma linha. Rui Carlos Gonçalves
joaocasta Posted October 10, 2012 at 11:06 AM Author Report #478546 Posted October 10, 2012 at 11:06 AM ah ok.. obrigado. mais daqui a nada testo pois aqui nao tenho o wamp.
Rui Carlos Posted October 10, 2012 at 11:12 AM Report #478548 Posted October 10, 2012 at 11:12 AM Usa a query do teu post com o código do MASNathan. Para além de estares a usar um while desnecessário, não estás a usar correctamente a função mysql_fetch_array. Rui Carlos Gonçalves
joaocasta Posted October 10, 2012 at 11:15 AM Author Report #478550 Posted October 10, 2012 at 11:15 AM Podes explicar porque é que não estou a usar correctamente a função mysql_fetch_array Rui?
Rui Carlos Posted October 10, 2012 at 11:22 AM Report #478553 Posted October 10, 2012 at 11:22 AM Esquece... Também deve funcionar como tens. Estava na ideia que, por omissão, essa função devolvia um array com apenas indíces numéricos, mas na verdade também admite como indícies os nomes dos campos. Rui Carlos Gonçalves
joaocasta Posted October 10, 2012 at 11:25 AM Author Report #478555 Posted October 10, 2012 at 11:25 AM (edited) mas pronto coloquei o mysql_fetch_assoc.. nao posso é testar agora.... nao estou no meu pc ps: continua sem dar... já dá tinha-me esquecido do echo. Edited October 10, 2012 at 12:44 PM by joaocasta
brunoais Posted October 13, 2012 at 06:36 PM Report #479002 Posted October 13, 2012 at 06:36 PM Aconselho-te a dizer adeus ao mysql_* e passar a usar o mysqli_* ou o PDO. "[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%.
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