Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Bom dia, estou há um tempo tentando fazer um update nesse site que estou fazendo manutenção, pois tenho que listar contudo do banco, beleza isso eu fiz, e acrescentei um campo de bolsas em que o adm irar definir quantidade de bolsas para cada curso, esse campo de bolsas ele exibe a quantidade que já foi definido para ele, ate aqui ok!! ai se eu mudo a quantidade ou acrescento em qualquer outro campo nao muda em nada.
segue um pouco do codigo!
<form action="" method="post">
<label>
Processo:
<select id="curso" name="curso" onchange="this.form.submit()">
<option value="">***SELECIONE***</option>
<option value="medicina" <?php echo ($curso == 'medicina')?'selected':''; ?> >Medicina</option>
<option value="fonoaudiologia" <?php echo ($curso == 'fonoaudiologia')?'selected':null; ?>>Fonoaudiologia</option>
</select>
</label>
</form>
<?
<form action="" method="post">
<table style="width: 100%;">
<thead>
<tr>
<th>Disciplina</th>
<th>Turma</th>
<th>PED</th>
<th>Inscritos</th>
<th>Vagas</th>
<th>Bolsas</th>
</tr>
</thead>
<tbody>
<input type="hidden" name="id" value="<?=$row['id'];?>">
<td class="center"><input type="number" name="cursoBolsa" id="cursoBolsa" value="<?=$row['nBolsas'];?>"></td>
<td><button class="btn btn-green box" name="enviarBolsa" type="submit" id="enviarBolsa">Enviar</button></td>
<?
/**
* @todo continuar apartir daqui fazer update
*/
$cursoBolsas = isset($_POST['cursoBolsa']) ? ($_POST['cursoBolsa']) : null;
if ($cursoBolsas and !empty($cursoBolsas)) {
//$cursoBolsa = ($_POST['cursoBolsa'].$row['id']) ? $_POST['cursoBolsa'].$row['id'] : null;
$updateBol = "UPDATE pedturma SET nBolsas = $cursoBolsas where id = '{$row['id']}'";
$db3->consulta($updateBol);
}
?>
#printar o que esta sendo atribuia as variaveis, mas o campo $cursoBolsas volta sem conteudo ou vazio ou null
print_r("( Nro Adicionado)---> ".$cursoBolsas." | ( id )---> ".$row['id']. " | ( Numeros de bolsas atual )---> ".$row['nBolsas']); exit();
</table>
<td><button class="btn btn-green box" name="enviarBolsa" type="submit" id="enviarBolsa">Enviar</button></td>
</form>
resumi o maximo que pude pois acho que os outro nao interfere mas nao tenho certeza, por isso venho pedir ajuda, pois toda atualizaçao é feita nesta mesma pagina sem passar para outra>
4 horas atrás, Joannes Waquim disse:
$updateBol = "UPDATE pedturma SET nBolsas = $cursoBolsas where id = '{$row['id']}'";
$updateBol = "UPDATE pedturma SET nBolsas = '".$cursoBolsas."' WHERE id = '".$row['id']."'";
Faça essa alteração, creio que resolva o problema.>
18 horas atrás, Jesse&Francinete disse:
$updateBol = "UPDATE pedturma SET nBolsas = '".$cursoBolsas."' WHERE id = '".$row['id']."'";
Faça essa alteração, creio que resolva o problema.
Bom dia, fiz o que sugeriu mas não funcionou, então só acrescentei o id no nome do campo cursoBolsa e ficou assim.
<input type="number" name="cursoBolsa<?=$row['id'];?>" value="<?=$row['nBolsas'];?>">
mas tenho outros dois problemas como esta os prints em anexo, como vcs viu o value exibe para mim o conteúdo no banco para eu ver quantas bolsas existem para cada curso e e caso eu quero alterar, só mudo o valor deles para o que eu quero e depois envio, mas acontece que assim que envio minha pagina não atualiza para o valor que foi alterado no banco pois eu verifiquei e é alterado, ai tenho que da um f5 na pagina para que as alterações no banco sejam exibidas corretamente, então como posso corrigir isso? procurei e vi que eu deveria fazer o seguinte forma
if( $_SERVER['REQUEST_METHOD']=='POST' )
{
mas não funcionou
para nao precisar eu eu apertar f5.
outro problema é que caso eu queira deixar em branco da erro, pois ele encontra o id mas não encontra o valor, mas gostaria de deixar null, ai tenho que comentar a linha de update para carregar toda pagina pois da erro de syntaxi pois não encontra o valor que será inserido, então ai muda tudo para zero após eu deixar o update normal de novo e não é o que eu quero!
como vcs podem ver no pint os valores de zero como posso solucionar esses dois problemas? pois tudo e feito na mesma pagina !!!
pois a pagina principal se encarregar de chamar a pagina que tem todo o conteúdo de logica e views, pois nesse caso nao estou usando o mvc, pois estou fazendo uma manutenção no site já existente que já está assim, obrigado desde já!!
>
19 horas atrás, WellingtonSilva disse:
Joannes,
O id que você usa no where do seu update, está dentro de um input type=hidden, ou seja, faz parte do formulário que você está enviando, só que no momento em que você vai montar o update você só recebe o post do "cursoBolsa", não está faltando ai um recebimento também do ID?
Você colocando no seu update o mesmo value do input "{row[id]}", só que você tem de recebe-lo via post já que está dentro do form, caso contrário vem zerado.
mas eu tenho a variado com o id normal que veio do laço, não sei como pega-lo do post já que ninguém irá digitar, ms ai consegui fazer o update mas tenhos outros dois problemasbom dia pessoal quanto ao ao submeter o envio e nao atualizar o meu conteudo na pagina somnete no banco e para eu ver o que esta atualizado no banco e ver na pagina eu teria que dar um f5, mas procurei e encontrei o seguinte codigoo
<script type='text/javascript'>
(function()
{
if( window.localStorage )
{
if( !localStorage.getItem( 'firstLoad' ) )
{
localStorage[ 'firstLoad' ] = true;
window.location.reload();
}
else
localStorage.removeItem( 'firstLoad' );
}
})();
</script>
mas o ruim que após o envio e a pagina carrega ele da um refresh novamente e fica como se estivesse pesado, resolve o meu problema mas é como se fosse um refresh após o outro!!!
e preciso também ver porque nao aceita o valor null no update ja que o campo no banco sim !!Para dar o refres no final você joga o script dentro do php
$cursoBolsas = isset($_POST['cursoBolsa']) ? ($_POST['cursoBolsa']) : null;
if ($cursoBolsas and !empty($cursoBolsas)) {
//$cursoBolsa = ($_POST['cursoBolsa'].$row['id']) ? $_POST['cursoBolsa'].$row['id'] : null;
$updateBol = "UPDATE pedturma SET nBolsas = $cursoBolsas where id = '{$row['id']}'";
$db3->consulta($updateBol);
echo '<script>'
. 'location.reload();'
. '</script>';
}>
12 horas atrás, futepa disse:
Para dar o refres no final você joga o script dentro do php
$cursoBolsas = isset($_POST['cursoBolsa']) ? ($_POST['cursoBolsa']) : null;
if ($cursoBolsas and !empty($cursoBolsas)) {
//$cursoBolsa = ($_POST['cursoBolsa'].$row['id']) ? $_POST['cursoBolsa'].$row['id'] : null;
$updateBol = "UPDATE pedturma SET nBolsas = $cursoBolsas where id = '{$row['id']}'";
$db3->consulta($updateBol);
echo '<script>'
. 'location.reload();'
. '</script>';
}
Bom dia, esse codigo
echo '<script>'
. 'location.reload();'
. '</script>';
estava fazendo com que a pagina recarregasse sem parar um refresh infinito,
resolvi o problema de gravar zeros ao invés de null, agora se o campo esta vazio grava null como era para ser, o código faz assim tenho select option onde a pessoa escolhe o tipo de curso fono ou medicina ai aparece varias disciplinas oferecidas e as vagas, quanto as vagas é distribuídas pelo adm, mas se eu escolho fono e atribuo ele grava normal ai eu escolho medicina para gravar e grava para medicina e quando volto em fono vejo que gravou por cima null e volto em medicina para ver também vi que gravou null também, como resolvo?entao pessoal deixando um pouco de lado por enquanto o carregamento da pagina
sempre consigo fazer o update normal, mas vou a pagar nao pagar, tido deixar vazio e inserir null
if (isset($_POST['cursoBolsa' . $row['id']]) and $_POST['cursoBolsa' . $row['id']] != "")
{
$cursoBolsas = isset($_REQUEST['cursoBolsa' . $row['id']]) ? ($_REQUEST['cursoBolsa' . $row['id']]) : null;
$updateBol = "UPDATE pedturma SET nBolsas = '" . $cursoBolsas . "' WHERE id = '" . $row['id'] . "'";
$db3->consulta($updateBol);
}
sei que precisa do 'else' entao fiz este outro modo como esta em baixo
if(isset($_POST['cursoBolsa'.$row['id']]) and $_POST['cursoBolsa'.$row['id']] !="" )
{
$cursoBolsas = isset($_REQUEST['cursoBolsa' . $row['id']]) ? ($_REQUEST['cursoBolsa' . $row['id']]) : null;
$updateBol = "UPDATE pedturma SET nBolsas = '" . $cursoBolsas . "' WHERE id = '" . $row['id'] . "'";
$db3->consulta($updateBol);
}elseif(empty($_POST['cursoBolsa'.$row['id']] ))
{
$updateBol = "UPDATE pedturma SET nBolsas = NULL WHERE id = '" . $row['id'] . "'";
$db3->consulta($updateBol);
}
esse update é para o curso fono, ai faço update normal, mas quando escolho medicina e adiciono um numero e faço update altera normal, mas quando vou olhar o fono altura tudo na tabela para null e retorno para medicina e vi que altera tudo para null também, como devo fazer? no primeiro codigo altero num e vou no outr e retorno esta normal o problema é que nao consigo tipo deixar vazio caso não tenha vagas para aquela discipina!!>
5 horas atrás, Joannes Waquim disse:
entao pessoal deixando um pouco de lado por enquanto o carregamento da pagina
sempre consigo fazer o update normal, mas vou a pagar nao pagar, tido deixar vazio e inserir null
if (isset($_POST['cursoBolsa' . $row['id']]) and $_POST['cursoBolsa' . $row['id']] != "")
{
$cursoBolsas = isset($_REQUEST['cursoBolsa' . $row['id']]) ? ($_REQUEST['cursoBolsa' . $row['id']]) : null;
$updateBol = "UPDATE pedturma SET nBolsas = '" . $cursoBolsas . "' WHERE id = '" . $row['id'] . "'";
$db3->consulta($updateBol);
}
sei que precisa do 'else' entao fiz este outro modo como esta em baixo
if(isset($_POST['cursoBolsa'.$row['id']]) and $_POST['cursoBolsa'.$row['id']] !="" )
{
$cursoBolsas = isset($_REQUEST['cursoBolsa' . $row['id']]) ? ($_REQUEST['cursoBolsa' . $row['id']]) : null;
$updateBol = "UPDATE pedturma SET nBolsas = '" . $cursoBolsas . "' WHERE id = '" . $row['id'] . "'";
$db3->consulta($updateBol);
}elseif(empty($_POST['cursoBolsa'.$row['id']] ))
{
$updateBol = "UPDATE pedturma SET nBolsas = NULL WHERE id = '" . $row['id'] . "'";
$db3->consulta($updateBol);
}
esse update é para o curso fono, ai faço update normal, mas quando escolho medicina e adiciono um numero e faço update altera normal, mas quando vou olhar o fono altura tudo na tabela para null e retorno para medicina e vi que altera tudo para null também, como devo fazer? no primeiro codigo altero num e vou no outr e retorno esta normal o problema é que nao consigo tipo deixar vazio caso não tenha vagas para aquela discipina!!
Pessoal consegui fazendo essas alterações obrigado pelas sugestões.
if (isset($_POST['enviarBolsa']))
{
if(isset($_POST['cursoBolsa'.$row['id']]) and $_POST['cursoBolsa'.$row['id']] != "" or $_POST['cursoBolsa'.$row['id']] != 0)
{
$cursoBolsas = isset($_REQUEST['cursoBolsa' . $row['id']]) ? ($_REQUEST['cursoBolsa' . $row['id']]) : null;
$updateBol = "UPDATE pedturma SET nBolsas = '" . $cursoBolsas . "' WHERE id = '" . $row['id'] . "'";
$db3->consulta($updateBol);
}elseif ($_POST['cursoBolsa'.$row['id']] == "" or $_POST['cursoBolsa'.$row['id']] == 0 or $_POST['cursoBolsa'.$row['id']] != 0)
{
$cursoBolsas = isset($_REQUEST['cursoBolsa' . $row['id']]) ? ($_REQUEST['cursoBolsa' . $row['id']]) : null;
$updateBol = "UPDATE pedturma SET nBolsas = NULL WHERE nBolsas >= 0 and id = '" . $row['id'] . "'";
$db3->consulta($updateBol);
}
}
Joannes,