Jump to content
Daniel Alves

Como preencher uma textbox com dados da BD MySql?!

Recommended Posts

Daniel Alves

Bom dia.

Estou a desenvolver o meu primeiro projecto em php e estou parado devido a um problema que não consigo solucionar.  :wallbash:

Como é que eu faço para preencher uma textbox com os dados da BD?!

Eu tenho o ID_operario mas não consigo que através desse ID as informações apareçam nas textbox do formulário.

Eis o código que tenho:

<?php

$con = mysql_connect("localhost", "root");
mysql_select_db("interim", $con);
if (!$con)
{
die('Problema na ligação ' . mysql_error());
}
mysql_select_db("operarios", $con);
$id= $_POST["op"];
//echo '<h1>$id</h1>';
$result = mysql_query("SELECT * FROM perarios WHERE id_operario = $id", $con);



?>
<html>
<title>Interim - Operários</title>
<link href="css/style.css" rel="stylesheet" type="text/css" />
</head>

<body>
<div id="container">
  <div id="leftSide">
  <fieldset>
<legend>Dados Pessoais</legend>
<form action="operarios_save.php" method="POST" class="form">


   <label for="id_operario">Código Operário</label>
    <div class="div_texbox">
      <input name="id_operario" type="text" class="textbox" id="id_operario" value="<?php echo $id_operario ?>" />
    </div>
         <label for="nome">Nome</label>
    <div class="div_texbox">
      <input name="nome" type="text" class="textbox" id="nome" value="<?php echo $nome ?>" />
    </div>
    <label for="apelido">Apelido</label>
    <div class="div_texbox">
      <input name="apelido" type="text" class="textbox" id="apelido" value="<?php echo $apelido ?>" />
    </div>

Nas textbox aparece-me o nome da variavel por exemplo $nome ou $apelido, em vez de aparecer o valor que está guardado na BD.

Porque será?

Share this post


Link to post
Share on other sites
herty

Ok tu estás a ir buscar os dados à base de dados

$result = mysql_query("SELECT * FROM perarios WHERE id_operario = $id", $con);

Mas não tas a por os dados do $result nas variaveis que queres.

Podes depois de fazer a query buscar quantas linhas te devolve.

mysql_num_rows($result);

Depois podes fazer um ciclo para mostrar todas a linhas...

$result = mysql_query("SELECT * FROM perarios WHERE id_operario = $id", $con);
$count=mysql_num_rows($result);

for($i =0; $i<$count; $i++)
{
    //les uma nova linha
    $registo= mysql_fetch_array($result)
   //mostra os dados
   echo $registo['coluna_da_BD'];
}

OU

