Fóruns sobre PHP, JavaScript, HTML, MySQLi, jQuery, Banco de Dados, CSS


Moderador: web

 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 102
Nome: Erivelton Ferreira
Descrição do site: A melhor web rádio da internet (Radio Killer)
Sexo: Masculino
Localização: Apuiarés - CE
Contato:

Atualizar vários dados Select Multiple PHP

25-11-2011 16:33

Bom, voltando novamente a pedir ajuda sobre SELECT MULTIPLE e php :lol: , estou com um probleminha aqui. é o seguinte. ao executar o formulario, apenas o ultimo registro é atualizado. sei que estou fazendo errado. aqui está o código:

<?php  if($_POST['atividades_form']){ $atividades  = $_POST["atividades"]; foreach($atividades as $atividades_lista){ $sql1 = "UPDATE g_atividades_fornecedores SET atividades_fornecedores='$atividades_lista' WHERE cnpj_cpf ='$reg'" ; echo "$atividades_lista"; $query1 = mysql_query($sql1) or die (mysql_error()); } if($sql1) {     echo "<div id='aviso_sucesso'> Atividades alteradas com sucesso.</div>";} else{echo "<div id='aviso_erro'> Houve algum erro </div>";} } ?>

MOVIDO PARA MYSQL
0
www.radiokiller.com.br
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17722
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Atualizar vários dados Select Multiple PHP

25-11-2011 19:54

Provavelmente o erro está aqui

WHERE cnpj_cpf ='$reg'

O valor fixo de $reg vai alterar sempre a mesma linha.
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 102
Nome: Erivelton Ferreira
Descrição do site: A melhor web rádio da internet (Radio Killer)
Sexo: Masculino
Localização: Apuiarés - CE
Contato:

Atualizar vários dados Select Multiple PHP

25-11-2011 20:02

Bom, tentei sem o uso da Cláusula WHERE, deu no mesmo.
Este Tópico que postei :ArrayMultiplas-query-mysql_1_6856.html é a parte da inserção. e este aqui é a parte de atualização dos dados. a variavel $reg ela é definida pelo link que vem de uma lista de cadastrados.
o que quero é que atualize os dados do select e atualize os que já tenham e adicione novos, então creio eu que claro, não será apenas um Simples UPDATE, talves teria que deletar todas as atividades do usuario. e reinserir as novas, já que os valores que já estão inseridos seram exibidos na lista por uma consulta. acho que é isso me deem dicas .
0
www.radiokiller.com.br
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17722
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Atualizar vários dados Select Multiple PHP

25-11-2011 20:28

Então você pode fazer um foreach para deletar todas as entradas. Pega todos os itens selecionados e deleta. Seria isso.
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 102
Nome: Erivelton Ferreira
Descrição do site: A melhor web rádio da internet (Radio Killer)
Sexo: Masculino
Localização: Apuiarés - CE
Contato:

Atualizar vários dados Select Multiple PHP

25-11-2011 22:30

Na verdade era pra apenas atualizar os dados, mais pra atualizar eles talvez seja preciso fazer um TRUNCATE TABLE na tabela, e logo depois inserir os dados novamente, atualizados.
0
www.radiokiller.com.br
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17722
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Atualizar vários dados Select Multiple PHP

25-11-2011 22:34

Teria que ver sua estrutura para entender. Porque se você está falando de atualizar as opções selecionadas, quando o usuário selecionar novamente e pedir para atualizar, seria basicamente deletar todas existentes e inserir as novas, pelo mesmo processo anterior.

Ai você já carrega a página com as opções existentes no bd já selecionadas.
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 102
Nome: Erivelton Ferreira
Descrição do site: A melhor web rádio da internet (Radio Killer)
Sexo: Masculino
Localização: Apuiarés - CE
Contato:

Atualizar vários dados Select Multiple PHP

26-11-2011 18:37


<div class="tab_container"> <div id="atividades" class="tab_content">   <table width="200" border="0" cellspacing="2" cellpadding="2">   <tr>     <td style="border-bottom:none; ">      <div id="transfer_dados">     <select multiple id="select1" style="width:372px; height:620px;">     <?php $res1 = mysql_query("select * FROM  g_atividades")or exit(mysql_error());  while($escrever1 = mysql_fetch_array($res1))  {echo "<option value='".$escrever1['atividade']."'>".$escrever1['atividade']."</option>";};   ?>         </select>     <a href="#" id="add">Adicionar >> </a>    </div>       </td> <td style="border-bottom:none; width:">       <div id="transfer_dados" >     <select multiple id="select2" name="atividades[]" style="width:372px;height:620px;">     <?php  $res = mysql_query("select * FROM  g_atividades_fornecedores WHERE cnpj_cpf ='$reg' ")or exit(mysql_error());  while($escrever = mysql_fetch_array($res))  {echo "<option value='".$escrever['atividades_fornecedores']."'>".$escrever['atividades_fornecedores']."</option>";};   ?>   </select>     <a href="#" id="remove"> << Remover</a>    </div>             </td>   </tr> </table>   <input type="submit" id="submit1" value="Salvar atividades" name="atividades_form"/>   </div></div>

