Ir para conteúdo

POWERED BY:

Arquivado

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

Luciano Zanita

Como gravar um foreach no mysql

Recommended Posts

Fiz desta forma:

<?php
require_once "conexao.php";
$playlistmusicas = $_POST["playlistmusicas"];
$playlistid     = $_POST["playlists"];

foreach ($playlistmusicas as $playlistmusica) {
        $musicasdaplaylist = "<option value='".$playlistmusica."'>".$playlistmusica."</option>";
        }
        mysql_query("UPDATE playlist SET musicas='" . implode( ',', $musicasdaplaylist ) . "' WHERE id = '$playlistid'");

?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

$musicasdaplaylist é uma string. A função implode pede um array como parâmetro, não uma string.

 

No seu caso, $playlistmusicas é o array e essa variável deve ser usada no implode

 

Certo funcionou perfeitamente, agora ele ta cadastrando resultado,resultado,resultado e assim por diante no mysql, agora gostaria de saber como que faço para separar esses resultados cadastrados da virgula, isso depois que faço a consulta de retorno de resposta nele.

Compartilhar este post


Link para o post
Compartilhar em outros sites

consegui fazer isso pessoal, só que tem um problema, eu consigo colocar tudo de volta no select etc, só que quando salvo a segunda vez com mais resultados algum deles sendo iguais a array ele simplesmente nao salva, e acaba salvando em branco acho que da um closape na array por ter resultados iguais mais de 1 vez, existe alguma forma de nao ocorrer esse problema?

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

Fiz desta forma:

 

$resolucaoarray = array_unique($playlistmusicas);
        mysql_query("UPDATE playlist SET musicas = '" . implode( ',', $resolucaoarray ) . "' WHERE id = '$playlistid'");

Mais ele não cadastrou e quando faço um echo ele não retorna Array no resultado

Se faço deste jeito:

$arrayprimaria = array($playlistmusicas);
        $resolucaoarray = array_unique($arrayprimaria);
        mysql_query("UPDATE playlist SET musicas = '" . implode( ',', $resolucaoarray ) . "' WHERE id = '$playlistid'");
        echo $resolucaoarray;

Ele retorna totalmente branco e sem resposta.

 

A array unique ela cadastra mesmo se for resultados dentro da array repetidos?

pois é isso que quero fazer...

Compartilhar este post


Link para o post
Compartilhar em outros sites

"Dados dados, não posso fazer tijolos sem barro" S. Holmes

 

 

Rode da seguinte forma para conseguirmos ter um diagnóstico:

$resolucaoarray = array_unique($playlistmusicas);
echo '<pre>';
var_dump($resolucaoarray, $playlistmusicas);
$sql = "UPDATE playlist SET musicas = '{" . implode( ',', $resolucaoarray ) . "}' WHERE id = {$playlistid}";

echo '$sql:'.$sql;
mysql_query($sql)or die(mysql_error());

Compartilhar este post


Link para o post
Compartilhar em outros sites

Retornou isso:

NULL
string(13) "123/trio1.mp3"
$sql:UPDATE playlist SET musicas = '{}' WHERE id = 1

Sobre a array minha $playlistmusicas eu estou recebendo ela por um POST na página:
$playlistmusicas = $_POST["playlistmusicas"];

Compartilhar este post


Link para o post
Compartilhar em outros sites

Veja:

 

 

 

$playlistmusicas é uma string, não um array. Por isso array_unique retorna NULL.

Então mais a $playlistmusicas é por POST que traz a array, ate ela tava como array, tava cadastrando e tudo mais, na forma que você me explicou com implode, cadastrou certinho.

Como posso transformar ela em array?

Pois da pagina que esta o form ela tem os [] no nome e ela envia para este por POST que faz o cadastro no mysql.

Tentei converter a $playlistmusicas para $nome = array($playlistmusicas);

mais não funcionou da mesma forma, alguma ideia do que posso fazer para resolver?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Veja, $playlistmusicas já é uma string. Ai o array_unique não faz nenhum sentido.

Compartilhar este post


Link para o post
Compartilhar em outros sites

ah entendo, então mais a array normal ta ocorrendo o seguinte se eu repetir um mesmo resultado dentro dela ela simplesmente desconsidera tudo

por isso o @Beraldo me indicou a array_unique, agora não sei se é isto mesmo.

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.