Ir para conteúdo

POWERED BY:

Arquivado

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

RenanMonteiro

alterando varios registros do mysql de uma vez

Recommended Posts

Estou fazendo um painel de Controle de Produção, assim:

veja.

esquema-painel-mudar.jpg

Tudo o que aparece é resultado dos registros MySql.

 

Quero saber como faço para alterar os dados pelas listas de menu, clicar em Salvar a alterar todos os registros de uma vez!

Alguém sabe como?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Como assim listas de menu, os selects ?

 

tu quer poder clicar e ele atualizar na hora ? se Sim, isso se faz com AJAX...

 

caso tu queria mudar todos, tu deve pegar os ids de cada registro, e criando um array para cada registro, fazer um UPDATE :D

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sim, os selects. Se desse pra fazer esse esquema de atualizar na hora seria perfeito, mas não sei quase nada em AJAX, entao vamos fazer com salvar em botão rs.

Esse esquema de array seria mais ou menos assim: Apertar o botão Salvar, enviar para outra pagina todos os valores da lista de registros com os novos valores e atualizar todos? sinto que fazer a verificação e alterar só os que foram alterados não rola né? Então ficaria assim:

 

<?php
$alterar_valores=array ("$_POST[id]");
?>

 

e o UPDATE ficaria como com essa array? :ermm:

Compartilhar este post


Link para o post
Compartilhar em outros sites

Acredito que o mais simples seria AJAX, mas vejamos como fazer em PHP mesmo...

 

em um post de um select temos um array com os valores daquela linha. Certo?

 

um modo rapido de se fazer seria esse..:

 

<form action="" method="post">
<input type="text" name="name[]" value="1">
<input type="text" name="date[]" value="1">
<input type="text" name="name[]" value="2">
<input type="text" name="date[]" value="2">
<input type="text" name="name[]" value="3">
<input type="text" name="date[]" value="3">
<input type="text" name="name[]" value="4">
<input type="text" name="date[]" value="4"><br><br>
<input type="submit" value="OK">
</form>
<?php
if(isset($_POST)){

$field		= $_POST;

$count		= count($field[name]);
for($i = 0; $i < $count; $i++){
	$up 		.= "UPDATE table SET name = {$field['name'][$i]}, date = {$field['date'][$i]} \n";
}
echo "<pre>";
print_r($up);	

}
?>

 

Testa ai :D

Compartilhar este post


Link para o post
Compartilhar em outros sites

A parte do PHP eu entendi, só a do formulario que não, tipo como configurar pra receberes os ID's? rs. Pois estão vindo do MySQl, entao aparecem em echo.

 

$sql = "SELECT * FROM producao ORDER BY codigo ASC";

<label for='select'></label>
				<select name='mudar_status' id='mudar_status'>

				<option selected='selected'>" . $selecao_inicial . "</option>			
				<option value='aprovado'>Aprovado</option>
				<option value='cancelado'>Cancelado</option>
				<option value='disponivel-retirada'>Disponível para Retirada</option>
				<option value='enviado-impressao'>Enviado para Impressão</option>
				<option value='em-producao'>Em Produção</option>
				<option value='conferencia'>Em Conferência</option>
				<option value='reprovado'>Reprovado</option>
				<option value='pendete'>Pendente</option>

				</select>

 

Se souber algo em AJAX, aceito também rs.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Hehe...

 

$sql = "SELECT * FROM producao ORDER BY codigo ASC";

?

 

por que tu nao fez o mysql_query ou mysqli_query.

 

fez o fetch_array/_object/assoc

 

$sql = "SELECT * FROM producao ORDER BY codigo ASC";

$qry = mysql_query($sql) or die ($mysql_error());

while($data = mysql_fetch_array($qry)){
$data["id"];//vem do banco de dados
}

 

tu testou o que eu te mandei, no name="name[]" o simbolo [] quer dizer que ele vai armazenar em array todos os dados do [name]..

 

por isso tu pegará todos os valores...

 

teste o codigo que te mandei.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fiz o que disse, com algumas alterações pra se encaixar no código, olha como ficou:

 

$sql="SELECT * FROM $tabela"; 
$resultado=mysql_query($sql); 

$count=mysql_num_rows($resultado); 
?> 
<table width="500" border="0" cellspacing="1" cellpadding="0"> 
<form name="form1" method="post" action=""> 
<tr> 
<td> 
<table width="500" border="0" cellspacing="1" cellpadding="0"> 

<tr> 
<td align="center"><strong>Id</strong></td> 
<td align="center"><strong>Arquivo</strong></td> 
<td align="center"><strong>Status</strong></td> 
<td align="center"><strong>Nome</strong></td> 
</tr> 
<?php 
while($rows=mysql_fetch_array($resultado)){ 
?> 
<tr> 
<td align="center"> <? $id[]=$rows['codigo']; ?><? echo $rows['codigo']; ?> </td> 
<td align="center"> <input name="arquivo[]" type="text" id="arquivo" value=" <? echo $rows['arquivo']; ?> "> </td> 
<td align="center"> <input name="status[]" type="text" id="status" value=" <? echo $rows['status']; ?> "> </td> 
<td align="center"> <input name="nome[]" type="text" id="nome" value=" <? echo $rows['nome']; ?> "> </td> 
</tr> 
<?php 
} 
?> 
<tr> 
<td colspan="4" align="center"> <input type="submit" name="Submit" value="Submit"> </td> 
</tr> 
</table> 
</td> 
</tr> 
</form> 
</table> 
<?php 

if($Submit){ 
for($i=0;$i<$count;$i++){ 
$sql"UPDATE $tabela SET arquivo='$arquivo[$i]', status='$status[$i]', nome='$nome[$i]' WHERE id='$id[$i]'"; 
$resultadomysql_query($sql); 
} 
} 

if($resultado1){ 
header("location:teeeste.php"); 
} 
mysql_close(); 

 

Não retorna nenhum erro, mas quando eu clico em submit não acontece nada, o valor que eu alterei é substituido pelo valor antigo, e eu não estou achando aonde está o erro :ermm: - e em relação ao post anterior, eu não coloquei o mysql_query porque queria mostrar apenas como estava recebendo os dados pelo MySQL rs.

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.