Jump to content

Dados tabela MYSQL em tabela HTML


Recommended Posts

Posted

Boas pessoal,

Criei um formulário de registo em php onde os clientes fazem o registo, criei a respectiva tabela na BD MYSQL. Tudo ok...o cliente regista-se e aparecem os dados na tabela.

A minha questão é a seguinte. Eu queria que os dados fossem também actualizados numa tabela em HTML. Ou seja, um cliente faz um registo e em vez de estar sempre a ir ao phpmyadmin vejo os updates na tabela em html.

Como faço isso?

Deixo aqui o código do formulário:

<?php require_once('Connections/conexao.php'); ?>
<?php
if (!function_exists("GetSQLValueString")) {
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "")
{
 if (PHP_VERSION < 6) {
   $theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;
 }
 $theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);
 switch ($theType) {
   case "text":
     $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
     break;   
   case "long":
   case "int":
     $theValue = ($theValue != "") ? intval($theValue) : "NULL";
     break;
   case "double":
     $theValue = ($theValue != "") ? doubleval($theValue) : "NULL";
     break;
   case "date":
     $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
     break;
   case "defined":
     $theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
     break;
 }
 return $theValue;
}
}
$editFormAction = $_SERVER['PHP_SELF'];
if (isset($_SERVER['QUERY_STRING'])) {
 $editFormAction .= "?" . htmlentities($_SERVER['QUERY_STRING']);
}
if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "form1")) {
 $insertSQL = sprintf("INSERT INTO clientes (cliente_nome, cliente_apelido, cliente_localidade, cliente_email, cliente_telefone, cliente_nif, cliente_data) VALUES (%s, %s, %s, %s, %s, %s, %s)",
                      GetSQLValueString($_POST['cliente_nome'], "text"),
                      GetSQLValueString($_POST['cliente_apelido'], "text"),
                      GetSQLValueString($_POST['cliente_localidade'], "text"),
                      GetSQLValueString($_POST['cliente_email'], "text"),
                      GetSQLValueString($_POST['cliente_telefone'], "text"),
                      GetSQLValueString($_POST['cliente_nif'], "text"),
                      GetSQLValueString($_POST['cliente_data'], "date"));
 mysql_select_db($database_conexao, $conexao);
 $Result1 = mysql_query($insertSQL, $conexao) or die(mysql_error());
 $insertGoTo = "sucesso.php";
 if (isset($_SERVER['QUERY_STRING'])) {
   $insertGoTo .= (strpos($insertGoTo, '?')) ? "&" : "?";
   $insertGoTo .= $_SERVER['QUERY_STRING'];
 }
 header(sprintf("Location: %s", $insertGoTo));
}
?>
<!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=utf-8" />
<title>Formulário de Registo</title>
</head>
<body>
<form action="<?php echo $editFormAction; ?>" method="post" name="form1" id="form1">
 <table align="center">
   <tr valign="baseline">
     <td nowrap="nowrap" align="right">Nome:</td>
     <td><input type="text" name="cliente_nome" value="" size="32" /></td>
   </tr>
   <tr valign="baseline">
     <td nowrap="nowrap" align="right">Apelido:</td>
     <td><input type="text" name="cliente_apelido" value="" size="32" /></td>
   </tr>
   <tr valign="baseline">
     <td nowrap="nowrap" align="right">Localidade:</td>
     <td><input type="text" name="cliente_localidade" value="" size="32" /></td>
   </tr>
   <tr valign="baseline">
     <td nowrap="nowrap" align="right">Email:</td>
     <td><input type="text" name="cliente_email" value="" size="32" /></td>
   </tr>
   <tr valign="baseline">
     <td nowrap="nowrap" align="right">Telefone:</td>
     <td><input type="text" name="cliente_telefone" value="" size="32" /></td>
   </tr>
   <tr valign="baseline">
     <td nowrap="nowrap" align="right">NIF:</td>
     <td><input type="text" name="cliente_nif" value="" size="32" /></td>
   </tr>
   <tr valign="baseline">
     <td nowrap="nowrap" align="right"> </td>
     <td><input type="submit" value="Submeter" /></td>
   </tr>
 </table>
 <input type="hidden" name="cliente_data" value="" />
 <input type="hidden" name="MM_insert" value="form1" />
</form>
<p> </p>
</body>
</html>

E da conexão à tabela:

<?php
# FileName="Connection_php_mysql.htm"
# Type="MYSQL"
# HTTP="true"
$hostname_conexao = "localhost";
$database_conexao = "cartaocliente";
$username_conexao = "root";
$password_conexao = "";
$conexao = mysql_pconnect($hostname_conexao, $username_conexao, $password_conexao) or trigger_error(mysql_error(),E_USER_ERROR);
?>
Posted (edited)

