Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá Amigos,
Bom dia!!
Estou com a seguinte dúvida...
veja a query a baixo
$sql = "update fotos SET campo1 = '$_REQUEST[campo1]', campo2 = '$_REQUEST[campo2]' where id = '$id'";
$res = mysql_query($sql);
o campo2 é um radio button e so vai ser marcado quando precisar, até ai tudo certo.
O problema é que so faz um update na tabela se o campo2 estiver marcado.
alguem sabe como resolvo esse problema fazer upadate sem o campo2 estiver marcado?
Amigo,
bom dia.
Acredito que a solução mais facil será tratar isso com um IF dentro da sua aplicação
If(isset($_REQUEST[campo2]){
$sql = "update fotos SET campo1 = '$_REQUEST[campo1]', campo2 = '$_REQUEST[campo2]' where id = '$id'";
$res = mysql_query($sql);
}
else {
$sql = "update fotos SET campo1 = '$_REQUEST[campo1]' where id = '$id'";
$res = mysql_query($sql);
}Olá Amigo,
Essa opção já fiz, mais achei meio tosco, não teria uma maneira de tratar na mesma query?
essa é realmente a maneira mais facil e que menos utiliza recursos do MySQL
é possivel fazer no MySQL,
mas você teria que fazer o IF dentro do MySQL
Voce teria que referencias as suas variaveis dentro de variaveis no MySQL
e verificar se elas estão preenchidas ou nao
e com um IF... ELSE realizar uma ação,
daria mto trabalho e utilizaria mto recurso,
sem contar na quantidade de dados que você colocaria na rede sem precisão.
@K9, o problema é que quando você não marca o campo2, o php busca ele e não encontra, retornando um erro e não atualizando o DB.
Por isso deixei o cód. assim
// veja bem..
// se o campo 2 existir(ou seja, se o campo2 for marcado), vai retornar o valor do campo2
// caso ele não seja marcado vai retornar uma string vazia..
// sendo assim, a variável $campo2 sempre vai existir, independente do campo2 ser marcado ou não.. sacou.. =)
$campo2 = isset($_REQUEST['campo2']) ? $_REQUEST['campo2'] : '';
$sql = "UPDATE fotos SET campo1 = '{$_REQUEST['campo1']}', campo2 = '{$campo2}' WHERE id = '{$id}'";
Experimente fazer como citei ai.. ;)
Olá Amigo,
Obrigado pela dica...
Funcionou assim:
$campo2 = isset($_REQUEST['campo2']) ? $_REQUEST['campo2'] : '0';
pois sem o zero o campo continuava vazio.
Obrigado!!!
Experimenta deixar assim:
// se o campo 2 existir, retorna o valor do mesmo, se não retorna vazio..