Danny_Pt Posted February 24, 2014 at 10:06 AM Report #546433 Posted February 24, 2014 at 10:06 AM 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); ?>
I-NOZex Posted February 24, 2014 at 11:49 AM Report #546453 Posted February 24, 2014 at 11:49 AM http://pt1.php.net/manual/en/function.mysql-fetch-assoc.php#refsect1-function.mysql-fetch-assoc-examples http://www.w3schools.com/php/func_mysql_fetch_assoc.asp B2R » Beat2Revolution v3.0b | Regista e divulga-nos beat2revolution.net
Danny_Pt Posted February 24, 2014 at 12:01 PM Author Report #546457 Posted February 24, 2014 at 12:01 PM Desculpa, mas visto ser novo em PHP não entendi bem os links. Experimentei mas não resultou... :\
I-NOZex Posted February 24, 2014 at 12:11 PM Report #546459 Posted February 24, 2014 at 12:11 PM (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 February 24, 2014 at 12:13 PM by I-NOZex B2R » Beat2Revolution v3.0b | Regista e divulga-nos beat2revolution.net
Danny_Pt Posted February 24, 2014 at 01:06 PM Author Report #546465 Posted February 24, 2014 at 01:06 PM 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'
I-NOZex Posted February 24, 2014 at 01:54 PM Report #546470 Posted February 24, 2014 at 01:54 PM (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 February 24, 2014 at 01:55 PM by I-NOZex 2 Report B2R » Beat2Revolution v3.0b | Regista e divulga-nos beat2revolution.net
yoda Posted February 24, 2014 at 03:46 PM Report #546487 Posted February 24, 2014 at 03:46 PM 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. before you post, what have you tried? - http://filipematias.info sense, purpose, direction
Danny_Pt Posted February 24, 2014 at 04:44 PM Author Report #546502 Posted February 24, 2014 at 04:44 PM 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 🙂 1 Report
Danny_Pt Posted February 24, 2014 at 05:02 PM Author Report #546504 Posted February 24, 2014 at 05:02 PM 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
mlcalves Posted February 24, 2014 at 05:46 PM Report #546508 Posted February 24, 2014 at 05:46 PM 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. 1 Report
I-NOZex Posted February 24, 2014 at 06:29 PM Report #546513 Posted February 24, 2014 at 06:29 PM 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
Danny_Pt Posted February 24, 2014 at 09:49 PM Author Report #546536 Posted February 24, 2014 at 09:49 PM 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 😛
I-NOZex Posted February 25, 2014 at 12:19 AM Report #546549 Posted February 25, 2014 at 12:19 AM 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... B2R » Beat2Revolution v3.0b | Regista e divulga-nos beat2revolution.net
Danny_Pt Posted February 25, 2014 at 09:20 AM Author Report #546559 Posted February 25, 2014 at 09:20 AM 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.
I-NOZex Posted February 25, 2014 at 02:44 PM Report #546586 Posted February 25, 2014 at 02:44 PM 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
Danny_Pt Posted February 25, 2014 at 03:44 PM Author Report #546602 Posted February 25, 2014 at 03:44 PM 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.
I-NOZex Posted February 25, 2014 at 08:35 PM Report #546654 Posted February 25, 2014 at 08:35 PM 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
Danny_Pt Posted February 25, 2014 at 10:26 PM Author Report #546673 Posted February 25, 2014 at 10:26 PM 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 🙂
Danny_Pt Posted February 26, 2014 at 09:13 AM Author Report #546682 Posted February 26, 2014 at 09:13 AM 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...
I-NOZex Posted February 26, 2014 at 05:02 PM Report #546745 Posted February 26, 2014 at 05:02 PM 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
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now