Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
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.
Sim, pq o que é inserido no banco é armazenado na variável ultima.
<?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());
}
}
?>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.
Os 2 dados estão com o mesmo formato(espaços,traços)?