$result = mysql_query("SELECT * FROM perarios WHERE id_operario = $id", $con);
//les uma nova linha enquanto houver
while ($registo = mysql_fetch_array($result)
{   
   //mostra os dados
   echo $registo['coluna_da_BD'];
}

De qualquer maneira podes ver aqui mais funções para acesso a dados MySql :confused:

http://php.net/manual/en/book.mysql.php

Share this post


Link to post
Share on other sites
Daniel Alves

Antes de mais muito obrigado pela tua ajuda.

Eu alterei o código como disseste e coloquei assim:

<?php

$con = mysql_connect("localhost", "root");
mysql_select_db("interim", $con);
if (!$con)
{
die('Problema na ligação ' . mysql_error());
}
mysql_select_db("operarios", $con);
$id= $_GET['op'];
echo ($id);

$result = mysql_query("SELECT * FROM perarios WHERE id_operario = $id", $con);

$result = mysql_query("SELECT * FROM perarios WHERE id_operario = $id", $con);
//les uma nova linha enquanto houver
while ($registo = mysql_fetch_array($result))
{   
   //mostra os dados
   echo $registo['id_operario'];
}

?>

E está a dar o seguinte erro: Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in C:\wamp\www\interim\operarios2.php on line 17

Linha 17:

while ($registo = mysql_fetch_array($result))

Não estou a entender.  :confused:

Share this post


Link to post
Share on other sites
IvanGS

é porque não encontrou a tabela...

faz isto e cola no phpmyadmin

echo "SELECT * FROM perarios WHERE id_operario = $id";

o $id é valor númerico ou é uma string????

Share this post


Link to post
Share on other sites
Daniel Alves

No phpmyadmin dá este erro:

#1054 - Unknown column '$id' in 'where clause'

$id é a variavel que criei... Tipo supostamente é um valor numérico...

mas como é obtido pelo metodo GET eu nao sei se ele ficou como string.

Ele não está a comparar o valor que está na base dados id_operario com a variável $id

O que eu queria era tipo SE $id= id_operario then mostra os dados todos do operario.

Isto está a dar cabo de mim  :wallbash:

Share this post


Link to post
Share on other sites
IvanGS

$result = mysql_query("SELECT * FROM perarios WHERE id_operario = '".$id."'", $con);

Share this post


Link to post
Share on other sites
Daniel Alves

PERFEITO.

De facto assim já nao dá o erro do código. No entando o erro principal mantem-se:

Nas textbox aparece-me o nome da variavel por exemplo $nome ou $apelido, em vez de aparecer o valor que está guardado na BD.

Porque será?

Mas agora aparece isto dentro das textbox: <br /> <font size='1'><table class='xdebug-error' dir='ltr' border='1' cellspacing='0' cellpadding='1'> <tr><th align='left' bgcolor='#f57900' colspan=

De certeza que são erros de sintaxe.

Eu tenho da seguinte forma:

label for="id_operario">Código Operário</label>
    <div class="div_texbox">
      <input name="id_operario" type="text" class="textbox" id="id_operario" value="<?php echo $row['$id_operario']; ?>" />
    </div>

Está errado?

Share this post


Link to post
Share on other sites
IvanGS

mete assim:

<?php

$con = mysql_connect("localhost", "root");
mysql_select_db("interim", $con);
if (!$con)
{
die('Problema na ligação ' . mysql_error());
}
mysql_select_db("operarios", $con);
$id= $_GET['op'];
echo ($id);

$result = mysql_query("SELECT * FROM perarios WHERE id_operario = $id", $con);

$result = mysql_query("SELECT * FROM perarios WHERE id_operario = $id", $con);
//les uma nova linha enquanto houver
while ($registo = mysql_fetch_array($result))
{  

echo '< label for="id_operario">Código Operário</label>';
   echo ' <div class="div_texbox">';
     echo ' <input name="id_operario" type="text" class="textbox" id="id_operario" value="'. echo $row['$id_operario']; .'" />';
    echo '</div>';
   echo $registo['id_operario'];
}

?>

se não der, altera esta linha:

echo ' <input name="id_operario" type="text" class="textbox" id="id_operario" value="'. echo $row['$id_operario']; .'" />';

para

echo ' <input name="id_operario" type="text" class="textbox" id="id_operario" value="'. $row['$id_operario']; .'" />';

Share this post


Link to post
Share on other sites
Daniel Alves

O que significa?

Parse error: syntax error, unexpected '.' in C:\wamp\www\interim\operarios2.php on line 22

Linha 22:

      echo ' <input name="id_operario" type="text" class="textbox" id="id_operario" value="'. $row['$id_operario']; .'" />';

Share this post


Link to post
Share on other sites
IvanGS

O que significa?

Parse error: syntax error, unexpected '.' in C:\wamp\www\interim\operarios2.php on line 22

Linha 22:

      echo ' <input name="id_operario" type="text" class="textbox" id="id_operario" value="'. $row['$id_operario'] .'" />';

experimenta... o que e que quer dizer sintax error?

Share this post


Link to post
Share on other sites
Daniel Alves

Eu ja tentei tirar os pontos mas mantem-se o erro...

As minhas maiores dificuldades são em construir as tags.

Não quero que me interpretes mal ou aches que eu não quero trabalhar.

Tipo eu só perguntei para não estar a fazer m****...

Vah mas desculpa lá. De facto estou a fazer perguntas estupidas. mas é mesmo porque nao sei.

Estou a fazer um esforço para aprender. Estou em estagio. E em estaa habituado a programar em VB6.

Chegar aqui e porem-me a programar em PHP sem ter ninguem que me ajude  :dontgetit:

Tenho feito tudo o que posso. Esta porcaria deste erro está a impedir-me de continuar...

Porque preciso ter as variaveis nas textbox para poder imprimir os contratos e etc etc

A finalidade do programa é imprimir contratos automaticamente segundo o operario qe estiver selecionado...

Share this post


Link to post
Share on other sites
IvanGS

mete aí o código da página...

Eu quando acabei o secundário sabia programar em :

C++, VB, Pascal, ASP, e PHP.

Neste Momento sei:

C, C++, C#, Pascal, VB, Delphi, ASP, PHP, AS2, AS3, JS, HTML, CSS...

dou-te um conselho, quando fazes por exemplo um echo fazes sempre assim:

echo "";

assim, nunca te esqueces de fechar as cosias...

Share this post


Link to post
Share on other sites
Daniel Alves

OK OK. Muito obrigado. A partir de agora vou fazer sempre isso.

Aqui está o código da página.

Estou a usar um estilo CSS. Isso tem mal?!?!

Aqui está o formulario que criei em html:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Interim - Operários</title>
<link href="css/style.css" rel="stylesheet" type="text/css" />
</head>

<body>
<div id="container">
  <div id="top">
    <h1>Interim - Operários</h1>
  </div>
  <div id="leftSide">
  <fieldset>
<legend>Dados Pessoais</legend>
<form action="operarios_save.php" method="POST" class="form">
  <label for="id_operario">Código Operário</label>
    <div class="div_texbox">
      <input name="id_operario" type="text" class="textbox" id="id_operario" value="" />
    </div>
 <label for="nome">Nome</label>
    <div class="div_texbox">
      <input name="nome" type="text" class="textbox" id="nome" value="" />
    </div>
    <label for="apelido">Apelido</label>
    <div class="div_texbox">
      <input name="apelido" type="text" class="textbox" id="apelido" value="" />
    </div>
    <label for="sexo">Sexo</label>
    <div class="div_radio">
      <Input type = 'Radio' Name ='sexo' id="sexo" value= 'Masculino'>Masculino
      <Input type = 'Radio' Name ='sexo' id="sexo" value= 'Feminino'>Feminino
    </div>
     <label for="data_nascimento">Data Nascimento</label>
    <div class="div_texbox">
      <input name="data_nascimento" type="text" class="textbox" id="data_nascimento" value="" />
    </div>
     <label for="naturalidade">Naturalidade</label>
    <div class="div_texbox">
      <input name="naturalidade" type="text" class="textbox" id="naturalidade" value="" />
    </div>
      <label for="nacionalidade">Nacionalidade</label>
    <div class="div_texbox">
      <input name="nacionalidade" type="text" class="textbox" id="nacionalidade" value="" />
    </div>
     <label for="morada">Morada</label>
    <div class="div_texbox">
      <input name="morada" type="text" class="textbox" id="morada" value="" />
    </div>
    <label for="freguesia">Freguesia</label>
    <div class="div_texbox">
      <input name="freguesia" type="text" class="textbox" id="freguesia" value="" />
    </div>
        <label for="cidade">Cidade</label>
    <div class="div_texbox">
      <input name="cidade" type="text" class="textbox" id="cidade" value="" />
    </div>
     <label for="cod_postal">Código Postal</label>
    <div class="div_texbox">
      <input name="cod_postal" type="text" class="textbox" id="cod_postal" value="" />
    </div>
     <label for="cod_pais">Código País</label>
    <div class="div_texbox">
      <input name="cod_pais" type="text" class="textbox" id="cod_pais" value="" />
    </div>   
    
    <br />
    <br />
    <br />
    <hr size="1">
   
    <legend>Contactos</legend>
     <label for="telefone">Telefone</label>
    <div class="div_texbox">
      <input name="telefone" type="text" class="textbox" id="telefone" value="" />
    </div>
    <label for="telemovel">Telemóvel</label>
    <div class="div_texbox">
      <input name="telemovel" type="text" class="textbox" id="telemovel" value="" />
    </div>
    <label for="email">Email</label>
    <div class="div_texbox">
      <input name="email" type="text" class="textbox" id="email" value="" />
    </div>

<br />
    <br />
    <br />
    <hr size="1">
   
    <legend>Dados Adicionais</legend>
     <label for="nr_identificacao">Nº Identificação</label>
    <div class="div_texbox">
      <input name="nr_identificacao" type="text" class="textbox" id="nr_identificacao" value="" />
    </div>
    <label for="niss">NISS</label>
    <div class="div_texbox">
      <input name="niss" type="text" class="textbox" id="niss" value="" />
    </div>
    <label for="nif">NIF</label>
    <div class="div_texbox">
      <input name="nif" type="text" class="textbox" id="nif" value="" />
    </div>
    <label for="nr_passaporte">Nº Passaporte</label>
    <div class="div_texbox">
      <input name="nr_passaporte" type="text" class="textbox" id="nr_passaporte" value="" />
    </div>
    <label for="profissao">Profissão</label>
    <div class="div_texbox">
      <input name="profissao" type="text" class="textbox" id="profissao" value="" />
    </div>
    <label for="carta_conducao">Carta de Condução</label>
    <div class="div_radio">
      <Input type = 'Radio' Name ='carta_conducao' value= 'Sim'>Sim
      <Input type = 'Radio' Name ='carta_conducao' value= 'Nao'>Não
    </div>
     <label for="estado_civil">Estado Civil</label>
    <div class="div_texbox">
    <select name="mydropdown" id="estado_civil" name= "estado_civil">
	<option id="estado_civil" name= "estado_civil" value="Solteiro">Solteiro(a)</option>
	<option id="estado_civil" name= "estado_civil" value="Casado">Casado(a)</option>
	<option id="estado_civil" name= "estado_civil" value="Uniao de Facto">União de Facto</option>
        <option id="estado_civil" name= "estado_civil" value="Divorciado">Divorciado(a)</option>
        <option id="estado_civil" name= "estado_civil" value="Viuvo">Viuvo(a)</option>
</select>
    </div>
    <label for="nr_filhos">Nº Filhos</label>
    <div class="div_texbox">
      <input name="nr_filhos" type="text" class="textbox" id="nr_filhos" value="" />
    </div>
    <label for="esposa_trabalha">Esposa Trabalha</label>
    <div class="div_radio">
      <Input type = 'Radio' Name ='esposa_trabalha' value= 'Sim'>Sim
      <Input type = 'Radio' Name ='esposa_trabalha' value= 'Nao'>Não
    </div>
     <label for="nib">NIB</label>
    <div class="div_texbox">
      <input name="nib" type="text" class="textbox" id="nib" value="" />
    </div>
<label for="banco">Banco</label>
    <div class="div_texbox">
      <input name="banco" type="text" class="textbox" id="banco" value="" />
    </div>
<center>
<input name="Guardar" type="Submit" value="Guardar Operário" class="buttons" />
<a align=center href=\"index.html\"><h4> Voltar </h4></a> 
</center>
</form>

<div class="clear"></div>

  <div class="clear"></div>
</body>
</html>

Eu estava a tentar reaproveitar o formulario em HTML e inserir-lhe código PHP para conseguir passar as informações para as textbox.

Aqui estáo que fiz:

<?php

$con = mysql_connect("localhost", "root");
mysql_select_db("interim", $con);
if (!$con)
{
die('Problema na ligação ' . mysql_error());
}
mysql_select_db("operarios", $con);
$id= $_GET['op'];
echo ($id);

$result = mysql_query("SELECT * FROM perarios WHERE id_operario = $id", $con);

$result = mysql_query("SELECT * FROM perarios WHERE id_operario = $id", $con);
//les uma nova linha enquanto houver
while ($registo = mysql_fetch_array($result))
{  

echo '< label for="id_operario">Código Operário</label>';
   echo ' <div class="div_texbox">';
      echo ' <input name="id_operario" type="text" class="textbox" id="id_operario" value="'. $row['$id_operario'] .'" />';
    echo '</div>';
   echo $registo['id_operario'];
}

?>
         <label for="nome">Nome</label>
    <div class="div_texbox">
      <input name="nome" type="text" class="textbox" id="nome" value="<?php echo $nome ?>" />
    </div>
    <label for="apelido">Apelido</label>
    <div class="div_texbox">
      <input name="apelido" type="text" class="textbox" id="apelido" value="<?php echo $apelido ?>" />
    </div>
    <label for="sexo">Sexo</label>
    <div class="div_radio">
      <Input type = 'Radio' Name ='sexo' id="sexo" value= 'Masculino'>Masculino
      <Input type = 'Radio' Name ='sexo' id="sexo" value= 'Feminino'>Feminino
    </div>
     <label for="data_nascimento">Data Nascimento</label>
    <div class="div_texbox">
      <input name="data_nascimento" type="text" class="textbox" id="data_nascimento" value="" />
    </div>
     <label for="naturalidade">Naturalidade</label>
    <div class="div_texbox">
      <input name="naturalidade" type="text" class="textbox" id="naturalidade" value="" />
    </div>
      <label for="nacionalidade">Nacionalidade</label>
    <div class="div_texbox">
      <input name="nacionalidade" type="text" class="textbox" id="nacionalidade" value="" />
    </div>
     <label for="morada">Morada</label>
    <div class="div_texbox">
      <input name="morada" type="text" class="textbox" id="morada" value="" />
    </div>
    <label for="freguesia">Freguesia</label>
    <div class="div_texbox">
      <input name="freguesia" type="text" class="textbox" id="freguesia" value="" />
    </div>
        <label for="cidade">Cidade</label>
    <div class="div_texbox">
      <input name="cidade" type="text" class="textbox" id="cidade" value="" />
    </div>
     <label for="cod_postal">Código Postal</label>
    <div class="div_texbox">
      <input name="cod_postal" type="text" class="textbox" id="cod_postal" value="" />
    </div>
     <label for="cod_pais">Código País</label>
    <div class="div_texbox">
      <input name="cod_pais" type="text" class="textbox" id="cod_pais" value="" />
    </div>   
    
    <br />
    <br />
    <br />
    <hr size="1">
   
    <legend>Contactos</legend>
     <label for="telefone">Telefone</label>
    <div class="div_texbox">
      <input name="telefone" type="text" class="textbox" id="telefone" value="" />
    </div>
    <label for="telemovel">Telemóvel</label>
    <div class="div_texbox">
      <input name="telemovel" type="text" class="textbox" id="telemovel" value="" />
    </div>
    <label for="email">Email</label>
    <div class="div_texbox">
      <input name="email" type="text" class="textbox" id="email" value="" />
    </div>

<br />
    <br />
    <br />
    <hr size="1">
   
    <legend>Dados Adicionais</legend>
     <label for="nr_identificacao">Nº Identificação</label>
    <div class="div_texbox">
      <input name="nr_identificacao" type="text" class="textbox" id="nr_identificacao" value="" />
    </div>
    <label for="niss">NISS</label>
    <div class="div_texbox">
      <input name="niss" type="text" class="textbox" id="niss" value="" />
    </div>
    <label for="nif">NIF</label>
    <div class="div_texbox">
      <input name="nif" type="text" class="textbox" id="nif" value="" />
    </div>
    <label for="nr_passaporte">Nº Passaporte</label>
    <div class="div_texbox">
      <input name="nr_passaporte" type="text" class="textbox" id="nr_passaporte" value="" />
    </div>
    <label for="profissao">Profissão</label>
    <div class="div_texbox">
      <input name="profissao" type="text" class="textbox" id="profissao" value="" />
    </div>
    <label for="carta_conducao">Carta de Condução</label>
    <div class="div_radio">
      <Input type = 'Radio' Name ='carta_conducao' value= 'Sim'>Sim
      <Input type = 'Radio' Name ='carta_conducao' value= 'Nao'>Não
    </div>
     <label for="estado_civil">Estado Civil</label>
    <div class="div_texbox">
    <select name="mydropdown" id="estado_civil" name= "estado_civil">
	<option id="estado_civil" name= "estado_civil" value="Solteiro">Solteiro(a)</option>
	<option id="estado_civil" name= "estado_civil" value="Casado">Casado(a)</option>
	<option id="estado_civil" name= "estado_civil" value="Uniao de Facto">União de Facto</option>
        <option id="estado_civil" name= "estado_civil" value="Divorciado">Divorciado(a)</option>
        <option id="estado_civil" name= "estado_civil" value="Viuvo">Viuvo(a)</option>
</select>
    </div>
    <label for="nr_filhos">Nº Filhos</label>
    <div class="div_texbox">
      <input name="nr_filhos" type="text" class="textbox" id="nr_filhos" value="" />
    </div>
    <label for="esposa_trabalha">Esposa Trabalha</label>
    <div class="div_radio">
      <Input type = 'Radio' Name ='esposa_trabalha' value= 'Sim'>Sim
      <Input type = 'Radio' Name ='esposa_trabalha' value= 'Nao'>Não
    </div>
     <label for="nib">NIB</label>
    <div class="div_texbox">
      <input name="nib" type="text" class="textbox" id="nib" value="" />
    </div>
<label for="banco">Banco</label>
    <div class="div_texbox">
      <input name="banco" type="text" class="textbox" id="banco" value="" />
    </div>
  
<center>
<input name="Guardar" type="Submit" value="Guardar Operário" class="buttons" /><br />
<a href="javascript:self.print()"> <h4>Imprimir Capa de Rosto</h4></a>
<a align=center href=\"index.html\"><h4> Voltar </h4></a> <br />
</center>

</form>
</fieldset>
<div class="clear"></div>

  <div class="clear"></div>
</body>
</html>


Muito Obrigado pela tua ajuda. Acredita que estou a dar o meu melhor. Mas nao está facil. Caí aqui mesmo desprevenido.  :)

