Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Virgil

[Resolvido] Redirecionar pagina de acordo com valor bf

Recommended Posts

Fala ai galera, sou o mais novo membro da Imasters, e ja cheguei precisando de uma grande ajuda. É o seguinte, preciso redirecionar uma pagina de acordo com o valor que estiver no bd, fiz a lógica a seguir, mas sem sucesso. (estou aprendendo PHP agora rsrs).

 

<?php
include("../connect.inc.php");
$status = mysql_query("SELECT * FROM recados WHERE status");
?>

<?php
if ($status == "on") 
{
echo "<script>location.href('assinar.php');</script>";
}
else
{
echo "<script>location.href('aguarde.php');</script>";
}
?>

Quem puder me dar uma ajuda fico grato.

Valeu!!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Opa... devagar aí...

 

$status na verdade é um resource do MySQL...

 

Para pegar o valor, use mysql_fetch_assoc():

 

<?php 
$dados = mysql_fetch_assoc($status);
$valor = $dados["NOME DO CAMPO STATUS"];

//aí sim...
if($valor == "on")...
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Valeu cara, mais desculpe a lerdeza aqui, mas ficaria assim:

 

$status = mysql_query("SELECT * FROM recados WHERE status");
$dados = mysql_fetch_assoc($status);
$valor = $dados["NOME DO CAMPO STATUS"];

Esse NOME DO CAMPO STATUS que não intendi o que quis dizer.

 

Mais uma vez, Brigadão pela ajuda!

Compartilhar este post


Link para o post
Compartilhar em outros sites
  Em 10/10/2009 at 05:25, 'Virgil' disse:

Esse NOME DO CAMPO STATUS que não intendi o que quis dizer.

 

Virgin,

 

Uma tabela é organizada em linhas e colunas, cada coluna tem um nome. O que o Rick.hjpbarcelos disse é que você deverá trocar NOME.... pelo nome que você deu para sua coluna de status.

Compartilhar este post


Link para o post
Compartilhar em outros sites
  Citar

Virgin,

 

Uma tabela é organizada em linhas e colunas, cada coluna tem um nome. O que o Rick.hjpbarcelos disse é que você deverá trocar NOME.... pelo nome que você deu para sua coluna de status.

Valeu cara fiz aqui, mas ainda continua sem fazer o redirecionamento. Bom ficou assim, me corrijam por favor se tiver algo de errado.

 

<?php
include"../connect.inc.php"
?>
<?php
$status = mysql_query("SELECT * FROM recados WHERE status");
$dados = mysql_fetch_assoc($status);
$valor = $dados["aovivo"];
?>

<?php
if ($valor == "on") 
{
echo "<script>location.href('assinar.php');</script>";
}
else
{
echo "<script>location.href('aguarde.php');</script>";
}
?>

Valeu pela força!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olha, veja a sua consulta. Está errada... Olha só.

SELECT * FROM recados WHERE status

Traduzindo

SELECIONE todos os campos DA TABELA recados AONDE status

Aonde status for o que?

 

Outra coisa, habilite todas as mensagens de erro. Coloque este código no início do seu script

<?php
ini_set('display_errors', 1); 
error_reporting(E_ALL);
?>

Execute novamente. Veja se aparece algum erro. Também faça isto.

 

$dados = mysql_fetch_assoc($status);
echo '<pre>';
print_r($dados);
$valor = $dados["aovivo"];

Veja o que aparece.

 

Carlos Eduardo

Compartilhar este post


Link para o post
Compartilhar em outros sites
  Citar

Execute novamente. Veja se aparece algum erro. Também faça isto.

 

$dados = mysql_fetch_assoc($status);
echo '<pre>';
print_r($dados);
$valor = $dados["aovivo"];

Veja o que aparece.

 

Carlos Eduardo

 

Fala Carlos, brigadão pela ajuda, fiz tudo certinho, não apareceu nenhum erro, somente a pagina assinar.php ela desceu e assim escondendo o formulario.

 

Para facilitar, se quiserem dar uma olhada é nesse site www.radiomegaagito.com é um formulario de pedidos/recados, que estou tentando fazer esse redirecionamento.

 

Grato pela ajuda!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tá. Você vu o meu outro comentário? Corrigiu o SELECT?

 

Além disto, vamos debugar. Troque isto

$dados = mysql_fetch_assoc($status);
echo '<pre>';
print_r($dados);
$valor = $dados["aovivo"];

Por isto

echo 'A quantidade de registros retornados da consulta é <strong>'.mysql_num_rows($status).'</strong>.';
$dados = mysql_fetch_assoc($status);
$valor = $dados["aovivo"];

Deve retornar uma mensagem assim.

  Citar

A quantidade de registros retornados da consulta é Aqui dentro a quantidade de registros que retornou da consulta

 

Veja o que retorna

 

Carlos Eduardo

Compartilhar este post


Link para o post
Compartilhar em outros sites
  Citar

A quantidade de registros retornados da consulta é Aqui dentro a quantidade de registros que retornou da consulta

 

Veja o que retorna

 

Carlos Eduardo

 

Fala Carlos o valor retornado é 0

 

Grato pela ajuda!

Compartilhar este post


Link para o post
Compartilhar em outros sites
  Citar

Olha, veja a sua consulta. Está errada... Olha só.

 

