IF - ELSE - ELSEIF ???

9 views
Skip to first unread message

Álvaro

unread,
Feb 9, 2007, 2:39:53 PM2/9/07
to list...@googlegroups.com
 

    Pessoal, boa tarde.

No script abaixo qualquer opção que eu faça no form, seja 01, 02, etc o retorno é sempre março. Já retirei e mudei as chaves de lugar más nada altera. Tentei com else e elseif e nada.

<?php
if ($niver = 01) {
$niv = "Janeiro";
 if ($niver = 02) {
 $niv = "Fevereiro";
  if ($niver = 03) {
  $niv = "Março";

echo "Parabéns aos aniversariantes do mês de $niv";  }}}
?>

Resultado--------->

------->        Parabéns aos aniversariantes do mês de Março


    Álvaro Pozzetti de Oliveira
   .!.   APdoBanespa
 (  14 3234 8155


Álvaro..Bauru..(Árvooo).vcf

Bruno Gross

unread,
Feb 9, 2007, 2:49:45 PM2/9/07
to LISTA PHP
Usa ==
e não apenas =

On 9 fev, 17:39, Álvaro <pozze...@gmail.com> wrote:
> Pessoal, boa tarde.
>
> No script abaixo qualquer opção que eu faça no form, seja 01, 02, etc o retorno é sempre março. Já retirei e mudei as chaves de lugar más nada altera. Tentei com else e elseif e nada.
>
> <?php
> if ($niver = 01) {
> $niv = "Janeiro";
> if ($niver = 02) {
> $niv = "Fevereiro";
> if ($niver = 03) {
> $niv = "Março";
>
> echo "Parabéns aos aniversariantes do mês de $niv"; }}}
> ?>
>
> Resultado--------->
>
> -------> Parabéns aos aniversariantes do mês de Março
>

> --------------------------------------------------------------------------------


>
> Álvaro Pozzetti de Oliveira
> .!. APdoBanespa
> ( 14 3234 8155

> J alvaro.pozze...@itelefonica.com.br
> * pozze...@gmail.com
> 8 http://www.apdobanespa.cjb.net
>
> --------------------------------------------------------------------------------
>
> Álvaro..Bauru..(Árvooo).vcf
> 1KDownload

Paulo Souza

unread,
Feb 9, 2007, 2:54:28 PM2/9/07
to list...@googlegroups.com
isso tá errado...


if ($niver = 01) {
$niv = "Janeiro";
 if ($niver = 02) {
 $niv = "Fevereiro";
  if ($niver = 03) {
  $niv = "Março"; echo "Parabéns aos aniversariantes do mês de $niv";  }}}

o correto seria :

if ($niver = 01) {
$niv = "Janeiro";
}
 if ($niver = 02) {
 $niv = "Fevereiro";
}
  if ($niver = 03) {
  $niv = "Março";
}
echo "Parabéns aos aniversariantes do mês de ".$niv;
--
Paulo Souza
www.paulosouza.info
+55 21 91236579

Mário Júnior

unread,
Feb 9, 2007, 2:54:57 PM2/9/07
to list...@googlegroups.com
vc não ta fechando os laços mano....

<?php
if ($niver = 01) {
    $niv = "Janeiro";

} elseif ($niver = 02) {
    $niv = "Fevereiro";
} elseif ($niver = 03) {
  $niv = "Março";
}

echo "Parabéns aos aniversariantes do mês de $niv";  //}}} esses aqui não precisa
?>


Mas sinceramente, a maneira correta de fazer isso seria por Switch
http://br.php.net/manual/pt_BR/control-structures.switch.php

if tem muita cara de pog... só mesmo se necessário... dê uma olhada em estruturas de controle.


Abraços.

Júnior.




--
Mário de Souza Júnior
Analista de Sistemas
(67) 8407-0065

Paulo Souza

unread,
Feb 9, 2007, 2:54:59 PM2/9/07
to list...@googlegroups.com
corrigindo...deu post sem querer...hehehehehe

if ($niver == 01) {
$niv = "Janeiro";
}
 if ($niver == 02) {
 $niv = "Fevereiro";
}
  if ($niver == 03) {

  $niv = "Março";
}
echo "Parabéns aos aniversariantes do mês de ".$niv;


Paulo Marques

unread,
Feb 9, 2007, 2:59:50 PM2/9/07
to list...@googlegroups.com

Como são 12 meses, recomendo a você utilizar o switch, mas não sei se existe uma função no php que te retorna o mes
em portugues brasil....

switch ($niver)
{
    //jan
    case 1:
        $niv = 'Jan';
    break;
   
    //fev
    case 2:
        $niv = 'Fev';      
    break;
   
    //marco
    case 3:
        $niv = 'Mar';
    break;

    default:
        $niv = 'Não especificado!';
}


On 2/9/07, Paulo Souza <pepe...@gmail.com> wrote:



--
Atenciosamente,

            Paulo S. M. Marques
   °v°     Analista de Sistemas Web
  /(_)\    Tel:  27 9279-0800
   ^ ^     Msn/Gtalk: psma...@gmail.com
            Web: http://www.psmarques.com.br/

Wilson C. Savegnago

unread,
Feb 9, 2007, 3:27:37 PM2/9/07
to list...@googlegroups.com
Você vai ter que verificar se seu server usa variaveis globais e ... como voce está comparando, no if temq ter 2 = =
 
if ($_request[niver] == 01) {
$niv = "Janeiro";
 if ($_request[niver] == 02) {
 $niv = "Fevereiro";
  if ($_request[niver] == 03) {

  $niv = "Março"; echo "Parabéns aos aniversariantes do mês de $niv";  }}}


Abç

Wilson
 
 
----- Original Message -----

Álvaro

unread,
Feb 10, 2007, 1:18:00 PM2/10/07
to list...@googlegroups.com
Paulo,
 
Parece que tem um fantasma nesse código, com a sua dica abaixo funciona perfeitamente com exceção dos meses de AGOSTO E SETEMBRO, é mole? Não encontrei nada diferente ou estou ficando cego, veja:
 
 if ($niver == 07) {
 $niv = "Julho";
 }
 if ($niver == 08) {
 $niv = "Agosto";
 }
 if ($niver == 09) {
 $niv = "Setembro";
 }
 if ($niver == 10) {
 $niv = "Outubro";
 }
----- Original Message -----
Sent: Friday, February 09, 2007 5:54 PM
Subject: [ PHP - Google ] Re: IF - ELSE - ELSEIF ???

Mateus Milanez

unread,
Feb 10, 2007, 1:56:14 PM2/10/07
to list...@googlegroups.com
Uma outra maneira seria usar a funcao date ai para escrever em portugues seu servidor tendo suporte, ou fazendo um array com todos os meses.

setlocale(LC_ALL, "pt_BR.iso-8859-1");
$month = 02;

echo date("F",mktime(0,0,0,$month,1,2000));

// OR

$arr_month = array (
        01 => "Janeiro",
        02 => "Fevereiro",
        03 => "Março",
        04 => "Abril",
        05 => "Maio",
        06 => "Junho",
        07 => "Julho",
        08 => "Agosto",
        09 => "Setembro",
        10 => "Outubro",
        11 => "Novembro",
        12 => "Dezembro"
);

echo $arr_month[$month];
--
--
Mateus Godoi Milanez

Leonardo Machado Carreiro

unread,
Feb 10, 2007, 4:05:11 PM2/10/07
to list...@googlegroups.com
eu acho a opção de usar um array a melhor, acho q fica mais organizado...

mas CUIDADO!!!


$arr_month = array (
        01 => "Janeiro",
        02 => "Fevereiro",
        03 => "Março",
        04 => "Abril",
        05 => "Maio",
        06 => "Junho",
        07 => "Julho",
        08 => "Agosto",
        09 => "Setembro",
        10 => "Outubro",
        11 => "Novembro",
        12 => "Dezembro"
);

um numero começando com 0 significa que está na base octal

ou seja, os meses de agosto e setembro íam dar páu

portanto, esqueça a idéia de deixar o código mais bonitinho e utilize:

$arr_month = array (
        1 => "Janeiro",
        2 => "Fevereiro",
        3 => "Março",
        4 => "Abril",
        5 => "Maio",
        6 => "Junho",
        7 => "Julho",
        8 => "Agosto",

        9 => "Setembro",
        10 => "Outubro",
        11 => "Novembro",
        12 => "Dezembro"
);


Em 10/02/07, Mateus Milanez <mila...@gmail.com> escreveu:

Paulo Souza

unread,
Feb 11, 2007, 6:38:35 AM2/11/07
to list...@googlegroups.com
Passe para o elseif assim :

 if ($niver == 07) {
 $niv = "Julho";
 }
 else if ($niver == 08) {
 $niv = "Agosto";
 }
 
else if ($niver == 09) {
 $niv = "Setembro";
 }
 
else if ($niver == 10) {
 $niv = "Outubro";
 }


On 2/10/07, Álvaro <pozz...@gmail.com> wrote:

Leonardo Machado Carreiro

unread,
Feb 11, 2007, 8:47:40 AM2/11/07
to list...@googlegroups.com
mas tome cuidado com este 08 e 09

7 == 07
8 != 08
9 != 09

Em 11/02/07, Paulo Souza <pepe...@gmail.com > escreveu:

Álvaro

unread,
Feb 11, 2007, 8:55:39 AM2/11/07
to list...@googlegroups.com
Leonardo, não entendi cuidado como, porque?

Lucas Schirm

unread,
Feb 11, 2007, 9:56:40 AM2/11/07
to list...@googlegroups.com
Ele explicou...

Quando temos o 0 na frente do número o PHP entende como se fosse Octal (0,1,2,3,4,5,6,7), então não existe 8 e 9, então tem que tirar o 0 da frente pro PHP entender que é decimal, entendeu???

Em 11/02/07, Álvaro <pozz...@gmail.com> escreveu:



--
----------------------------------------------------------------------------
Lucas Schirm Caixeta *Falkor*
MSN - falkor...@gmail.com
                                                    Pirating for life
----------------------------------------------------------------------------

Leonardo Machado Carreiro

unread,
Feb 11, 2007, 10:08:17 AM2/11/07
to list...@googlegroups.com
faça o teste vc mesmo...

<?php
if(0 == 00) echo "0 == 00<br>";
if(1 == 01) echo "1 == 01<br>";
if(2 == 02) echo "2 == 02<br>";
if(3 == 03) echo "3 == 03<br>";
if(4 == 04) echo "4 == 04<br>";
if(5 == 05) echo "5 == 05<br>";
if(6 == 06) echo "6 == 06<br>";
if(7 == 07) echo "7 == 07<br>";

if(8 == 08) echo "8 == 08<br>"; //não entra...
if(9 == 09) echo "9 == 09<br>"; //não entra...
if(10 == 010) echo "10 == 010<br>"; //não entra...

if(8 == 010) echo "8 == 010<br>";
if(9 == 011) echo "9 == 011<br>";
if(10 == 012) echo "10 == 012<br>";

?>


Em 11/02/07, Lucas Schirm <falkor...@gmail.com> escreveu:

Mateus Milanez

unread,
Feb 11, 2007, 12:14:03 PM2/11/07
to list...@googlegroups.com
Calma gente, tá certo que o array deve ser esse:


$arr_month = array (
        1 => "Janeiro",
        2 => "Fevereiro",
        3 => "Março",
        4 => "Abril",
        5 => "Maio",
        6 => "Junho",
        7 => "Julho",
        8 => "Agosto",
        9 => "Setembro",
        10 => "Outubro",
        11 => "Novembro",
        12 => "Dezembro"
);

quanto ao transformar um 02 para 2 basta usar intval

echo $arr_month[intval($month)];  assim fica tudo resolvido com
$month = 02 ou $month = 2;

:-)

Leonardo Machado Carreiro

unread,
Feb 11, 2007, 2:02:18 PM2/11/07
to list...@googlegroups.com
então... mas se um 08 for vir de um formulario, ele vai vir como string, aí eu acho que "08" o php converte pra decimal mesmo... acho que nem precisa de intval...
mas o que não pode ter o o 08 e 09 no código como as chaves do array...

Em 11/02/07, Mateus Milanez <mila...@gmail.com> escreveu:
Reply all
Reply to author
Forward
0 new messages