Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Boa tarde amigos,
Estou com um problema ao usar if + include + else.
Tenho uma página e quero que ela pega outra através de include, mas a depender do "status" puxado de uma tabela.
Criei o código assim:
<? include "config.php"; ?>
<?
$dados=mysql_fetch_array(mysql_query("SELECT * FROM paginas WHERE status='$status'"));
if($status == "S") {
include("pagina1.php");include("pagina2.php");
}
?>$status == "S") ou $status == "N"), pois, sempre vai buscar a pagina2.php.Aonde estou errando?
Bom dia Monan,
Eu testei o código que me passou, mas o resultado foi semelhante. Estando status S ou N e p.id = 1"); como sugerido, abre sempre na pagina1.php. Mudando para p.id = '$id'"); e estando status S ou N então só abre a pagina2.php.
Veja minha tabela:
--
-- Estrutura da tabela paginas
--
CREATE TABLE IF NOT EXISTS `paginas` (
`id` int(3) NOT NULL auto_increment,
`pagina` varchar(255) NOT NULL default '',
`status` char(3) NOT NULL default 'S',
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ;
--
-- Extraindo dados da tabela paginas
--
INSERT INTO paginas (id, pagina, status) VALUES
(1, 'Agenda', 'S'),
(2, 'Relatórios', 'S');
Digamos que eu tenha a página Agenda (pagina1.php) e queira através do admin desabilitar esta página para que não tenha acesso, abrindo assim a pagina2.php, por exemplo. Então eu altero o seu status para N (o que deveria direcionar para a pagina2.php).
É isto que estou tentando fazer, comecei testando sozinho, depois comecei a procurar dicas e tutoriais e por fim resolvi pedir ajuda aqui.
Agradeço a ajuda e a dica destes dois sites.
Marcos Paulo.
Tenta isso:
include 'config.php';
list($info) = mysql_fetch_row(mysql_query("SELECT status FROM paginas WHERE pagina='Agenda'"));
if($info == 'S')
include 'pagina1.php';
else
include 'pagina2.php';Plunder, o sql que lhe passei faz o seguinte:
"SELECT STATUS FROM PAGINA WHERE ID = 1"
traduzindo: "TRAGA TODOS OS STATUS ARMAZENADOS NA TABELA PAGINA QUE POSSUA O CÓDIGO 1"
dai voce identifica qual a pagina que você esta trabalhando e substitua o código que eu coloquei pelo codigo referente a pagian cadastrada... pelo que você mostrou acima temos:
ID PAGINA STATUS
(1, 'Agenda', 'S'),
(2, 'Relatórios', 'S');
(3, 'Teste', 'N');
então nossa condição (id = 1) trara o resultado S
então nossa condição (id = 2) trara o resultado S
então nossa condição (id = 3) trara o resultado N
que será armazenado na variavel $row[0] ... que entrara na comparação.. que possivelmente funcionara.
entendeu?
Bom dia Monan,
Desculpa a demora em vir agradecer, estava sem net (aqui: net + chuva = sem net).
Na mesma hora em que alterei do jeito que disse, funcionou.
Tenho que comer muito arroz com feijão ainda!
Não querendo abusar de sua boa vontade, e já abusando: poderia me ajudar com outro pepino? Desde o início de maio trouxe aqui um problema que também não consegui solucionar, já foram quase 70 visitas e ninguém sequer ousou um palpite. Abaixo está o endereço do post. Caso necessário envio para você os arquivos.
http://forum.imasters.com.br/index.php?/topic/393902-galeria-de-imagens/page__fromsearch__1
um abraço,
Plunder.
cara, pelo que entendi você esta querendo atribuir a variavel status um valor retornado pelo banco de dados e depois voce esta verificando se este valor é "S" ou "N" para instanciar uma pagina especifica conforme o resultado obtido?
se for isso, recomendo que voce estude mais SQL e os métodos do MYSQL para manipular os valores...
No entanto creio que seu codigo deve ficar assim:
Aqui voce pode encontrar mais informações sobre como manipular estes comandos:
SQL
http://www.phpmg.com/artigos-dicas-e-tutoriais/tutorial-gratuito-de-sql
MySql
http://br2.php.net/manual/en/book.mysql.php