[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í:

<?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
[font=Book Antiqua]www.ledahost.com | Email: info[at]ledahost.com | Skype: ledahost[/font]
[font=Arial]VPS SSD - HOSTING Y RESELLER [cPanel, Plesk, etc] - DOMINIOS - BACKUPS - WAREZ & XXX[/font]
[font=Book Antiqua]CUPONES: Hosting 20%: memudoaleda[/font]
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:
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:
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.
Omar G.
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
[font=Book Antiqua]www.ledahost.com | Email: info[at]ledahost.com | Skype: ledahost[/font]
[font=Arial]VPS SSD - HOSTING Y RESELLER [cPanel, Plesk, etc] - DOMINIOS - BACKUPS - WAREZ & XXX[/font]
[font=Book Antiqua]CUPONES: Hosting 20%: memudoaleda[/font]
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?
$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.
Omar G.
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:

// 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:

// 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
[font=Book Antiqua]www.ledahost.com | Email: info[at]ledahost.com | Skype: ledahost[/font]
[font=Arial]VPS SSD - HOSTING Y RESELLER [cPanel, Plesk, etc] - DOMINIOS - BACKUPS - WAREZ & XXX[/font]
[font=Book Antiqua]CUPONES: Hosting 20%: memudoaleda[/font]
esque otra cosa no olvides poner un exit; a los anteriores!!
mira bro ise esto en mi localhost y funciona bien...

<?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;
}

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

<?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
[font=Book Antiqua]www.ledahost.com | Email: info[at]ledahost.com | Skype: ledahost[/font]
[font=Arial]VPS SSD - HOSTING Y RESELLER [cPanel, Plesk, etc] - DOMINIOS - BACKUPS - WAREZ & XXX[/font]
[font=Book Antiqua]CUPONES: Hosting 20%: memudoaleda[/font]
Colaboradores
Omar G. Himura Edson Ordaz
This forum uses Lukasz Tkacz MyBB addons.