Ai está o código HTML.

O que eu preciso, resumindo tudo que já falei anteriormente, é apenas atualizar uma tabela com dados vindo de um select múltiplo.
tentei usando o update mais ele não funciona, pois a estrutura da tabela e a seguinte.
no select múltiplo o usuário seleciona varias opções ai de acordo com a quantidade de opções será repetida a query inserindo os dados, ai com o update isso não acontece. então pensei numa saída.

<?php  if($_POST['atividades_form']){ $atividades  = $_POST["atividades"]; foreach($atividades as $atividades_lista){ // deleta todas as atividades do fornecedor x $sql = "DELETE FROM g_atividades_fornecedores WHERE cnpj_cpf = '$reg' "; $resultado = mysql_query($sql) or die (mysql_error()); // e insere novamente os resultados  $sql1 = "INSERT INTO g_atividades_fornecedores (cnpj_cpf, atividades_fornecedores) VALUES ('".$reg."', '".$atividades_lista."')" ; echo "$atividades_lista"; $query1 = mysql_query($sql1) or die (mysql_error()); } if($sql1) {     echo "<div id='aviso_sucesso'> Atividades alteradas com sucesso.</div>";} else{echo "<div id='aviso_erro'> Houve algum erro </div>";} } ?>

Deletar os dados que já estavam inseridos, e inserir os dados novamente, uso um Jquery select transfer, aquele que transfere de um lado para o outro, ai no select no qual fica os dados escolhidos já vem através de uma consulta sql, os dados escolhidos pelo usuário no cadastro,
ai vem o problema, quando eu executo o formulário. ele apenas deleta os que já existem e insere os que foram escolihos, deixando passar os que já estavam la antes .

Será que tem a ver, que o Formulário vem depois da ação php ?
0
www.radiokiller.com.br
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17722
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Atualizar vários dados Select Multiple PHP

26-11-2011 18:43

O que acho que dá para fazer é capturar na consulta as opções que já existe, e aplicar um selected="selected" na option, para o HTML sair tipo assim:

<select multiple size="3"> <option value="1" selected="selected">1</option> <option value="2">2</option> <option value="3" selected="selected">3</option> </select>

Ai mesmo que ele escolha outras opções, vai pegar os que já existiam.
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 102
Nome: Erivelton Ferreira
Descrição do site: A melhor web rádio da internet (Radio Killer)
Sexo: Masculino
Localização: Apuiarés - CE
Contato:

Atualizar vários dados Select Multiple PHP

26-11-2011 18:56

Não deu certo, mais fiz uma modificação e deu certo até então. tirei a query que tinha o comando para deletar de dentro do foreach e deu certinho: aqui está como ficou o codigo

<?php  if($_POST['atividades_form']){ $atividades  = $_POST["atividades"]; $sql = "DELETE FROM g_atividades_fornecedores WHERE cnpj_cpf = '$reg' "; $resultado = mysql_query($sql) or die (mysql_error()); foreach($atividades as $atividades_lista){ // deleta todas as atividades do fornecedor x // e insere novamente os resultados  $sql1 = "INSERT INTO g_atividades_fornecedores (cnpj_cpf, atividades_fornecedores) VALUES ('".$reg."', '".$atividades_lista."')" ; echo "$atividades_lista<br>"; $query1 = mysql_query($sql1) or die (mysql_error()); } if($sql1) {     echo "<div id='aviso_sucesso'> Atividades alteradas com sucesso.</div>";} else{echo "<div id='aviso_erro'> Houve algum erro </div>";} } ?>

0
www.radiokiller.com.br
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17722
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Atualizar vários dados Select Multiple PHP

26-11-2011 18:58

Boa.
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 102
Nome: Erivelton Ferreira
Descrição do site: A melhor web rádio da internet (Radio Killer)
Sexo: Masculino
Localização: Apuiarés - CE
Contato:

Atualizar vários dados Select Multiple PHP

26-11-2011 19:17

Só devo agradecer a você :clap:
0
www.radiokiller.com.br
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 102
Nome: Erivelton Ferreira
Descrição do site: A melhor web rádio da internet (Radio Killer)
Sexo: Masculino
Localização: Apuiarés - CE
Contato:

Atualizar vários dados Select Multiple PHP

02-12-2011 14:56

Bom, funciona legal pra alterar adicionando, mais alterar removendo da erro no foreach

Warning: Invalid argument supplied FOR foreach() IN /home/xxx/public_html/funcoes/meus_dados.php ON line 159


<?php  if($_POST['atividades_form']){ $atividades  = $_POST["atividades"]; // deleta todas as atividades do fornecedor x $sql = "DELETE FROM g_atividades_fornecedores WHERE cnpj_cpf = '$cpf_cnpj_logado' "; $resultado = mysql_query($sql) or die (mysql_error()); foreach($atividades as $atividades_lista){ // e insere novamente os resultados  $sql1 = "INSERT INTO g_atividades_fornecedores (cnpj_cpf, atividades_fornecedores) VALUES ('".$cpf_cnpj_logado."', '".$atividades_lista."')" ; $query1 = mysql_query($sql1) or die (mysql_error()); } if($sql1) {     echo "<div id='aviso_sucesso'> Atividades alteradas com sucesso.</div>";} else{echo "<div id='aviso_erro'> Houve algum erro </div>";} } ?>

0
www.radiokiller.com.br
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17722
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Atualizar vários dados Select Multiple PHP

02-12-2011 16:15

Aparentemente o foreach está tentando usar um valor que não chega até ele, ou seja, você não está passando o array para que o foreach funcione.
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 102
Nome: Erivelton Ferreira
Descrição do site: A melhor web rádio da internet (Radio Killer)
Sexo: Masculino
Localização: Apuiarés - CE
Contato:

Atualizar vários dados Select Multiple PHP

02-12-2011 23:11

Olá, boa noite.
Como eu poderia fazer isto. poderia me dar um exemplo funcional.
aplicável à meu erro ?
0
www.radiokiller.com.br
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17722
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Atualizar vários dados Select Multiple PHP

03-12-2011 13:24

Faz o seguinte teste:

<?php foreach($atividades as $atividades_lista){ echo $atividades_lista; } ?>

Vai retornar o mesmo erro que você falou. Agora faz o seguinte:

<?php $atividades = Array(1, 2, 3); foreach($atividades as $atividades_lista){ echo $atividades_lista; } ?>

Não vai dar erro, isso porque o array $atividades chegou até o foreach com valores. No seu caso, o não deve estar sendo criado.
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 102
Nome: Erivelton Ferreira
Descrição do site: A melhor web rádio da internet (Radio Killer)
Sexo: Masculino
Localização: Apuiarés - CE
Contato:

Atualizar vários dados Select Multiple PHP

03-12-2011 17:56

Bom, eu sou iniciante em php, não estou sabendo como implementar sua ajuda em meu código. poderia me explicar pra eu tender melhor. :$
0
www.radiokiller.com.br
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17722
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Atualizar vários dados Select Multiple PHP

03-12-2011 18:43

Você pega os dados do select multiple. Isso já é um array quando chega no PHP. Parece que quando chega no loop o select multiple não mandou nenhum valor. Faz um teste, cria um select multiple chamado teste, ai coloca teste no foreach no lugar do array que deixei de exemplo.
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 102
Nome: Erivelton Ferreira
Descrição do site: A melhor web rádio da internet (Radio Killer)
Sexo: Masculino
Localização: Apuiarés - CE
Contato:

Atualizar vários dados Select Multiple PHP

03-12-2011 20:32

:sweat: Não estou a entender. não sei lhe dar com arrays
0
www.radiokiller.com.br
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17722
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Atualizar vários dados Select Multiple PHP

03-12-2011 20:42

Baseado no seu select multiple, use esse código como exemplo

<form action="" method="post"> <select name="select[]" multiple size="3"> <option value="1">1</option> <option value="2">2</option> </select> <input type="submit" name="submit"> </form>


<?php if($_POST['submit']) { foreach($_POST['select'] as $atividades_lista){ echo $atividades_lista; } } ?>

0
A melhor hospedagem para o seu site HostGator!
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 102
Nome: Erivelton Ferreira
Descrição do site: A melhor web rádio da internet (Radio Killer)
Sexo: Masculino
Localização: Apuiarés - CE
Contato:

Atualizar vários dados Select Multiple PHP

08-12-2011 23:26

Tentei de outras maneiras mais todas deram algum erro =s
ta foda hein :(
0
www.radiokiller.com.br
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17722
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Atualizar vários dados Select Multiple PHP

09-12-2011 09:19

Você tinha falado do erro

Warning: Invalid argument supplied for foreach() in /home/xxx/public_html/funcoes/meus_dados.php on line 159

Te dei exemplos de quando ocorre esse erro, e como reparar. Posta somente seu select e o foreach de como você está testando ai.
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 102
Nome: Erivelton Ferreira
Descrição do site: A melhor web rádio da internet (Radio Killer)
Sexo: Masculino
Localização: Apuiarés - CE
Contato:

Atualizar vários dados Select Multiple PHP

09-12-2011 12:38

Eu vou tentar mais um pouco. até conseguir, ai depois volto a postar aqui
0
www.radiokiller.com.br

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado