Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Salve!!!
Vou tentar explicar o que estou precisando e não consigo chegar em um contexto funcional.
Tenho 6 campos para upload de 6 imagens em um formulário. Este upload está funcionando certinho.
Porém, o usuário não precisa e não irá necessariamente enviar as 6 imagens de uma vez. Ele pode enviar apenas a 1ª. pode enviar a 2ª e a 5ª. Pode enviar apenas a 6ª, enfim.
Não estou conseguindo chegar a uma query que insira devidamente os dados necessários.
Segue o código atual:
if (!empty($name1) || !empty($name2) || !empty($name3) || !empty($name4) || !empty($name5) || !empty($name6)) {
if (!empty($name1)) {
$ins_img .=" img1 = '$name1'";
}$ins_img .=" img2 = '$name2'";
}$ins_img .=" img3 = '$name3'";
}$ins_img .=" img4 = '$name4'";
}$ins_img .=" img5 = '$name5'";
}$ins_img .=" img6 = '$name6'";
}
$dbc = mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME)
or die('Erro ao conectar ao banco');
$query = "UPDATE imoveis SET $ins_img WHERE imov_id = $imov_id"
or die('Erro ao enviar arquivos');
mysqli_query($dbc, $query);Preciso de alguma solução que insira a vírgula após o primeiro dado caso haja o segundo.
Tentei algumas coisas, mas sem sucesso.
Alguém saberia?
Vlw!
>
Faltam as vírgulas ^^
UPDATE tb_imagens SET campo1 = 'valor1', campo2 = 'valor2' ... WHERE id = 1
Abraços.
Sim, faltam as vírgulas.
Mas no seu exemplo, eu estaria sendo obrigado a inserir os valores nos campos, não?
Eu não terei necessariamente todos os campos.
O usuário pode fazer o upload apenas da imagem 1 e 5, ou apenas da imagem 3 e assim por diante...
Sugestão:
<?php
$ins_campo = '';
$ins_campo .= !empty($name1) ? ' campo1 = "'.$name1.'", ' : ' campo1 = null, ';
$ins_campo .= !empty($name2) ? ' campo2 = "'.$name2.'", ' : ' campo2 = null, ';
$ins_campo .= !empty($name3) ? ' campo3 = "'.$name3.'", ' : ' campo3 = null, ';
$ins_campo .= !empty($name4) ? ' campo4 = "'.$name4.'", ' : ' campo4 = null, ';
$ins_campo .= !empty($name5) ? ' campo5 = "'.$name5.'", ' : ' campo5 = null, ';
$ins_campo .= !empty($name6) ? ' campo6 = "'.$name6.'" ' : ' campo6 = null ';
$sql = 'UPDATE tb_imagens SET '.$ins_campo.' WHERE id = 1';
?>>
Sugestão:
<?php
$ins_campo = '';
$ins_campo .= !empty($name1) ? ' campo1 = "'.$name1.'", ' : ' campo1 = null, ';
$ins_campo .= !empty($name2) ? ' campo2 = "'.$name2.'", ' : ' campo2 = null, ';
$ins_campo .= !empty($name3) ? ' campo3 = "'.$name3.'", ' : ' campo3 = null, ';
$ins_campo .= !empty($name4) ? ' campo4 = "'.$name4.'", ' : ' campo4 = null, ';
$ins_campo .= !empty($name5) ? ' campo5 = "'.$name5.'", ' : ' campo5 = null, ';
$ins_campo .= !empty($name6) ? ' campo6 = "'.$name6.'" ' : ' campo6 = null ';
$sql = 'UPDATE tb_imagens SET '.$ins_campo.' WHERE id = 1';
?>
Falou (escreveu) tudo ;)
;)
Se resolveu, marque o tópico como resolvido.
Abraços.
outro jeito mais legal :)
se precisar incrementar mais campos, fica fácil
<?php
///////////////Test data
$id = 1;
$name1 = 'hugo';
$name2 = 'asdf';
$name5 = 'beta';$names = array();
for($i=1;$i<=6;$i++){
if(!empty(${'name'.$i})){
$names[] = sprintf("img%d = '%s'", $i, ${'name'.$i});
}
}
if(!empty($names)){
$sql = 'UPDATE tabela SET ' . implode(', ', $names) . ' WHERE imov_id = ' . $id;
echo $sql;
}
@braços
>
Sugestão:
<?php
$ins_campo = '';
$ins_campo .= !empty($name1) ? ' campo1 = "'.$name1.'", ' : ' campo1 = null, ';
$ins_campo .= !empty($name2) ? ' campo2 = "'.$name2.'", ' : ' campo2 = null, ';
$ins_campo .= !empty($name3) ? ' campo3 = "'.$name3.'", ' : ' campo3 = null, ';
$ins_campo .= !empty($name4) ? ' campo4 = "'.$name4.'", ' : ' campo4 = null, ';
$ins_campo .= !empty($name5) ? ' campo5 = "'.$name5.'", ' : ' campo5 = null, ';
$ins_campo .= !empty($name6) ? ' campo6 = "'.$name6.'" ' : ' campo6 = null ';
$sql = 'UPDATE tb_imagens SET '.$ins_campo.' WHERE id = 1';
?>
Perfeito!!!
Meu conhecimento atual nunca me levaria a este código... =P
Agradeço e muito!
Faltam as vírgulas ^^
UPDATE tb_imagens SET campo1 = 'valor1', campo2 = 'valor2' ... WHERE id = 1
Abraços.