Ir para conteúdo
Fórum Script Brasil
  • 0

Problema em renumerar mensagens!


ReDNoS

Pergunta

Olá pessoal da ScriptBrasil!

Vou explicar o meu problema! Eu tenho uma página de caixa de mensagens onde o usuário recebe mensagens para certas ações feitas dentro do site. Cada usuário tem a opção de deletar as mensagens que quiser, mas quando o usuário deletar alguma mensagem eu preciso renumerar todas mensagens de forma correta para que não haja erros.

Exemplo do meu problema:

Um usuário tem 3 mensagens, e cada uma dessas mensagens tem seu número (1, 2 e 3). Se o usuário deletar a mensagem 2 ele ficará apenas com as mensagens 1 e 3, e assim que ele receber uma nova mensagem, essa nova mensagem terá o número 3! Pk a nova mensagem terá o número 3? Pk o cálculo feito por min para numerar a nova mensagem é O Número de Mensagens do Usuário + 1 (No caso é 2 mensagens + 1 para a nova mensagem = 3). Então o que eu faço é quando o usuário deletar uma mensagem todas mensagens tem seu número zerado. Agora eu preciso renumerar todas elas de forma correta (1, 2, 3...) para que não haja qualquer tipo de erro de numeração.

Alguém sabe como posso fazer para renumerar?

Link para o comentário
Compartilhar em outros sites

13 respostass a esta questão

Posts Recomendados

  • 0
E como você está fazendo o controle da numeração? Se for só uma questão estética, você pode numerar durante o próprio laço que monta a exibição da lista de mensagens...

É questão de organização e de visualização!

Quando o usuário deletar as mensagens selecionadas, eu zero todos os números da mensagens e preciso renumerar na ordem certa de acordo com a Data ou então com o número antigo da mensagem!

Link para o comentário
Compartilhar em outros sites

  • 0

Desculpa ESerra, mas ainda to encontrando dificuldades!

Eu acho que não expliquei direito, mas estou renumerando o número das mensagens no meu banco de dados.

Meu código é esse:

$update_inbox2 = $db->Execute("update inbox set Number_Msg=0 Where Inbox.Id=?",array($game['Id']));

$inbox_select = $db->Execute('Select *, game.NickName as Nick from game, inbox where game.Id=? and inbox.Id=game.Id order by Number_Msg',array($game['Id']));
$record_numbers_inbox = $inbox_select->RecordCount();
$total = $record_numbers_inbox;
$inicio = 1;
while($inicio <= $total){
$update_inbox = $db->Execute("update inbox set Number_Msg=? Where Inbox.Id=?",array($inicio, $game['Id']));
$inicio++;
}

E a renumeração deveria ser feita aqui: "$update_inbox = $db->Execute("update inbox set Number_Msg=? Where Inbox.Id=?",array($inicio, $game['Id']));", porém, o número de todas mensagens selecionadas fica igual ao número de mensagens existentes do usuário! (Ex: se há 2 mensagens então todas mensagens ficam com o número 2).

Você sabe como resolver isso de forma que elas sejam numeradas de forma correta? 1,2,3...

Link para o comentário
Compartilhar em outros sites

  • 0
Entendi o que você está fazendo, mas não entendi o o porque de você querer a numeração no banco de dados... enfim, estou com preguiça de pensar agora...

É pk o usuário escolhe as mensagens que ele quer deletar e quando ele receber uma nova mensagem, essa mensagem terá o número = O Número de mensagens que ele tem + 1.

Eu já expliquei acima como é feito o cálculo para definir o número da mensagem do novo usuário. O problema é que se o usuário deletar uma mensagem se quer, a próxima mensagem terá o mesmo número da mensagem mais nova! E aew começa os erros, ao abrir uma das mensagens a outra mensagem também será aberta. E isso afeta também a ordem das mensagens entre outras coisas...

Então quando vocês estiver com disposição pra pensar, se puder, veja pra min algum modo para que a renumeração seja feita de forma correta por favor...

Vlw :rolleyes:

Link para o comentário
Compartilhar em outros sites

  • 0

Na verdade eu tava brincando, eu não to com preguiça de pensar, o seu sistema é que desanima, se você não tivesse "matado" as aulas de modelagem de banco de dados, saberia que existe um negócio chamado chave primária e que ela resolveria todos os seus problemas sem essa gambiarra toda...

Link para o comentário
Compartilhar em outros sites

  • 0

Primeiro, leia as regras, ups não são permitidos;

Segundo, se você quer fazer algo, faça direito, porque sinceramente, não vi a lógica que você usa nesse sistema, e mais uma coisa, você dizer "É eu sei que eu posso numerar tudo automaticamente pela Database, o problema é que a numeração é feita de acordo com o NickName do usuário!!!" é outra coisa sem lógica nenhuma, volto a falar, set uma chave primária para cada mensagem, pronto, você apaga pela chave primária e acabou o problema...

Quer insistir no seu sistema? Ok, vamos tentar, mas primeiro, passa o DER do seu BD pra eu tentar entender como é isso...

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      652k
×
×
  • Criar Novo...