Clipper On Line • Ver Tópico - PHP - mysql_result

PHP - mysql_result

Discussão sobre outras linguagens de programação.

Moderador: Moderadores

 

PHP - mysql_result

Mensagempor cjp » 28 Fev 2015 22:38

Colegas,

Estou enfrentando um problema estranho em um PHP: tenho uma tabela no MySQL com a seguinte estrutura:

         cQuery:="CREATE TABLE recado ("+;
         "NRRECADO int(1),"+;
         "DATA date,"+;
          "HORA char(8),"+;
          "USUARIO char(1),"+;
          "RECADO mediumtext,"+;
          "RESPOSTA mediumtext,"+;
          "VISTO char(1))"


Já conferi pelo HeidiSQL que está mesmo com os registros nesta ordem.

Quando tento exibir campos da tabela em um PHP usando o mysql_result, desta forma:

 while (mysql_fetch_row($rs))
{
 
  echo '<br>';
  echo "Nr Recado: ".mysql_result($rs,$i,0);
  echo '<br>';
  echo "Data: ".mysql_result($rs,$i,1);
  echo '<br>';
  echo "Hora: ".mysql_result($rs,$i,2);
  echo '<br>';
  echo "Usuário: ".mysql_result($rs,$i,3);
  echo '<br>';
  echo "Recado: ".mysql_result($rs,$i,4);
  echo '<br>';
  if (mysql_result($rs,$i,4)>'2000-01-01')
     {
    echo "Data de resposta: ".mysql_result($rs,$i,5);
     echo '<br>';
     echo "Hora da resposta: ".mysql_result($rs,$i,6);
     echo '<br>';
     echo "Resposta: ".mysql_result($rs,$i,7);
     echo '<br>';
    }

$i++;
}


Estranhamente, até o campo Hora, tudo certo. Mas a partir do campo Usuário, a exibição fica errada. Ela está suprimindo o campo Usuário e passando ao próximo. Então, no campo Usuário (mysql_result($rs,$i,3)) está aparecendo o campo Recado; no recado, está aparecendo o Data da resposta, e assim por diante.

Ou seja, o campo Usuário, que é o quarto da ordem, não aparece no result.

Já conferi que o campo não está vazio.

Alguém sabe me dizer a razão disso? Estou fazendo algo errado?
Inacio de Carvalho Neto
cjp
Usuário Nível 6

Usuário Nível 6
 
Mensagens: 1527
Data de registro: 19 Nov 2010 21:29
Cidade/Estado: paraná
Curtiu: 10 vezes
Mens.Curtidas: 20 vezes

PHP - mysql_result

Mensagempor Toledo » 01 Mar 2015 07:30

Amigo, acho que seria mais fácil trocar a função mysql_fetch_row() por mysql_fetch_array(), assim você pode buscar o conteúdo dos campos pelo próprio nome dos campos, independente da ordem física que o campo está dentro da tabela. Veja um exemplo:

while ($dados = mysql_fetch_array($rs))
  {
 
    echo '';
    echo "Nr Recado: ".$dados['NRRECADO'];
    echo '';
    echo "Data: ".$dados['DATA'];
    echo '';
    echo "Hora: ".$dados['HORA'];
    echo '';
    echo "Usuário: ".$dados['USUARIO'];

  }


Abraços,
Toledo - Clipper On Line
toledo@pctoledo.com.br
Harbour 3.2/MiniGui/HwGui
Faça uma doação para o fórum, clique neste link: http://www.pctoledo.com.br/doacao
Avatar de usuário

Toledo
Administrador

Administrador
 
Mensagens: 3038
Data de registro: 22 Jul 2003 18:39
Cidade/Estado: Araçatuba - SP
Curtiu: 263 vezes
Mens.Curtidas: 258 vezes

PHP - mysql_result

Mensagempor cjp » 05 Mar 2015 01:13

Estranhamente, neste caso dois campos não aparecem: data e usuario.

Já testei com maiúsculas e com minúsculas (embora na tabela estejam com maiúsculas), porque o campo nrrecado só funcionou com minúsculas (embora também esteja com maiúscula na tabela, ao menos consultando pelo HeidiSQL), mas não funcionou.
Inacio de Carvalho Neto
cjp
Usuário Nível 6

Usuário Nível 6
 
Mensagens: 1527
Data de registro: 19 Nov 2010 21:29
Cidade/Estado: paraná
Curtiu: 10 vezes
Mens.Curtidas: 20 vezes

PHP - mysql_result

Mensagempor ANDRIL » 05 Mar 2015 09:56

Poste a query que esta usando para retorno dos dados.

