Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Eduardo_555

Ajuda com logica de amizade em php. Rede Social

Recommended Posts

Olá boa tarde!!

 

Estou engajado no desenvolvimento de uma rede social com php e mysql, para isso decidi usar o Framework codeigniter para facilitar um pouco o processo.

 

Porem me deparei com um código que estou ficando de cabelo em pé, para tem uma rede social temos que realizar a logica de amizade onde um usuário manda a notificação e o outro aceita tornando assim os dois amigos na rede.

 

Até ai já esta feito, um usuários consegue mandar notificação para o outro, recusar também foi fácil simplesmente eu crio um registro no banco com a notificação de amizade, se recusa só deleta a linha enta a solicitação some e pronto, mas quando o usuários aceitar pensei em fazer assim,

 

Criei uma tabela Amizades,

nesta tabela vou ter o código do usuário e o código dos seus amigos, então tive a brilhante ideia basta colocar o código dos amigos dentro de um array, e pronto porem adicionar uma pessoa blz, mas quando tem de adicionar outra ou ele substitui ou eu tenho que buscar no banco abrir este dado e carregar em uma array os códigos do novo amigo, assim continuo com as amizades antigas e ainda tenho a nova amizade no final do array.

 

Mas como fasso isso com php como pego esse array abro e coloco dentro de um único index o valor, ate agora já fis este código mais não funciona.

 

TEM UMAS PARTES COMENTADAS POIS ESTOU A TARDE TODA A TODO CUSTO TENTANDO FAZER FUNCIONAR OBS ESTE É O CONTROLLER

public function aceitar($id_notificando){
			$this->load->model("Usuarios_model");
			$dados = array("amigos"=>$this->Usuarios_model->BuscaAmigosAtuais($this->GetId())); 
			$amigos = $dados['amigos'];
			$amigos = unserialize($amigos['amigos']);
			//$amigos['amigos'] = array_push($amigos, $id_notificando);
			//$amigos['amigos'] = array($amigos['amigos'], $id_notificando);
			$dadosUpdate = array(
				"nome_id"=>$amigos['nome_id'],
				"amigos"=>$amigos['amigos'],
				);
			var_dump($amigos);
			//$this->Usuarios_model->AceitaAmizade($dadosUpdate);
			//redirect("/Inicio/home");
		}

AGORA O MODEL COM AS FUNÇÕES CHAMADAS NESTE TRECHO

public function BuscaAmigosAtuais($id){
			$this->db->where("nome_id", $id);
			return $this->db->get("amizades")->row_array();
		}
		public function AceitaAmizade($listaAmigos){
			$this->db->update("amizades", $listaAmigos);
		}

Se alguém conseguir entender bem minha logica da uma mão ai, como fasso na real este e só uma parte do problema mas já vai ajudar bastante.

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mano, não sou lá fã de frames mas acredito que usando ou não a lógica é a mesma, se eu entendi direito vc tá complicando as coisas, siga o básico que dá certo, crie uma só tabela que irá registrar as amizades e seus status.

Nesta tabela você devera ter um campo pra registrar quem enviou a solicitação, um pra registrar quem recebeu e u. Pra registrar o status e se quiser uma pra registra a data.

Agora vamos a lógica

Normarlmente em sistemas de amizade nós temos três status registráveis e um não:

Registráveis:

0 = Pendente;

1 = Aceito;

2 = Bloqueado;

 

Não registraveis:

Solicitação recusada = exclui o registro que está com status pendente 0.

 

Bom agora que temos as tabelas e os status que vão ser registrados é só começar organizar as ações da forma que vc quer,

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então Agradeço pela ajuda,

 

Realmente minha logica ficou meio complicada

 

mas o importante e que consegui resolver

 

eu estava viajando, bastou usar um explode e implode no array kk

 

