Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá Galera mais uma vez.
Estou tentando cadastrar varios id no mesmo campo no mysql.
Bom, estou usando um list menu, segurando o CTRL, você está selecionado varias IDs
O list menu eu coloquei uma array tipo assim
categoria[]
E depois estou usando o scritp abaixo para listar as categorias selecionada.
foreach ($_POST["categoria"] as $idCategoria){
echo $idCategoria."|"; // aqui mostra os campos selecionados
}
O problema seguinte, não estou conseguindo armazenar esses ids no mesmo campo.
Veja meu MYSQL
id int(30) auto_increment
id_categoria varchar(100)
Agora veja o que estou fazendo
foreach ($_POST["categoria"] as $idCategoria){
$query_rs = "INSERT INTO produtos(id_categoria)
VALUES
('".$idCategoria."'');";
mysql_query($query_rs);
}
Nesse caso acima está cadastrando varios registros, eu só quero armazenar apenas um campo como
id_categoria ----> 1|2|5|8|9
Já tentei gravar uma session antes de cadastrar
foreach ($_POST["categoria"] as $idCategoria){
$_SESSION["grava_ID"] = $idCategoria."|";
}
$query_rs = "INSERT INTO produtos(id_categoria)
VALUES
('".$_SESSION["grava_ID"]."'');";
mysql_query($query_rs);
O resposta vem assim quando eu seleciono as categorias --->> 2|
Bom será que tem uma solução para isso? Estou quebrando a cabeça.. alguém poderia me ajudar??
Abração a todos.
Ola beraldo eu usei o esquema serialize ele separou certinho, mas não armazenou mais IDs.O resuldado deu assim no MYSQLid - id_categoria57 s:1:"3"; 56 s:1:"2"; 55 s:1:"1"; 54 s:1:"1"; 53 s:1:"1"; Codigo baixoforeach ($_POST["categoria"] as $idCategoria){echo $generos = serialize($idCategoria);$query_rs = "INSERT INTO produtos(id_categoria) VALUES ('".$generos."'');";mysql_query($query_rs);}Não deu certo.. esse esquema de relacionar, não tem como pois quando vou buscar eu vou usar um LIKEcampo LIKE '".$_GET["id"]."'Mas valeu pela força.mas estou pesquisando!Você deve serializr o array inteiro, não cada índice dele:
$arr = array("Beraldo", "iMasters", "Internet");
$arr_s = serialize($arr);
//veja que aqui será exibida uma string
echo $arr_s;
//para transformar a string em array
$arr2 = unserialize($arr_s);
Como você fará buscas nesse ID, acho melhor separar em registros. Exemplo:
tabela pedidos
id -> ido do pedido
demais dados
tabela itens
id_pedido -> id do pedido (campo relacionado à tabela "pedidos")
id_produto -> id dos produtos do pedido.
Cada ID de produto é inserido num registro diferentes, implicando a existência de vários registros ligados a um único pedido. http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif
Abraços,
Beraldo
Ae galera achei uma solução pesquisando e falando com Programadores *** Falei com amigo Perfect Lion
E deu uma solução que você um dia pode usar aqui vai o codigo completo
foreach ($_POST["categoria"] as $idCategoria){// função deixar a array em uma string$cat = (is_array($_POST["categoria"])) ? implode("|",$_POST["categoria"]) : null;}$query_rs = "INSERT INTO produtos(id_categoria) VALUES ('".$cat."'');";mysql_query($query_rs);//**************************************************************// separando na hora de alterar$arrCat = explode("|",$row["categoria"]);echo "<pre>";print_r($arrCat);echo "</pre>";
Bom e isso que estava precisando, caso alguém precise está..
Valeu pela atenção
Salve os IDs num array e use serialize(). Veja:
http://forum.idone.com.br/index.php?showtopic=992
Mas se esse campo for utilizado numa busca, seria melhor você criar uma tabela relacionada, que armazenaria esses IDs em linhas diferentes.
Abraços,
Beraldo