filipe3632 Posted March 27, 2014 Report Share Posted March 27, 2014 (edited) Bom dia Eu estou a fazer uma pagina web onde tenho um chat. Eu tenho uma base de dados onde tenho os utilizadores e fazendo login com estes entro no chat como sendo utilizador respectivo. No entanto a lista dos utilizadores do chat está num ficheiro .json que mostro abaixo { "1": ["Filipe","http://localhost/talkify/assets/elvis.jpg","http://html5-ninja.com"], "2": ["Filipe2","http://localhost/talkify/assets/elvis.jpg","http://html5-ninja.com"] } Neste momento para eu conseguir ter uma lista maior eu edito o meu ficheiro.json, criando uma nova linha com o respectivo id e o respectivo username. O que eu queria era que cada vez que eu insira um utilizador novo na base de dados este ficheiro .json fosse actualizado de forma automática. Alguém me pode ajudar? Cumprimentos, Filipe Moreira Edited March 27, 2014 by filipe3632 Peace, Love & Empathy by: Kurt Cobain Link to comment Share on other sites More sharing options...
Devexz Posted March 27, 2014 Report Share Posted March 27, 2014 Porque não ir buscar os dados da bd e converte_Los em json? Sem recorrer ao ficheiro json Contador de calorias: caloriaspordia.com Link to comment Share on other sites More sharing options...
filipe3632 Posted March 28, 2014 Author Report Share Posted March 28, 2014 E como é que eu posso fazer isso no phpmyadmin? Peace, Love & Empathy by: Kurt Cobain Link to comment Share on other sites More sharing options...
HappyHippyHippo Posted March 28, 2014 Report Share Posted March 28, 2014 E como é que eu posso fazer isso no phpmyadmin? não fazes ... que lingusagem server-side de scripting tens ? HTML <--- JSON ---> ?? Scrip language ?? <------> Base de dados IRC : sim, é algo que ainda existe >> #p@p Portugol Plus Link to comment Share on other sites More sharing options...
filipe3632 Posted March 28, 2014 Author Report Share Posted March 28, 2014 Php O que é que eu posso usar? Peace, Love & Empathy by: Kurt Cobain Link to comment Share on other sites More sharing options...
HappyHippyHippo Posted March 28, 2014 Report Share Posted March 28, 2014 <?php // só para exemplo de dados vindos da base de dados $recordset = array(); $recordset[] = array("name" => "ping", "image" => "pong", "link" => "pang"); $recordset[] = array("name" => "bing", "image" => "bong", "link" => "bang"); // contruir o JSON $array = array(); $i = 1; foreach ($recordset as $record) $array[$i++] = array($record["name"], $record["image"], $record["link"]); $json = json_encode($array); echo $json; // <----- magia !!! ?> IRC : sim, é algo que ainda existe >> #p@p Portugol Plus Link to comment Share on other sites More sharing options...
filipe3632 Posted March 28, 2014 Author Report Share Posted March 28, 2014 Com isso queres dizer isto? Estou certo? $recordset = array(); $recordset[] = array("user_id" => 'usr_id', "user_name" => 'usr_name'); $array = array(); $i = 1; foreach ($recordset as $record) $array[$i++] = array($record["user_id"], $record["user_name"]); $json = json_encode($array); echo $json; Peace, Love & Empathy by: Kurt Cobain Link to comment Share on other sites More sharing options...
HappyHippyHippo Posted March 28, 2014 Report Share Posted March 28, 2014 Com isso queres dizer isto? Estou certo? $recordset = array(); $recordset[] = array("user_id" => 'usr_id', "user_name" => 'usr_name'); $array = array(); $i = 1; foreach ($recordset as $record) $array[$i++] = array($record["user_id"], $record["user_name"]); $json = json_encode($array); echo $json; ao menos testaste ou tentaste adaptar ao teu código de ligação à base de dados ? IRC : sim, é algo que ainda existe >> #p@p Portugol Plus Link to comment Share on other sites More sharing options...
taviroquai Posted March 29, 2014 Report Share Posted March 29, 2014 (edited) Bom dia Eu estou a fazer uma pagina web onde tenho um chat. Eu tenho uma base de dados onde tenho os utilizadores e fazendo login com estes entro no chat como sendo utilizador respectivo. No entanto a lista dos utilizadores do chat está num ficheiro .json que mostro abaixo { "1": ["Filipe","http://localhost/talkify/assets/elvis.jpg","http://html5-ninja.com"], "2": ["Filipe2","http://localhost/talkify/assets/elvis.jpg","http://html5-ninja.com"] } Neste momento para eu conseguir ter uma lista maior eu edito o meu ficheiro.json, criando uma nova linha com o respectivo id e o respectivo username. O que eu queria era que cada vez que eu insira um utilizador novo na base de dados este ficheiro .json fosse actualizado de forma automática. Alguém me pode ajudar? Cumprimentos, Filipe Moreira Se as alterações não são muito frequentes até faz sentido gerares um ficheiro estático com a lista dos utilizadores... Tens que ter alguma coisa que funcione como trigger... um exemplo usando uma API REST: <?php // ao inserir na base de dados r('/api/insert', function() { // insert na base de dados tr('data.change', $data); // trigger para atualizar o ficheiro }); // ao atualizar a base de dados r('/api/update', function() { // update na base de dados tr('data.change', $data); // trigger para atualizar o fiheiro }); // criar evento e('data.change', function($data) { file_put_contents('/caminho/ficheiro.json', json_encode($data)); }); Edited March 29, 2014 by taviroquai Link to comment Share on other sites More sharing options...
filipe3632 Posted April 1, 2014 Author Report Share Posted April 1, 2014 Boas Obrigado 🙂 <?php// ao inserir na base de dados r('/api/insert', function() { // insert na base de dados tr('data.change', $data); // trigger para atualizar o ficheiro }); // ao atualizar a base de dados r('/api/update', function() { // update na base de dados tr('data.change', $data); // trigger para atualizar o fiheiro }); // criar evento e('data.change', function($data) { file_put_contents('/caminho/ficheiro.json', json_encode($data)); }); na function eu tenho de trocar pelas minhas funções que uso para fazer as respectivas coisas? Eu uso uma libraria onde tem as funções para a base de dados... Por exemplo, a minha libraria User, podem ver abaixo <?php //error_reporting(-1); require_once("Mysql.php"); require_once("funcoes.php"); class User { public $usrId = ''; public $usrName= ''; public $usrMail= ''; public $usrPassword= ''; function __construct($id=null) { $this->createObj($id); } function createObj($id=null){ $objMysql=new Mysql(); $objMysql->connect(); $rows = $objMysql->query("select * from user where usr_id='".cl($id)."'"); while($row = $objMysql->fetch_array($rows)){ $this->usrId = $row['usr_id']; $this->usrName= $row['usr_name']; $this->usrMail= $row['usr_mail']; $this->usrPassword= $row['usr_password']; } } // ao inserir na base de dados r('/api/insert', function() { // insert na base de dados function insert(){ $inserir="insert into user(usr_name,usr_mail,usr_password) values ( "; $inserir.=" ,'".$this->usrName."'"; $inserir.=" ,'".$this->usrMail."'"; $inserir.=", '".$this->usrPassword."')"; $objMysql=new Mysql(); $objMysql->connect(); $executarInserir = $objMysql->query($inserir); return $objMysql->lastInsertedId(); } tr('data.change', $data); // trigger para atualizar o ficheiro }); function update(){ $update="update user "; $update.=" set usr_name='".$this->usrName."'"; $update.=" set usr_mail='".$this->usrMail."'"; $update.=" set usr_password='".$this->usrPassword."'"; $update.=" where user_id='".$this->usrId."'"; $objMysql=new Mysql(); $objMysql->connect(); $executarUpdate = $objMysql->query($update); } function delete(){ $delete="delete from user "; $delete.=" where user_id='".$this->usrId."'"; $objMysql=new Mysql(); $objMysql->connect(); $objMysql->query($delete); } public static function isUserValid($email,$password){ $isValid=FALSE; $objMysql=new Mysql(); $objMysql->connect(); $query="select * from user where usr_mail='".cl($email)."' and usr_password='".cl($password)."' "; $rows = $objMysql->query($query); while($row = $objMysql->fetch_array($rows)){ $isValid=TRUE; } return $isValid; } public static function getUser($email,$password){ $id=null; $objMysql=new Mysql(); $objMysql->connect(); $query="select * from user where usr_mail='".cl($email)."' and usr_password='".cl($password)."' "; $rows = $objMysql->query($query); while($row = $objMysql->fetch_array($rows)){ $id=$row['usr_id']; } return new User($id); } public static function getUserList($email,$password){ $id=null; $objMysql=new Mysql(); $objMysql->connect(); $query="select * from user"; $rows = $objMysql->query($query); while($row = $objMysql->fetch_array($rows)){ $id=$row['usr_id']; } //return new User("id" => 'usr_id', "name" => 'usr_name', "link" => "pang"); } } ?> Peace, Love & Empathy by: Kurt Cobain Link to comment Share on other sites More sharing options...
filipe3632 Posted April 1, 2014 Author Report Share Posted April 1, 2014 Eu tenho uma libraria assim, porque eu uso o codeigniter. Peace, Love & Empathy by: Kurt Cobain Link to comment Share on other sites More sharing options...
filipe3632 Posted April 2, 2014 Author Report Share Posted April 2, 2014 Obrigado 🙂 Ja consegui Peace, Love & Empathy by: Kurt Cobain Link to comment Share on other sites More sharing options...
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