collapse

* Posts Recentes

O meu plano para produzir fotograficamente circuito impresso por SerraCabo
[Ontem às 23:57]


Empresas para fabricar e assemblar PCB por edeweld
[Ontem às 23:03]


Primeira fonte de bancada por edeweld
[Ontem às 19:23]


Comprar solda decente por Njay
[Ontem às 11:47]


Software POS Restauraçao por edeweld
[Ontem às 10:41]


Guardar componentes em gavetas ou em caixa de armazenamento por TigPT
[15 de Julho de 2018, 14:22]


Criar fast blink lampada 12v por dio123
[15 de Julho de 2018, 12:54]


Com que equipamento costumam aceder ao LR? por dio123
[15 de Julho de 2018, 10:53]


sci-fi lx 2018 por Njay
[14 de Julho de 2018, 21:14]


470uF, 63V, AC por SerraCabo
[14 de Julho de 2018, 07:47]

Autor Tópico: Dúvida de SQL, PHPMyAdmin  (Lida 1249 vezes)

0 Membros e 1 Visitante estão a ver este tópico.

Offline amando96

  • Mini Robot
  • *
  • Mensagens: 1.627
  • MAC address? But I have windows...
    • Projects, News, Blog, Tutorials
Dúvida de SQL, PHPMyAdmin
« em: 19 de Junho de 2011, 15:57 »
Boas tenho uma tabela com duas colunas, uma de ID, e outra com vários URLs guardados, cada URL tem um ID associado para poder ser chamado através de um número.

Ora, isto é para qualquer um que quiser meter um URL na tabela, por vezes metem URLs que nada têm a ver, ou escrevem coisas parvas, no inicio conseguia editá-los, mas agora há imensos, e preciso de uma coisa mais rápida, o que eu quero é apagar um URL, mas de forma que o seu numero atribuido não deixe de apontar para um URL, exemplo:
_____________
|1|google.com  |
|2|youtube.com|
|3|hi5.com        |
|4|LOLOLOLO   |
|5|facebook.com|

Quero apagar o LOLOLOLO, mas em vez de ficar assim:

_____________
|1|google.com  |
|2|youtube.com|
|3|hi5.com        |
|5|facebook.com|

Que fique assim:

_____________
|1|google.com  |
|2|youtube.com|
|3|hi5.com        |
|4|facebook.com|

Talvez ficasse mais simples fazer filtragem do que entra, e não autorizar certas coisas.





Offline SJD22

  • Mini Robot
  • *
  • Mensagens: 660
Re: Dúvida de SQL, PHPMyAdmin
« Responder #1 em: 19 de Junho de 2011, 16:12 »
Boas. Queres fazer isso porquê?

Repara, se associas um ID (neste caso a chave primária) a cada URL e depois apagas um determinado URL e queres re-editar os ID's, então o campo ID não te serve para nada.

Explica-te um pouco melhor porque neste área posso ajudar-te.


Offline microbyte

  • Mini Robot
  • *
  • Mensagens: 1.322
    • http://ricardo-dias.com/
Re: Dúvida de SQL, PHPMyAdmin
« Responder #2 em: 19 de Junho de 2011, 21:27 »
Sim, não é suposto andares a alterar os IDs dos URLs.

A tua tabela pode perfeitamente ficar com espaços em branco. ;)

Offline amando96

  • Mini Robot
  • *
  • Mensagens: 1.627
  • MAC address? But I have windows...
    • Projects, News, Blog, Tutorials
Re: Dúvida de SQL, PHPMyAdmin
« Responder #3 em: 19 de Junho de 2011, 23:24 »
Mas se ficar com espaços brancos quando for buscar um dado que não existe dá erro, a função vai buscar um URL aleatório, posso modificar para caso não existir simplesmente procura outro.

Offline CBX

  • Mini Robot
  • *
  • Mensagens: 1.315
Re: Dúvida de SQL, PHPMyAdmin
« Responder #4 em: 19 de Junho de 2011, 23:35 »
podes sempre adicionar uma condição a essa função: se o SQL responder com um erro, executa novamente a função até que o retorno seja válido

Offline SJD22

  • Mini Robot
  • *
  • Mensagens: 660
Re: Dúvida de SQL, PHPMyAdmin
« Responder #5 em: 19 de Junho de 2011, 23:52 »
Estás a pensar completamente anti-SGBDs (Sistemas Gestores de Base de Dados!) :)

Nao sei que linguagem de programação estás a usar por trás mas podes fazer um SELECT de todos os IDs existentes ou um DISTINCT dos URLs e fazer random disso ou entao quando nao encontra procura outro, conforme disseste.

Quando se tem um campo ID que se pressupoe que seja key e eventualmente index nao é boa politica re-editar esses valores.

Offline microbyte

  • Mini Robot
  • *
  • Mensagens: 1.322
    • http://ricardo-dias.com/
Re: Dúvida de SQL, PHPMyAdmin
« Responder #6 em: 20 de Junho de 2011, 12:31 »
Mas se ficar com espaços brancos quando for buscar um dado que não existe dá erro, a função vai buscar um URL aleatório, posso modificar para caso não existir simplesmente procura outro.

Então mas explica lá a lógica disso :)
1º apagas o registo
2º vais à procura dele?

Podes é quando apagares o registo, apagar todas as referências para ele.

Offline amando96

  • Mini Robot
  • *
  • Mensagens: 1.627
  • MAC address? But I have windows...
    • Projects, News, Blog, Tutorials
Re: Dúvida de SQL, PHPMyAdmin
« Responder #7 em: 20 de Junho de 2011, 13:07 »
Não sou eu que escolho que URL que é chamado, é tudo aleatório.

Offline SJD22

  • Mini Robot
  • *
  • Mensagens: 660
Re: Dúvida de SQL, PHPMyAdmin
« Responder #8 em: 20 de Junho de 2011, 14:21 »
Faz assim:

SELECT url FROM nome_da_tabela ORDER BY RAND() LIMIT 1;

O caminho pelo qual estavas a tentar ir, está tecnicamente errado.

Offline microbyte

  • Mini Robot
  • *
  • Mensagens: 1.322
    • http://ricardo-dias.com/
Re: Dúvida de SQL, PHPMyAdmin
« Responder #9 em: 20 de Junho de 2011, 16:28 »
Isso mesmo.

Se tudo for feito com SELECTs não há problema.
Penso que o comando que o SJD22 disse está correcto para o que tu queres. Experimenta.

Offline amando96

  • Mini Robot
  • *
  • Mensagens: 1.627
  • MAC address? But I have windows...
    • Projects, News, Blog, Tutorials
Re: Dúvida de SQL, PHPMyAdmin
« Responder #10 em: 06 de Julho de 2011, 22:17 »
Boas, pois é... nem cheguei a passar pelas funções todas do SQL e fiz tudo à pata, assim como foi dito acima faz exactamente como quero  :)

Obrigado.