como naaaooo?

eu no primeiro link que te dei, tem la um codigo q resulta a 100%

so falta mesmo meter a tabela...

<?php

$conn = mysql_connect("SERVIDOR_MYSQL", "root", "");

if (!$conn) {
echo "Unable to connect to DB: " . mysql_error();
exit;
}

if (!mysql_select_db("NOME_BASE_DADOS")) {
echo "Unable to select mydbname: " . mysql_error();
exit;
}

$sql = "SELECT id, nome, contribuinte, idade
	FROM   clientes
	WHERE  id= 1"; //alteras para os dados que pretendes da query
$result = mysql_query($sql);

if (!$result) {
echo "Could not successfully run query ($sql) from DB: " . mysql_error();
exit;
}
if (mysql_num_rows($result) == 0) {
echo "No rows found, nothing to print so am exiting";
exit;
}

// While a row of data exists, put that row in $row as an associative array
// Note: If you're expecting just one row, no need to use a loop
// Note: If you put extract($row); inside the following loop, you'll
//	   then create $userid, $fullname, and $userstatus ?>

<table>
<tr>
<td>ID</td>
<td>Nome</td>
<td>Contribuinte</td>
<td>Idade</td>
</tr>
<?php

while ($row = mysql_fetch_assoc($result)) { //ao fazeres fetch_assoc, vai ser criada uma array, que acedes pelo nome da coluna na db
echo "<tr>";
echo "<td>".$row["id"]."</td>";
echo "<td>".$row["nome"]."</td>";
echo "<td>".$row["contribuinte"]."</td>";
echo "<td>".$row["idade"]."</td>";
echo "</tr>";
}

mysql_free_result($result);

?>
</table>
Edited by I-NOZex

B2R » Beat2Revolution v3.0b | Regista e divulga-nos

beat2revolution.net
Posted

Isto foi o que fiz:

<?php
$conn = mysql_connect("localhost", "root", "");
if (!$conn) {
       echo "Unable to connect to DB: " . mysql_error();
       exit;
}
if (!mysql_select_db("clientes")) {
       echo "Unable to select mydbname: " . mysql_error();
       exit;
}
$sql = "SELECT id, nome, contribuinte, idade
               FROM   clientes
               WHERE  id= 7"; //alteras para os dados que pretendes da query
$result = mysql_query($sql);
if (!$result) {
       echo "Could not successfully run query ($sql) from DB: " . mysql_error();
       exit;
}
if (mysql_num_rows($result) == 0) {
       echo "No rows found, nothing to print so am exiting";
       exit;
}
// While a row of data exists, put that row in $row as an associative array
// Note: If you're expecting just one row, no need to use a loop
// Note: If you put extract($row); inside the following loop, you'll
//         then create $userid, $fullname, and $userstatus ?>
<table>
<tr>
       <td>ID</td>
       <td>Nome</td>
 <td>Apelido</td>
 <td>Localidade</td>
 <td>Email</td>
 <td>Telefone</td>
       <td>Contribuinte</td>
</tr>
<?php
while ($row = mysql_fetch_assoc($result)) { //ao fazeres fetch_assoc, vai ser criada uma array, que acedes pelo nome da coluna na db
echo "<tr>";
       echo "<td>".$row["cliente_codigo"]."</td>";
       echo "<td>".$row["cliente_nome"]."</td>";
       echo "<td>".$row["cliente_apelido"]."</td>";
 echo "<td>".$row["cliente_localidade"]."</td>";
 echo "<td>".$row["cliente_email"]."</td>";
 echo "<td>".$row["cliente_telefone"]."</td>";
       echo "<td>".$row["cliente_nif"]."</td>";
echo "</tr>";
}
mysql_free_result($result);
?>
</table>

E no browser dá-me isto:

Could not successfully run query (SELECT id, nome, contribuinte, idade FROM clientes WHERE id= 7) from DB: Unknown column 'id' in 'field list'

Posted (edited)

porra, e queres que te faça a papa toda?

