Clipper On Line • Ver Tópico - MySQL em PHP

MySQL em PHP

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

Moderador: Moderadores

 

MySQL em PHP

Mensagempor cjp » 05 Jul 2014 18:26

Estou tentando acessar meu banco de dados MySQL por meio do PHP, mas não estou conseguindo. Até conecta, mas não estou conseguindo acessar a tabela. Meu PHP está assim:

<html>
<head>
  <title>Criando recado</title>
</head>
<body>
<?php
$banco = "xxx";
$usuario = "xxx";
$senha = "xxx";
$hostname = "mysql.xxx.com.br";
$rec= $_POST['recado'];
$dst= $_POST['aDst'];

$conn = mysql_connect($hostname,$usuario,$senha,$banco);
if (!$conn) {echo "Não foi possível conectar ao banco MySQL.
"; exit;}
else {echo "Parabéns!! A conexão ao banco de dados ocorreu normalmente!.
";}

$sql = "SHOW TABLES FROM '".$banco."'";
$result = mysql_query($sql);

if (!$result) {
    echo "DB Error, could not list tables\n";
    echo 'MySQL Error: ' . mysql_error();
    exit;
}

   $result = mysql_query("INSERT INTO recado values ('".date('Y-m-d')."','".date("i").":".date("s")."','".$dst."','".$rec."',' ','N')");
if (!$result)
   {
    echo "Não foi possível incluir os dados";
    echo 'MySQL Error: ' . mysql_error();
    exit;
   }
else
   echo "Recado inserido com sucesso";

?>


Na primeira parte (conexão), está funcionando sem problema.

Na segunda (show tables), que eu coloquei apenas para teste, já retorna falso.

Na terceira (insert into) dá o seguinte erro:

MySQL Error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''inaciobr2'' at line 1


O que eu estou fazendo errado?
Inacio de Carvalho Neto
cjp
Usuário Nível 5

Usuário Nível 5
 
Mensagens: 1162
Data de registro: 19 Nov 2010 21:29
Cidade/Estado: paraná
Curtiu: 8 vezes
Mens.Curtidas: 12 vezes

MySQL em PHP

Mensagempor Toledo » 05 Jul 2014 19:04

cjp escreveu:Na segunda (show tables), que eu coloquei apenas para teste, já retorna falso.

O nome da tabela não pode vir entre aspas (simples ou dupla).

cjp escreveu:Na terceira (insert into) dá o seguinte erro:

Sempre monte o query do comando sql em uma variável e depois use o comando mysql_query(), como você fez no Show Tables. Se não der certo, use o comando echo para mostrar o conteúdo da variável com o query que você montou, assim você pode ver se está tudo certo com o query. Por exemplo:

$sql="INSERT INTO recado values ('".date('Y-m-d')."','".date('i').":".date('s')."','".$dst."','".$rec."',' ','N')";
echo $sql;


E tenha muita atenção no uso de aspas simples e duplas em uma query.

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: 3076
Data de registro: 22 Jul 2003 18:39
Cidade/Estado: Araçatuba - SP
Curtiu: 251 vezes
Mens.Curtidas: 254 vezes

MySQL em PHP

Mensagempor cjp » 06 Jul 2014 02:07

Sem dúvida assim facilita.

Percebi que havia um erro no campo hora, mas esse erro não era o problema.

Também estava faltando um campo da tabela, e essa era a causa do erro.

Mas ainda está dando "No database selected".

Usando DBF, a gente fazia:

 $rs=odbc_exec($conn,$sql);


Portanto, chamando a $conn junto. No MySQL também não teria que fazer isso? Testei assim mas não funcionou.

Minha função está assim:

<html>
<head>
  <title>Criando recado</title>
</head>
<body>
<?php
$banco = "xxx";
$usuario = "xxx";
$senha = "xxx";
$hostname = "mysql.xxx.com.br";
$rec= $_POST['recado'];
$dst= $_POST['aDst'];

$conn = mysql_connect($hostname,$usuario,$senha,$banco);
if (!$conn) {echo "Não foi possível conectar ao banco MySQL.
"; exit;}
//else {echo "Parabéns!! A conexão ao banco de dados ocorreu normalmente!.
//";}

$sql="INSERT INTO recado values ('12','".date('Y-m-d')."','".date('H').":".date('i').":".date('s')."','".$dst."','".$rec."',' ','N')";
echo $sql;
   
   $result = mysql_query($sql);
if (!$result)
   {
    echo "Não foi possível incluir os dados";
    echo 'MySQL Error: ' . mysql_error();
    exit;
   }
else
   echo "Recado inserido com sucesso";

?>
Inacio de Carvalho Neto
cjp
Usuário Nível 5

Usuário Nível 5
 
Mensagens: 1162
Data de registro: 19 Nov 2010 21:29
Cidade/Estado: paraná
Curtiu: 8 vezes
Mens.Curtidas: 12 vezes

MySQL em PHP

Mensagempor Toledo » 06 Jul 2014 09:52

cjp escreveu:Mas ainda está dando "No database selected".

Tem que selecionar o banco de dados antes de usar a função mysql_query(), para isto use a função mysql_select_db()

Veja também os parâmetros corretos usados na função mysql_connect().

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: 3076
Data de registro: 22 Jul 2003 18:39
Cidade/Estado: Araçatuba - SP
Curtiu: 251 vezes
Mens.Curtidas: 254 vezes

MySQL em PHP

Mensagempor cjp » 07 Jul 2014 17:55

Funcionou, obrigado.

Mas eu ainda preciso da tua ajuda pra mais uma coisa: como faço para extrair um dado da base de dados MySQL? Tentei de várias formas, conforme pesquisa na internet, mas nenhuma funciona.

Eu preciso apenas saber qual o número do último registro na base.

Minha função está assim:

<html>
<head>
  <title>Criando recado</title>
</head>
<body>
<?php
$banco = "xxx";
$usuario = "xxx";
$senha = "xxxx";
$hostname = "mysql.xxxxx.com.br";
$rec= $_POST['recado'];
$dst= $_POST['aDst'];

$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 FROM recado ORDER BY nrrecado DESC LIMIT 1";
$result = mysql_query($sql);
if (!$result)
   {
    echo "Não foi possível abrir os dados";
    echo 'MySQL Error: ' . mysql_error();
    exit;
   }
$nrec = ($result,"nrrecado");
echo $nrec;

$sql2="INSERT INTO recado values ('13','".date('Y-m-d')."','".date('H').":".date('i').":".date('s')."','".$dst."','".$rec."',' ','N')";
   
   $result = mysql_query($sql2);
if (!$result)
   {
    echo "Não foi possível incluir os dados";
    echo 'MySQL Error: ' . mysql_error();
    exit;
   }
else
   echo "Recado inserido com sucesso";

?>


Uma outra dúvida: como faço para aumentar o tamanho (principalmente a altura) de um "combobox" (não sei qual é o nome correto)?
Inacio de Carvalho Neto
cjp
Usuário Nível 5

Usuário Nível 5
 
Mensagens: 1162
Data de registro: 19 Nov 2010 21:29
Cidade/Estado: paraná
Curtiu: 8 vezes
Mens.Curtidas: 12 vezes

MySQL em PHP

Mensagempor Toledo » 07 Jul 2014 18:35

cjp escreveu:como faço para extrair um dado da base de dados MySQL?

Quando o retorno da query é de apenas um registro, veja a função mysql_fetch_row() e para mais de um registro, veja mysql_fetch_array().

cjp escreveu:como faço para aumentar o tamanho (principalmente a altura) de um "combobox" (não sei qual é o nome correto)?

Dê um exemplo de como você está usando este "combobox".

Atenção: novamente volto a lembrar que evite postar senha pessoal nos posts.

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: 3076
Data de registro: 22 Jul 2003 18:39
Cidade/Estado: Araçatuba - SP
Curtiu: 251 vezes
Mens.Curtidas: 254 vezes

MySQL em PHP

Mensagempor cjp » 08 Jul 2014 01:17

Desculpe, desta vez eu esqueci de apagar os dados. Tentei editar, mas não consegui. Vc consegue apagar?

Deu certo com o mysql_num_rows(). Obrigado.

Mas não estou conseguindo inserir esse dado na tabela. Está dando o seguinte erro:

152014-07-08','01:07:33','Y','teste de recado via PHP no SQL',' ','N')Não foi possível incluir os dadosMySQL Error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '152014-07-08','01:07:33','Y','teste de recado via PHP no SQL',' ','N')' at line 1


Estou estranhando esse erro. Veja como está a query:

$sql2="INSERT INTO recado values ('".$nrec2."','".date('Y-m-d')."','".date('H').":".date('i').":".date('s')."','".$dst."','".$rec."',' ','N')";


Veja que eu estou colocando ' e , para separar o primeiro item ($nrec2) do segundo (data), mas estranhamente no erro consta como se não tivesse nem o ' nem a ,.

Não sei se a conversão do numérico pra string com strval() está correta, mas aparentemente não é aí que está dando erro.

Meu PHP todo está assim:

<html>
<head>
  <title>Criando recado</title>
</head>
<body>
<?php
$banco = "xxx";
$usuario = "xxx";
$senha = "xxx";
$hostname = "mysql.xxx.com.br";
$rec= $_POST['recado'];
$dst= $_POST['aDst'];

$conn = mysql_connect($hostname,$usuario,$senha);
if (!$conn) {echo "Não foi possível conectar ao banco MySQL.
"; exit;}
//else {echo "Parabéns!! A conexão ao banco de dados ocorreu normalmente!.
//";}

$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 * FROM recado"; // seleciona todos os registros
$rs=mysql_query($sql);
if (!$rs)
{exit("Error in SQL");}

$nrec = mysql_num_rows($rs); //total de registros
//echo $nrec;
$nrec2=strval($nrec);
//echo $nrec2;

$sql2="INSERT INTO recado values ('".$nrec2."','".date('Y-m-d')."','".date('H').":".date('i').":".date('s')."','".$dst."','".$rec."',' ','N')";
   
   echo $sql2;
   
   $result = mysql_query($sql2);
if (!$result)
   {
    echo "Não foi possível incluir os dados";
    echo 'MySQL Error: ' . mysql_error();
    exit;
   }
else
   echo "Recado inserido com sucesso";

?>


Quanto à "combobox", está assim:

          echo "<font face='arial' color='red' size='14'>";
          echo "<select name='amerc' id='amerc'>";
          echo "<option value='prmercador'>Mercadorama</option>";
          echo "<option value='prmuffato'>Muffato</option>";
          echo "<option value='prpaodeacu'>Pão de Açúcar</option>";
        echo "<option value='prcarref'>Carrefour</option>";

          <BR>
          <BR>
          <input size="51" type="submit" id="Prosseguir" value="Prosseguir">
          <BR>
          <BR>
          <td><a href="lcompleta.php" target="_top">Lista completa</a></td>
Inacio de Carvalho Neto
cjp
Usuário Nível 5

Usuário Nível 5
 
Mensagens: 1162
Data de registro: 19 Nov 2010 21:29
Cidade/Estado: paraná
Curtiu: 8 vezes
Mens.Curtidas: 12 vezes

MySQL em PHP

Mensagempor Toledo » 08 Jul 2014 08:20

cjp escreveu:Mas não estou conseguindo inserir esse dado na tabela.

Estranho isto! Você está usando aspas simples no primeiro campo, mas você tem certeza se este campo é realmente caractere?

No caso do combobox, geralmente já vem na altura padrão, mas você pode tenta o seguinte:
<select name='amerc' id='amerc' style="height:30px;">

Não tenho certeza se este style vai funcionar em todos os navegadores, é bom fazer um teste.

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: 3076
Data de registro: 22 Jul 2003 18:39
Cidade/Estado: Araçatuba - SP
Curtiu: 251 vezes
Mens.Curtidas: 254 vezes

MySQL em PHP

Mensagempor cjp » 08 Jul 2014 23:24

Vixe, bobeira minha, desculpa. O campo é numérico. Tirei as aspas e funcionou. Obrigado.

O style também funcionou. Obrigado.

Só ficou um pequeno problema: aumentou o tamanho da caixa, mas o texto exibido dentro dela não. Tem como aumentar também?
Inacio de Carvalho Neto
cjp
Usuário Nível 5

Usuário Nível 5
 
Mensagens: 1162
Data de registro: 19 Nov 2010 21:29
Cidade/Estado: paraná
Curtiu: 8 vezes
Mens.Curtidas: 12 vezes

MySQL em PHP

Mensagempor Toledo » 09 Jul 2014 00:25

Sim, tem como, tente o seguinte:

<select name='amerc' id='amerc' style="height:30px; font-size:12pt;">


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: 3076
Data de registro: 22 Jul 2003 18:39
Cidade/Estado: Araçatuba - SP
Curtiu: 251 vezes
Mens.Curtidas: 254 vezes

MySQL em PHP

Mensagempor cjp » 09 Jul 2014 00:48

Isso mesmo que eu queria. Muito obrigado.
Inacio de Carvalho Neto
cjp
Usuário Nível 5

Usuário Nível 5
 
Mensagens: 1162
Data de registro: 19 Nov 2010 21:29
Cidade/Estado: paraná
Curtiu: 8 vezes
Mens.Curtidas: 12 vezes




Retornar para Outras linguagens de programação

Quem está online

Usuários vendo este fórum: Nenhum usuário registrado online e 2 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