Ir para conteúdo

Arquivado

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

DunkMask

inserir dados no banco automaticamente sem repetição.

Recommended Posts

Olá, boa tarde.

Recentemente postei uma duvida aqui de como ler um arquivo xml gerado por php, e agora estou querendo incrementar este arquivo para persistir no banco.

 

Resumindo, estou criando um TOP 10 music automático. a cada 40s, um script executa um determinado comando, que faz com que apareça o nome da musica que esta sendo tocada automaticamente, então eu pensei em fazer um comando SQL para que quando for executado este comando, ele armazena a musica que esta tocando no banco.

 

O problema é o seguinte, eu fiz que o script, mas eu preciso evitar inserções repetidas no banco.no banco como esta acontecendo sequencialmente

 

Veja o codigo que criei:

 

<?php
	$single = $listeners->artist.' - '.$listeners->title;
	
	if($ultima != $single){
		$sql = "INSERT INTO ultimas (single, data) VALUES ('".$single."', '".date("Y-m-d h:i:s")."')";
		$query = mysql_query($sql);
		
		$ultima = $single
	}
?>

o problema é que mesmo fazendo esta condição ele continua fazendo inserções repetidas em sequencia no banco.

 

alguém pode me ajudar com esta logica?

.



só adicionando mais um detalhes. o problema é que ele insere a mesma musicas a cada 40 segundos no banco, eu gostaria apenas de evitar isso, ja que o top10 será de acordo com a mais tocada no dia, semana ou mês.

Compartilhar este post


Link para o post
Compartilhar em outros sites

<?php
    $single = $listeners->artist.' - '.$listeners->title;
    if($ultima != $single){
        $sql = "INSERT IGNORE INTO ultimas (single, data) VALUES ('".$single."', '".date("Y-m-d h:i:s")."')";
        $query = mysql_query($sql);
        $ultima = $single
    }
?>

 

Problema é que com você tem um campo data ele não vai sobrescrever o existente(eu acho)..... se não o IGNORE INTO resolveria, você pode fazer assim o.

 

 

<?php
    $single = $listeners->artist.' - '.$listeners->title;
    if($ultima != $single){
        # Conto antes
        $veja_antes = mysql_query("SELECT single, data FROM ultimas WHERE single = '$single'") or die (mysql_error());
        $contabusca = mysql_num_rows(veja_antes);
        # Tenho 0 então insert
        if($contabusca == 0){
            $sql = "INSERT INTO ultimas (single, data) VALUES ('".$single."', '".date("Y-m-d h:i:s")."')";
            $query = mysql_query($sql);
        } else {
            # Tenho >= 1 então update
            $dados = mysql_fetch_assoc(veja_antes);
            # Recuperando Dados do Meu Time
            $single = $dados["single"];
            mysql_query("UPDATE `ultimas` SET `single` = '$single', `data` = '".date("Y-m-d h:i:s")."' WHERE `single` = '$single'") or die (mysql_error());
        }
    }
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá marcelo, boa tarde.

entendi o que você quis dizer, apesar não ser o que eu queria. Mas com sua ideia acabei achando uma solução, implementar mais um campo onde ao invés de atualizar o nome da musica, atualiza a quantidade de vezes que ela foi tocada no dia, acredito que esta ideia deva solucionar meu problema de criar um top 10 com as musicas vinda direto do shoutcast.

 

qualquer coisa posto mais dúvidas ou a solução que encontrei.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

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