[PHP]  Ayuda con else if
Bueno amigos, estoy en un proyecto y tengo un problema, les paso a explicar. Tengo un sitio que por ejemplo el link es http://www.midominio.com/inde...

Bueno amigos, estoy en un proyecto y tengo un problema, les paso a explicar.

Tengo un sitio que por ejemplo el link es http://www.midominio.com/index.php?aac=anual

En el archivo index lo tengo así:

Código PHP:
<?php

include('plantilla/inicio.php');
}else if(
$_GET['acc']=='anual'){

?>

Así anda perfecto, pero yo quiero agregar otro más, osea otro if($_GET['acc']=='mensual'), pero no he podido hacerlo, alguna idea?? para que así yo pueda ingresar a http://www.midominio.com/index.php?aac=mensual

Lo he intentado pero me anda el último y no el primero y yo quiero que ande los dos, hmm espeo me hayan entendido u.u
www.ledahost.com | Email: info[at]ledahost.com | Skype: ledahost
VPS SSD - HOSTING Y RESELLER [cPanel, Plesk, etc] - DOMINIOS - BACKUPS - WAREZ & XXX
CUPONES: Hosting 20%: memudoaleda
Ese es todo tu código? Me sorprende que funcione (no lo he probado). Lo digo por que según yo tiene mal sintaxis de PHP.

Si quieres que este integrado con MyBB podrías incluir el archivo global.php como ya se menciona en muchos tutoriales aquí (en este caso quizás baste con el archivo inc/init.php).

Si lo haces seria asi:
Código PHP:
if($mybb->input['acc'] == 'anual')
{
//Condigo
}
elseif(
$mybb->input['acc'] == 'mensual')
{
//Condigo
}
elseif(
$mybb->input['acc'] == 'semanal')
{
//Condigo
}
else
{
// Cualquier otro...


Si no, así debería de funcionar:
Código PHP:
if(isset($_GET['acc']) && $_GET['acc'] == 'anual')
{
//Condigo
}
elseif(isset(
$_GET['acc']) && $_GET['acc'] == 'mensual')
{
//Condigo
}
elseif(isset(
$_GET['acc']) && $_GET['acc'] == 'semanal')
{
//Condigo
}
else
{
// Cualquier otro...


También podrías usar switch() pero depende de que quieres hacer.
{SIGNATURE_IMAGE}
Gracias Omar por responder, pero no es para MyBB, en realidad solo puse parte del código; es para un sitio externo por eso, voy a probar el segundo código, lo que quiero es que pueda ingresar así:

http://www.midominio.com/index.php?aac=mensual
http://www.midominio.com/index.php?aac=anual
http://www.midominio.com/index.php?aac=diario

Obviamente tengo una carpeta "plantilla" con mensual.php, anual.php, diario.php. Espero me entiendas je

Como en el ejemplo que te di, pero al agregar no me funciona; voy a intentar con el segundo código. Con el switch() tendría que editar todo no?

EDIT: No he podido hacerlo funcionar Sad
www.ledahost.com | Email: info[at]ledahost.com | Skype: ledahost
VPS SSD - HOSTING Y RESELLER [cPanel, Plesk, etc] - DOMINIOS - BACKUPS - WAREZ & XXX
CUPONES: Hosting 20%: memudoaleda
else es para indicar que el código a ejecutar si la condición es falsa
if($a==1)
{
// código
}
else
{
// código si la condición no se cumple
}

el elseif adicionalmente te permite añadir una segunda condición a ser evaluada

if($a==1)
{
// código
}
elseif($a==2)
{
// código para esta condición
}
else
{
// código a ejecutarse si ninguna condición se cumple
}

si por el contrario tuvieras este caso...
if($a==1)
{
// sin código
}
else
{
// acá interesa poner código
}

la manera mas correcta de expresarla seria así
if($a != 1)
{
// código
}
!= indica que es diferente...

espero que me entiendas soy muy enredado aveces xd....
Dejame ver, entonces lo que quieres hacer es un "require_once" dependiendo de la direccion incluida, cierto?
Código PHP:
$paginas = array('anual''mensual''diario',);
if(isset(
$_GET['acc']) && in_array($_GET['acc'], $paginas))
{
//una pagina encajo
if(file_exist('plantilla/'.strtolower($_GET['acc']).'.php'))
{
require_once(
'plantilla/'.strtolower($_GET['acc']).'.php');
}
else
{
// error
}
}
else
{
//error


Deberia de funcionar, a menos que me este olvidando de algo Confused

EDIT: Himura me gano Smile

El switch() solo lo uso cuando quieres usar menos codigo, no veo mucha diferencia aqui.
{SIGNATURE_IMAGE}
yo recomendaria que seria de esta forma...

if($_GET['acc'] == 'anual')
{
}
elseif($_GET['acc'] == 'mensual')
{
}
else
{
//diario
}

o bien
elseif($_GET['acc'] == 'diario')
{
}
else
{
//no valido
}
Hmmm no me ha funcionado o no sé como hacerlo, así que creo que tendré que dejarles algo más para que me entiendan, el código es este:

Código PHP:
// inicio
if($_GET['acc']=='index'){
 
// plantilla inicio
 
include('plantilla/inicio.php');
}else if(
$_GET['acc']=='top'){
 
// plantilla top
 
include('plantilla/top.php');
}else if(
$_GET['ver']=='frase'){
 
// plantilla frase
 
include('plantilla/ver_frase.php');
}else{
 
// plantilla inicio
 
include('plantilla/inicio.php');


En esta parte:

Código PHP:
// plantilla inicio
include('plantilla/inicio.php');
}else if(
$_GET['acc']=='top'){ 

Anda bien al entrar a http://midominio.com/index.php?acc=top ahí perfecto! Ahora quiero agregar otra más por ejemplo http://midominio.com/index.php?acc=diario (el diario cambiará a otros más que agregaré, mensual, anual, etc). Aclaro que en la carpeta "plantilla" esta el top.php, diario.php, etc.

Cómo puedo hacerlo?

Edzon e Himura no entendí nada Sad
www.ledahost.com | Email: info[at]ledahost.com | Skype: ledahost
VPS SSD - HOSTING Y RESELLER [cPanel, Plesk, etc] - DOMINIOS - BACKUPS - WAREZ & XXX
CUPONES: Hosting 20%: memudoaleda
esque otra cosa no olvides poner un exit; a los anteriores!!
mira bro ise esto en mi localhost y funciona bien...

Código PHP:
<?php

if($_GET['acc'] == 'anual')
{
    die(
'anual');
    exit;
}
elseif(
$_GET['acc'] == 'mensual')
{
    die(
'mensual');
    exit;
}
if(
$_GET['acc'] == 'diario')
{
    die(
'diario');
    exit;
}
else
{
    die(
'default');
    exit;
}

?>
(7 Jun, 2012, 4:07 pm)Edson Ordaz escribió: mira bro ise esto en mi localhost y funciona bien...

Código PHP:
<?php

if($_GET['acc'] == 'anual')
{
    die(
'anual');
    exit;
}
elseif(
$_GET['acc'] == 'mensual')
{
    die(
'mensual');
    exit;
}
if(
$_GET['acc'] == 'diario')
{
    die(
'diario');
    exit;
}
else
{
    die(
'default');
    exit;
}

?>

Como tendría que ponerlo? Osea en el primer código que dejé, ya que los demás archivos también se usan y si los saco algunas cosas no funcionan :/

I confused.. toy todo el día con esto T.T
www.ledahost.com | Email: info[at]ledahost.com | Skype: ledahost
VPS SSD - HOSTING Y RESELLER [cPanel, Plesk, etc] - DOMINIOS - BACKUPS - WAREZ & XXX
CUPONES: Hosting 20%: memudoaleda