Possivelmente o problema esta em sua tabela que foi criada via codigo. Tente cria-la diretamente pelo MYSQL e faça o teste para ver se ocorre o mesmo problema.

Ate+
Clipper 5.2e / Blinker 5.1 / Harbour 3.2 / GTwvg
Avatar de usuário

ANDRIL
Usuário Nível 5

Usuário Nível 5
 
Mensagens: 1270
Data de registro: 06 Jul 2004 00:44
Curtiu: 12 vezes
Mens.Curtidas: 46 vezes

PHP - mysql_result

Mensagempor cjp » 07 Mar 2015 01:31

Estou fazendo assim:

<?php
session_start();
require 'protege.php';
if (!isset($_SESSION['s_login'])) {
return;
}
?>
<html>
<head>
  <title>Verificando respostas a recados</title>
</head>
<body>
<?php

$banco = "xxx";
$usuario = "xxx";
$senha = "xxx";
$hostname = "mysql.xxx.com.br";

echo '<font size="38">';

$conn = mysql_connect($hostname,$usuario,$senha);
if (!$conn) {echo "Não foi possível conectar ao banco MySQL.
"; exit;}

$sel=mysql_select_db($banco,$conn);
if (!sel)
   {
    echo "Não foi possível abrir o banco de dados";
    echo 'MySQL Error: ' . mysql_error();
    exit;
   }
$sql="SELECT nrrecado,date_format(data,'%d/%m/%Y'),hora,recado,date_format(dtresposta,'%d/%m/%Y'),hrresposta,resposta FROM recado WHERE (usuario='I' AND visto='N') OR visto='S'";
$rs=mysql_query($sql);
if (!$rs)
{exit("Error in SQL");}

$nrec = mysql_num_rows($rs); //total de recados

echo "Total de recados: ".$nrec;
      echo '<br>';

while ($dados = mysql_fetch_array($rs))
{

  echo '<br>';
  echo '';
  echo "Nr Recado: ".$dados['nrrecado'];
  echo '<br>';
  echo '';
  echo "Data: ".$dados['Data'];
  echo '<br>';
  echo '';
  echo "Hora: ".$dados['hora'];
  echo '<br>';
  echo '';
  echo "Usuário: ".$dados['Usuario'];
  echo '<br>';
  echo '';
  echo "Recado: ".$dados['recado'];
  echo '<br>';
  if ($dados['dtresposta']>'2000-01-01')
     {
    echo "Data de resposta: ".$dados['dtresposta'];
     echo '<br>';
     echo "Hora da resposta: ".$dados['hrresposta'];
     echo '<br>';
     echo "Resposta: ".$dados['resposta'];
     echo '<br>';
    }

}
    
echo "</form>";
echo "</font>";
?>

</body>
</html>
Inacio de Carvalho Neto
cjp
Usuário Nível 6

Usuário Nível 6
 
Mensagens: 1527
Data de registro: 19 Nov 2010 21:29
Cidade/Estado: paraná
Curtiu: 10 vezes
Mens.Curtidas: 20 vezes

PHP - mysql_result

Mensagempor JoséQuintas » 07 Mar 2015 10:58

Não entendo de PHP, mas por acaso não é esta ordem que está sendo obedecida? Aqui não tem usuário.

$sql="SELECT nrrecado,date_format(data,'%d/%m/%Y'),hora,recado,date_format(dtresposta,'%d/%m/%Y'),hrresposta,resposta FROM recado WHERE 
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18013
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

PHP - mysql_result

Mensagempor cjp » 07 Mar 2015 14:47

Vc tinha razão, Quintas, é claro que faltava o usuario no select, e por isso não funcionava. Agora resolveu.

De quebra, resolvi também o problema com o campo Data. Descobri que o problema era o date_format. Usando a cláusula As, resolveu.

Muito obrigado a todos.
Inacio de Carvalho Neto
cjp
Usuário Nível 6

Usuário Nível 6
 
Mensagens: 1527
Data de registro: 19 Nov 2010 21:29
Cidade/Estado: paraná
Curtiu: 10 vezes
Mens.Curtidas: 20 vezes




Retornar para Outras linguagens de programação

Quem está online

Usuários vendo este fórum: Nenhum usuário registrado online e 12 visitantes


Ola Amigo, espero que meu site e forum tem lhe beneficiado, com exemplos e dicas de programacao.
Entao divulgue o link da Doacao abaixo para seus amigos e redes sociais ou faça uma doacao para o site forum...
MUITO OBRIGADO PELA SUA DOACAO!
Faça uma doação para o forum
cron
v
Olá visitante, seja bem-vindo ao Fórum Clipper On Line!
Efetue o seu login ou faça o seu Registro