Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá gente! tudo bom?
Bom o que tenho hoje é uma dúvida bem chatinha relacionada a multiplo update.
Vou explicar com funciona o meu sistema aqui:
Eu listo todos os usuarios de um banco de dados, e nessa lista tenho um campo select para atualizar o status de cada usuario, o que acontece é o seguinte, vamos imaginar que eu tenho 4 usuarios na minha database (Fulano,Ciclano,fulano2 e ciclano2), com meu script eu consigo listar todos eles,exibindo dessa forma
Listar:
>
| Nome | Status Atual | Definir Status como: |
| Fulano | Aberto | *==========SELECT============*|
| Ciclano | Fechado | *==========SELECT============*|
| Fulano2 | aguardadndo | *==========SELECT============*|
| Ciclano2 | Aberto | *==========SELECT============*|
Para alterar o status eu uso o input SELECT, onde fica salvo os 3 tipos de status..
Agora o problema é o seguinte, se eu não escolher nenhuma opção no input SELECT ele faz update em todos os campos e acaba com isso deixando campos em branco, ou mudando status que não deveriam mudar.. oque preciso fazer é um UPDATE somente nos campos que eu quiser alterar o status. **Mais como fazer isso?**
Logo abaixo segue meu código atual:
<?php
if (!isset($_SESSION)) session_start();
$nivel_necessario = 2;
if (!isset($_SESSION['UsuarioID']) OR ($_SESSION['UsuarioNivel'] < $nivel_necessario)) {
session_destroy();
header("Location: ?pagina=compras");
exit;
}
?>
<h1>Gerenciar compras</h1>
<?php
include ('../config.php');
if(isset($_POST["alterar"]) == true) { {
// find out how many records there are to update
$size = count($_POST['status']);
// start a loop in order to update each record
$i = 0;
while ($i < $size) {
// define each variable
$statusinfo= $_POST['status'][$i];
$id = $_POST['id'][$i];
$query = "UPDATE usuarios SET `status` = '$statusinfo',`pagamento`= 'vazio' WHERE `id` = '$id' LIMIT 1";
mysql_query($query) or die ("Error in query: $query");
print "$statusinfo<br /><br /><em>Updated!</em><br /><br />";
++$i;
}
mysql_close();
}}
$result = mysql_query("SELECT * FROM usuarios ORDER BY id");
$i = 0;
?>
<form name='namestoupdate' method='post' action='paginas/update.php'>
<table>
<thead>
<tr>
<td><b>Usuário</b></td>
<td><b>Quantidade</b></td>
<td><b>Forma de pagamento:</b></td>
<td><b>Status atual</b></td>
<td><b>Definir Status como</b></td>
</tr>
</thead>
<tbody>
<?php
while ($status = mysql_fetch_array($result)) {
?>
<tr>
<td><?php print "<input type='hidden' name='id[$i]' value='{$status['id']}' />"; ?><?php print $status['nome'];?></td>
<td><?php print $status['valor'];?></td>
<td><?php print $status['pagamento'];?></td>
<td>
<input type="text" value="<?php echo $status['status']; ?>" disabled />
</td>
<td>
<?php print "<select name='status[$i]' id='status'>";?>
<option>Selecione um status</option>
<option value='Aberto'>Pedido em aberto</option>
<option value='Aguardando'>Aguardando pagamento</option>
<option value='Fechado'>Pedido Finalizado</option>
</select>
</td>
</tr>
</tbody>
<?php
++$i;
}
mysql_close();
?>
</table>
<input type='submit' value='submit' name='alterar' />
</form>
Agradeço as ajudas!
Att,Mulambo
Carregando comentários...