eu meti em comentario (depois do // ) a dizer para mudares os dados da query, isso inclui:

o nome da tabela, o nome dos campos, e a condição WHERE

tens muita falta de estudo, eu sei que é com os exemplos praticos que se aprende mais, mas tens de saber no minimo a base, e desenvolver um bom pensamento logico...

começa por ler isto aqui:

http://www.devin.com.br/intro_php/

e nao me leves a mal, eu sei que custa inciiar na programação, mas o ponto fulcral é entender o codigo que tens, enquanto nao souberes fazer isso, nao consegues evoluir...

Edited by I-NOZex
  • Vote 2

B2R » Beat2Revolution v3.0b | Regista e divulga-nos

beat2revolution.net
Posted

porra, e queres que te faça a papa toda?

eu meti em comentario (depois do // ) a dizer para mudares os dados da query, isso inclui:

o nome da tabela, o nome dos campos, e a condição WHERE

tens muita falta de estudo, eu sei que é com os exemplos praticos que se aprende mais, mas tens de saber no minimo a base, e desenvolver um bom pensamento logico...

começa por ler isto aqui:

http://www.devin.com.br/intro_php/

e nao me leves a mal, eu sei que custa inciiar na programação, mas o ponto fulcral é entender o codigo que tens, enquanto nao souberes fazer isso, nao consegues evoluir...

Sim, claro eu sei e não levo a mal 🙂

Acontece que me pediram isto no trabalho, apesar de não serem as minhas funções...e tenho de safar entendes? Como disse sei pouco de PHP.

Obrigado pelas dicas, vou testar 🙂

  • Vote 1
Posted

Se leres o erro, ele diz-te o que precisas saber.

Unknown column 'id' in 'field list' 

Isto quer dizer que estás a pedir / usar um "id" na query quando este campo não existe na base de dados.

O que tenho de mudar então?

Supostamente o erro está: WHERE id= 1"; //alteras para os dados que pretendes da query

Posted

Sim, claro eu sei e não levo a mal 🙂

Acontece que me pediram isto no trabalho, apesar de não serem as minhas funções...e tenho de safar entendes? Como disse sei pouco de PHP.

Obrigado pelas dicas, vou testar 🙂

Como eu te entendo........

é assim.. a teoria de busca apenas no google e entendes tudo é errada.. os conceitos são fundamentais.

Aconselho-te a ler este tutorial

É o que eu estou a fazer 🙂 Mas ainda tenho muito que ler mas tem sido muito bom.

Aconselho-te a fazeres os testes na tua máquina. Instalas o server web.

Não sei qual é o teu sistema operativo, mas se for o windows, instala o wamp, se for o linux, instala o apache, mysql, php e phpmyadmin.

o wamp instala automaticamente o apache, mysql, php e phpmyadmin, não sei se o utilizador para o mysql e phpmyadmin é root e se a password é em branco por defeito.

  • Vote 1
Posted

Sim, claro eu sei e não levo a mal 🙂

Acontece que me pediram isto no trabalho, apesar de não serem as minhas funções...e tenho de safar entendes? Como disse sei pouco de PHP.

Obrigado pelas dicas, vou testar 🙂

men, acredites ou nao, eu sabia apenas um pouco de pascal e delphi, quando tive de aprender php, foi num estagio, sei bem o que é isso!

e no ano seguinte, tive de aprender C# no estagio tambem...

o importante é, dominar o pensamento logico, e saber procurar/filtrar a informaçao!

O que tenho de mudar então?

Supostamente o erro está: WHERE id= 1"; //alteras para os dados que pretendes da query

o erro que dá é:

Unknown column 'id' in 'field list'

que em portugues é algo como:

Coluna desconhecida 'id' em 'field list'

o erro ta na query, procura la o que esta mal 😉

B2R » Beat2Revolution v3.0b | Regista e divulga-nos

beat2revolution.net
Posted

Como eu te entendo........

é assim.. a teoria de busca apenas no google e entendes tudo é errada.. os conceitos são fundamentais.

Aconselho-te a ler este tutorial

É o que eu estou a fazer 🙂 Mas ainda tenho muito que ler mas tem sido muito bom.

Aconselho-te a fazeres os testes na tua máquina. Instalas o server web.

Não sei qual é o teu sistema operativo, mas se for o windows, instala o wamp, se for o linux, instala o apache, mysql, php e phpmyadmin.

o wamp instala automaticamente o apache, mysql, php e phpmyadmin, não sei se o utilizador para o mysql e phpmyadmin é root e se a password é em branco por defeito.

Já tinha feito isso aqui na máquina de casa, e na do escritório fiz hoje...lol.

Pois, eu trabalho mais na área gráfica, aliás quase só na área gráfica. Por isso PHP...só o básico dos básicos. Dei Java e C++ na faculdade...mas raramente coloquei em prática, por isso estou mais que enferrujado e já lá vão uns anos...

Obrigado a todos. Lá vou ter de me safar 😛

Posted

java tem muitas similaridades com php

entendo que com o tempo se perca a pratica, mas acho que te deves lembrar sempre de qqr coisa...

Muito pouco. Lá está só tive que utilizar para uns trabalhos da faculdade...nunca coloquei em prática realmente. Foi esse o problema.

Posted

mas pronto, eu nao sou ninguem para censurar

espero que tejas ciente que tudo o que disse, foi pelo facto das tuas respostas não indicarem o devido estudo, ainda que não seja a tua praia

mas quanto ao problema em si, como está?

B2R » Beat2Revolution v3.0b | Regista e divulga-nos

beat2revolution.net
Posted

mas pronto, eu nao sou ninguem para censurar

espero que tejas ciente que tudo o que disse, foi pelo facto das tuas respostas não indicarem o devido estudo, ainda que não seja a tua praia

mas quanto ao problema em si, como está?

Está resolvido 🙂 Já consigo inserir no formulário e depois ver no site os dados dos clientes numa tabela que criei.

Agora estou-me a deparar com outro problema...lol

Pediram-me para fazer uma box de filtragem, por exemplo procurar os só os clientes que são de Lisboa. Até pode ser uma search box em que escrevo Lisboa e aparecem-me todos os clientes que são de Lisboa.

Eu fiz pequeno exercicio, mas não está a resultar :\

Algumas luzes neste aspecto? Só queria algo que me fizesse filtrar.

Posted

eu nao te vou dar codigo, pois nao é nada dificil de lá chegar com alguma pesquisa, vou darte os topicos, um pouco estilo pseudocodigo do que precisas:

fazer uma query para obter as localizaçoes existentes: SELECT DISTINCT localizacao FROM clientes : http://www.w3schools.com/sql/sql_distinct.asp

popular com o php uma combobox/select com os resultados da query: http://www.php.net/manual/pt_BR/control-structures.foreach.php | http://stackoverflow.com/a/2460254/1869192

ter essa select dentro de um form, e ter uma função no select, na açao onchange que faça submit do form, enviando preferencialmente por parametro POST a localizaçao selecionada (em vez de onchange enviar logo o formulario, podes ter um botao do tipo submit para fazer a filtragem, e ai evitas js)

verificar se existe alguma filtragem efetuada: http://pt1.php.net/isset | http://pt2.php.net/manual/pt_BR/reserved.variables.post.php

caso exista, fazer uma query aos clientes, pegando no valor passado por parametro POST (que vem do valor selecionado na select): SELECT * FROM clientes WHERE localizacao = $variavel_com_o_valor_do_POST

se não existe, faz a mesma query, mas sem a condiçao WHERE...

mais um link que te devera ajudar:

http://stackoverflow.com/questions/1890114/properly-filter-with-php-mysql-and-select-box

B2R » Beat2Revolution v3.0b | Regista e divulga-nos

beat2revolution.net
Posted

Calculava que fosse algo assim, pois hoje andei a tarde toda na pesquisa. Amanhã irei ler esses links com mais atenção 🙂

Nem era bom estar aqui a pedir-te o código...lol. Aliás eu até fiz umas linhas, mas não funcionaram devidamente.

Depois dou o feedback.

Obrigado 🙂

Posted

Epah...ontem à noite estava-me a escapar o óbvio enquanto estava a pensar nesta solução que estou a desenvolver.

Isto é um género de software para fidelização de clientes, onde a pessoa pode adicionar, editar e eliminar clientes, editar produtos e ter uma opção de adicionar e rebater pontos.

Acontece que eu estava a fazer isto só a pensar em como se connectava a uma tabela, ver os resultados e isso tudo, e esqueci-me que cada utilizador ao usar isto vai ter de ter uma área de trabalho própria. Ou seja teria de gerar automaticamente várias tabelas por cada membro que usasse isto.

Qual a melhor forma para fazer isto? Será mesmo com PHP ou fazendo uma software de raíz?

É que eu não sei como gerar automaticamente tabelas em mmysql por cada membro que vai usar isto...

Posted

eu acho que tão a pedir muito para quem sabe tao pouco, e nao me interpretes mal, mas a começar, é normal dar-se muitos erros, falhas de segurança e etc...

sinceramente, para este caso, acho que mais valia usares uma cms, wordpress por exemplo, ja te poupava muito trabalho

pois a fazeres em php puro... cheira-me que vais ter mt trabalho e vao haver muitos erros detectados tardiamente...mas

em relação a gestao dos utilizadores, podes usar um script ja existente, por exemplo este:

http://usercake.com/

http://rudrageek.com/create-simple-profile-management-system-php/

ou seguir algum tutorial, entre outros exemploes esta: http://rudrageek.com/create-simple-profile-management-system-php/

B2R » Beat2Revolution v3.0b | Regista e divulga-nos

beat2revolution.net

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.