SELECT * FROM recados WHERE status

Traduzindo

 

SELECIONE todos os campos DA TABELA recados AONDE status
Aonde status for o que?

 

Então... O problema está na consulta, que não tá retornando nada, como eu tinha falado antes. Tem algum registro na tabela? Tenta tirar a palavra status da consulta.

 

Carlos Eduardo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom Carlos retirei o status da consulta, agora está retornando resultado 1, mas com o seguinte erro!

 

  Citar

A quantidade de registros retornados da consulta é 1.

Notice: Undefined index: aovivo in /home/magito/public_html/aovivo/pedidos/redi.php on line 11

Valeu!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olha... Acho que o teu problema é de lógica. O que você quer fazer? Tenta explicar qual a lógica que você está tentando utilizar, porque o problema é de lógica.

 

Carlos Eduardo

Compartilhar este post


Link para o post
Compartilhar em outros sites
  Em 11/10/2009 at 21:04, 'Matias Rezende' disse:

Olha... Acho que o teu problema é de lógica. O que você quer fazer? Tenta explicar qual a lógica que você está tentando utilizar, porque o problema é de lógica.

 

Carlos Eduardo

 

Vamos lá, é o seguinte o site é um webrádio e com isso tem o painel de recados/pedidos, só que quando não há locutor online o form recados/pedidos fica acessivel para as pessoas, assim elas fazem pedidos e etc e não tem locutor para atender, então quero fazer que quando o locutor logar no painel de DJ ela possa "bloquear" ou "Desbloquear" o painel de recados/pedidos.

 

Então eu estava tentando fazer o seguinte, quando no BD estiver com o valor ON ele redirecionasse para o form "assinar.php" e quando estivesse OFF redirecionasse para o Locutor Off "aguarde.php".

 

Capiche? rs

 

Valeu pela força!

Compartilhar este post


Link para o post
Compartilhar em outros sites
  Citar

quando no BD estiver com o valor ON

 

Quanto o que estiver ON ou OFF ? Qual campo? De qual tabela? Qual o código que você utiliza para mudar este campo de ON para OFF?

 

Carlos Eduardo

Compartilhar este post


Link para o post
Compartilhar em outros sites
  Em 12/10/2009 at 01:36, 'Matias Rezende' disse:
  Citar

 

quando no BD estiver com o valor ON

 

Quanto o que estiver ON ou OFF ? Qual campo? De qual tabela? Qual o código que você utiliza para mudar este campo de ON para OFF?

 

Carlos Eduardo

 

Isso quando estiver ON ou OFF no campo status da tabela aovivo para fazer essa alteração eu estava fazendo manualmente no BD, mas ai assim que estivesse funcionando ia fazer um form POST pra faze o update no campo.

 

Valeu!

Compartilhar este post


Link para o post
Compartilhar em outros sites
  Citar

Olha, veja a sua consulta. Está errada... Olha só.

SELECT * FROM recados WHERE status

Traduzindo

  Citar

 

SELECIONE todos os campos DA TABELA recados AONDE status

 

Leia novamente a "tradução" da consulta, como já havia colocado. Veja que a sua está errada.

  Citar

quando estiver ON ou OFF no campo status da tabela aovivo

 

http://dev.mysql.com/doc/refman/4.1/pt/select.html

 

Carlos Eduardo

Compartilhar este post


Link para o post
Compartilhar em outros sites
  Citar

Olha, veja a sua consulta. Está errada... Olha só.

SELECT * FROM recados WHERE status

 

  Citar

Traduzindo

SELECIONE todos os campos DA TABELA recados AONDE status

 

Deixa eu ver se entendi o que quis dizer. É que esta faltando um operador de comparação após o status?

 

Valeu!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não. A sintaxe do SELECT é assim.

 

SELECT campos FROM tabela

Agora olha o que você precisa.

  Citar

quando estiver ON ou OFF no campo status da tabela aovivo

 

Então... conseguiu entender? Ficaria assim.

SELECT status FROM aovivo

 

Aí aqui você muda

$valor = $dados["aovivo"];

Por isto

$valor = $dados['status'];

Agora, é importante que você entenda o que eu fiz. Não apenas copie o código, porque em outro momento você vai precisar fazer a mesma coisa e não vai saber.

 

Carlos Eduardo

Compartilhar este post


Link para o post
Compartilhar em outros sites
  Citar

Agora, é importante que você entenda o que eu fiz. Não apenas copie o código, porque em outro momento você vai precisar fazer a mesma coisa e não vai saber.

Perfeito Carlos, tem toda razão mas entendi sim o que fez. Bom mas agora está dizendo que o argumento fornecido não é um recurso válido do resultado do MySQL, dessa linha:

 

$dados = mysql_fetch_assoc($status);

Valeu pela força.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então tem algum erro na consulta. Adicione na linha da query o seguinte.

 

$sql = "aqui vai a consulta que estava ali dentro do mysql_query";
$status = mysql_query($sql) or die('Erro na consulta. Consulta enviada - '.$sql.'<br/>Erro do Mysql - '.mysql_error());

Deve imprimir a consulta enviada e o erro do Mysql. Deve ter alguma coisa errada, tipo o nome do campo, ou o nome da tabela.

 

Carlos Eduardo

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.