Share this post


Link to post
Share on other sites
Daniel Alves

Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in C:\wamp\www\interim\operarios2.php on line 16

Isto são problemas com variaveis ou nao?!

Linha 16:

while ($registo = mysql_fetch_array($result))

Share this post


Link to post
Share on other sites
IvanGS

isso é um problema com as querys....

tens a query (variavel result) duas vezes, mete so uma e faz isto:

echo "SELECT * FROM perarios WHERE id_operario = $id"."<br />";


ali'as isso foi o problema que te deu abocado e nao actualizas-te o código... isso é uma string, logo tens que meter entre pelicas...

Share this post


Link to post
Share on other sites
brunoais

Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in C:\wamp\www\interim\operarios2.php on line 16

Isto são problemas com variaveis ou nao?!

Linha 16:

while ($registo = mysql_fetch_array($result))

usa isto: http://php.net/manual/en/function.mysql-error.php


"[Os jovens da actual geração]não lêem porque não envolve um telecomando que dê para mirar e atirar, não falam porque a trapalhice é rainha e o calão é rei" autor: thoga31

Life is a genetically transmitted disease, induced by sex, with death rate of 100%.

Share this post


Link to post
Share on other sites
laboss

olha uma cena aqui :

      echo ' <input name="id_operario" type="text" class="textbox" id="id_operario" value="'. $row['$id_operario'] .'" />';

nao era suposto ser

      echo ' <input name="id_operario" type="text" class="textbox" id="id_operario" value="'. $row['id_operario'] .'" />';

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.