Sei que não é a melhor opção vai consumir muitos recuso bla bla bla, mas tenho pressa derepente mais para frente fasso uma atualização no sistema e modifico esta parte!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pode ser que consuma ou pode ser que não, mas procure sempre simplificar e deixar o mais limpo possível, tanto código quanto o teu DB, uma rede social depende muito do sistema de amizades e praticamente tudo está ligado a ele então se vc não tratar agora pode ter dar uma dor de cabeça enorme lá na frente, procure pensar de forma ampla e em todas as funções que vão depender desta tabela e desse código pq pode ter certeza que você vai fazer muitas consultas a essa tabela, principalmente de comparações.

 

Abraço mano !! :D

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por violin101
      Caros amigos do grupo, saudações e um feliz 2025.
       
      Estou com uma pequena dúvida referente a Teclas de Atalho.

      Quando o Caps Lock está ativado o Comando da Tecla de Atalho não funciona.
      ou seja:
      se estiver para letra minúscula ====> funciona
      se estiver para letra maiúscula ====> não funciona
       
      Como consigo evitar essa falha, tanto para Letra Maiúscula quanto Minúscula ?

      o Código está assim:
      document.addEventListener( 'keydown', evt => { if (!evt.ctrlKey || evt.key !== 'r' ) return;// Não é Ctrl+r, portanto interrompemos o script evt.preventDefault(); });  
      Grato,
       
      Cesar
    • Por ILR master
      Fala galera, tudo certo?
       
      Seguinte: No servidor A estou tentando fazer uma consulta com o servidor B, mas está dando erro.
      Estou usando o mesmo código de conexão do servidor B que funciona perfeitamente, mas no servidor A, dá erro.
      Segue código:
       
      $host = 'servidor B';
      $user = 'user';
      $pass = '********';
      $db   = 'banco';
       
      // conexão e seleção do banco de dados
      $conexao = mysqlI_connect($host, $user, $pass, $db);
      mysqlI_set_charset($conexao,"utf8");
      //print "Conexão rodando e OK!"; 
      //mysqlI_close($conexao);
       
      Alguém pode me ajudar?
    • Por violin101
      Caros amigos, saudações.
       
      Por favor, poderiam me ajudar.

      Estou com a seguinte dúvida:
      --> como faço para para implementar o input código do produto, para quando o usuário digitar o ID o sistema espera de 1s a 2s, sem ter que pressionar a tecla ENTER.

      exemplo:
      código   ----   descrição
           1       -----   produto_A
       
      Grato,
       
      Cesar
    • Por violin101
      Caros amigos, saudações.
       
      Humildemente peço desculpa por postar uma dúvida que tenho.

      Preciso salvar no MySql, os seguinte Registro:

      1 - Principal
      ====> minha dúvida começa aqui
      ==========> como faço para o Sistema Contar Automaticamente o que estiver despois do 1.____?
      1.01 - Matriz
      1.01.0001 - Estoque
      1.01.0002 - Oficina
      etc

      2 - Secundário
      2.01 - Loja_1
      2.01.0001 - Caixa
      2.01.0002 - Recepção
      etc
       
      Resumindo seria como se fosse um Cadastro de PLANO de CONTAS CONTÁBEIL.

      Grato,


      Cesar









       
    • Por violin101
      Caros amigos, saudações.

      Por favor, me perdoa em recorrer a orientação dos amigos.

      Preciso fazer um Relatório onde o usuário pode Gerar uma Lista com prazo para vencimento de: 15 / 20/ 30 dias da data atual.

      Tem como montar uma SQL para o sistema fazer uma busca no MySql por período ou dias próximo ao vencimento ?

      Tentei fazer assim, mas o SQL me traz tudo:
      $query = "SELECT faturamento.*, DATE_ADD(faturamento.dataVencimento, INTERVAL 30 DAY), fornecedor.* FROM faturamento INNER JOIN fornecedor ON fornecedor.idfornecedor = faturamento.id_fornecedor WHERE faturamento.statusFatur = 1 ORDER BY faturamento.idFaturamento $ordenar ";  
      Grato,
       
      Cesar
       
       
       
       
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.