Ir para conteúdo

POWERED BY:

Arquivado

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

ZIKOY1

como fazer update de varias linhas no banco

Recommended Posts

Olá pessoal estou precisando de ajuda , tenho um sistema para gerar horarios de aula você seleciona a turno , serie e turma e ele lista os horarios para aquela turma, e ele monta a tabela de horarios com while entao sempre vai variar os horaios e numeros de aula só depende do turno , e quando eu vou fazer o update nas linhas para alterar as aulas da semana ele so pega o ultimo dia ou o ultimo sequencial =(id) e grva no banco .

a quesntao é como faço para quando fizer a chamada da pagina ele guarda todas as linhasqu eforam listadas no horario e alteradas..

 

 

agradeço desde já.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara,

 

na sua SQL voce pode ver um campo que SEMPRE precise ter conteudo e ai você verifica se ele esta vazio...

 

select * from aula where turno = 'noite' AND evento <> '';

 

 

Logo todos que forem turno noite e o EVENTO ou TITULO sei la como voce chama forem diferentes de vazio (Tiverem conteudo) serão listados.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara,

 

na sua SQL voce pode ver um campo que SEMPRE precise ter conteudo e ai você verifica se ele esta vazio...

 

select * from aula where turno = 'noite' AND evento <> '';

 

 

Logo todos que forem turno noite e o EVENTO ou TITULO sei la como voce chama forem diferentes de vazio (Tiverem conteudo) serão listados.

Nao, ele lista todas as aulas tipo - A de 0800 as 0900 ,so que isso eh moontado com while que enquanto ele achar horario para aquele turno ele lista .

 

hora inicio - hora fim | segunda | terça | quarta | quinta | sexta |

0800 - 0900 | PORT \/ | MAT \/ | HIST \/ |MAT \/ | PORT \/|

0900 - 1000 | PORT \/ | MAT \/ |PORT \/|HIST \/ | FISICA \/|

 

\/ --> dropdown da tabela disciplinas

Cada linha com hora inicial e final é um horario que e e 5 linha que sao os dias da semana e seria essas linhas que teria que alterar , e o laço so guarda a ultima linha e altera so ela

Compartilhar este post


Link para o post
Compartilhar em outros sites

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<!-- DED -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>DED - Cadastro de Alunos</title>
<link rel="shortcut icon" href="favicon.ico" />
<link rel="stylesheet" type="text/css"  href="../default.css">
</head>
<body>
<center>
<?php 
	//require "../verifica.php";
   	include( '../include/conexao_oracle.php');
	include('../topo_2.php');
	include('../aval_menu_2.php');
	//include('consultar_classes_2.php');

	$cod_turno = $_POST["cod_turno"];
	$sq_classes = $_POST["sq_classes"];
	$sq_turmas = $_POST["sq_turmas"];
		
	// select  para mostrar dados da view v_definicao_horarios

	//$result2 = ociparse($ora_conexao ,"select  * from v_definicao_horarios where cod_turno = '$cod_turno' AND sq_classes = '$sq_classes' AND sq_turmas = '$sq_turmas' AND CODIGO_ESCOLA ='". $_SESSION["codigo_escola"] . "' order by hora_inicial");
	
	$result2 = ociparse($ora_conexao ,"select  v.dsc_turnos,v.dsc_classes, v.dsc_turmas , v.hora_inicial , v.hora_final , 
		t.DIS_SEG ,t.DIS_TER ,t.DIS_QUA , t.DIS_QUI, t.DIS_SEX ,v.COD_TURNO COD_TURNO, v.sq_classes  sq_classes, v.sq_turmas sq_turmas ,v.sq_horarios sq_horarios , t.sequencial SEQUENCIAL
from v_definicao_horarios v , t_definicao_horarios t
where v.sq_horarios = t.codigo_horario AND
v.sq_classes = t.codigo_classe AND 
v.sq_turmas = t.codigo_turma and
V.COD_TURNO = '$cod_turno' AND
v.sq_classes = '$sq_classes' AND 
v.sq_turmas = '$sq_turmas' AND 
t.CODIGO_ESCOLA ='". $_SESSION["codigo_escola"] . "'
order by v.hora_inicial");

	OCIExecute($result2, OCI_DEFAULT);
	if ($linha2 = oci_fetch_array($result2)) 
	{
	
?>
<form action="alterar_definicao_horarios_db.php" method="post" name="cad_classes">
<table class="tabelao">

 TURNO : <?php echo $linha2['DSC_TURNOS']  ?>>> CLASSE :<?php echo $linha2['DSC_CLASSES']  ?> >> TURMA :<?php echo $linha2['DSC_TURMAS']  ?>
	
  <tbody><tr class="cabecalho">
		<th width="148" scope="col">Início - Fim</th>
		<th width="100" scope="col">Segunda</th>
		<th width="112" scope="col">Terça</th>
		<th width="114" scope="col">Quarta</th>
		<th width="148" scope="col">Quinta</th>
		<th width="125" scope="col">Sexta</th>
		</tr>
 </table>	
<?php	 
		do {

		$result1 = ociparse($ora_conexao ,"select * from t_disciplinas WHERE 	CODIGO_ESCOLA ='". $_SESSION["codigo_escola"] . "'  ORDER BY sequencial ASC ");
		OCIExecute($result1, OCI_DEFAULT);
		
	?>		   

<table class="tabelinha">

  <tr >
  <th width="168" ><?php echo $linha2['HORA_INICIAL']  ?> - <?php echo $linha2['HORA_FINAL']  ?></th>  


  <td width="100">
		
		<select class="campo" name='dis_seg'  id="Serie">
		<option value="$linha2[5]" selected > <?php echo $linha2[5] ?> </option>
		<?php
			include( '../include/conexao_oracle.php');
			
				$result3 = ociparse($ora_conexao ,"select * from t_disciplinas WHERE 	CODIGO_ESCOLA ='". $_SESSION["codigo_escola"] . "'  ORDER BY sequencial ASC ");
			
				OCIExecute($result3, OCI_DEFAULT);
	//pego os dados do banco para montar o combo 
			
				while($linha3 = oci_fetch_array($result3)) 
			{
				$descricao3 = $linha3['DESCRICAO'];
				$sequencial3 = $linha3['SEQUENCIAL'];
	
  
			echo  "<option value=\"$sequencial3\"> $descricao3 </option>\n";

			}
	//fecho a conexao com o banco
			@oci_close();

?>
			</select>
			</td>
	   
	<td width="119">
		<select class="campo" name='dis_ter'  id="Serie">
		<option value="$linha2[6]" selected > <?php echo $linha2[6] ?> </option>
		<?php
			include( '../include/conexao_oracle.php');
			
				$result4 = ociparse($ora_conexao ,"select * from t_disciplinas WHERE 	CODIGO_ESCOLA ='". $_SESSION["codigo_escola"] . "'  ORDER BY sequencial ASC ");
				
				OCIExecute($result4, OCI_DEFAULT);
	//pego os dados do banco para montar o combo 
				while($linha4 = oci_fetch_array($result4)) 
			{
				$descricao4 = $linha4['DESCRICAO'];
				$sequencial4 = $linha4['SEQUENCIAL'];
	
  
			echo  "<option value=\"$sequencial4\"> $descricao4 </option>\n";

			}
	//fecho a conexao com o banco
			@oci_close();

?>
			</select>
			</td>
			
	  <td width="119">
		<select class="campo" name='dis_qua'  id="Serie">
		<option value="$linha2[7]" selected > <?php echo $linha2[7] ?> </option>

		<?php
			include( '../include/conexao_oracle.php');
			
			
				$result5 = ociparse($ora_conexao ,"select * from t_disciplinas WHERE 	CODIGO_ESCOLA ='". $_SESSION["codigo_escola"] . "'  ORDER BY sequencial ASC ");
			
				OCIExecute($result5, OCI_DEFAULT);
	//pego os dados do banco para montar o combo 
				while($linha5 = oci_fetch_array($result5)) 
			{
				$descricao5 = $linha5['DESCRICAO'];
				$sequencial5 = $linha5['SEQUENCIAL'];
 
  
			echo  "<option value=\"$sequencial5\"> $descricao5 </option>\n";

			}
	//fecho a conexao com o banco
			@oci_close();

?>
		</select>
	  </td>
	
	<td width="119">
		<select class="campo" name='dis_qui'  id="Serie">
		<option value="$linha2[8]" selected > <?php echo $linha2[8] ?> </option>

		<?php
			include( '../include/conexao_oracle.php');

			
				$result6 = ociparse($ora_conexao ,"select * from t_disciplinas WHERE 	CODIGO_ESCOLA ='". $_SESSION["codigo_escola"] . "'  ORDER BY sequencial ASC ");
				
				OCIExecute($result6, OCI_DEFAULT);
	//pego os dados do banco para montar o combo 
				while($linha6 = oci_fetch_array($result6)) 
			{
				$descricao6 = $linha6['DESCRICAO'];
				$sequencial6 = $linha6['SEQUENCIAL'];
	
  
			echo  "<option value=\"$sequencial6\"> $descricao6 </option>\n";

			}
	//fecho a conexao com o banco
			@oci_close();

?>
		</select>
	  </td>
	<td width="122">
		<select class="campo" name='dis_sex'  id="Serie">
		<option value="$linha2[9]" selected > <?php echo $linha2[9] ?> </option>

		<?php
			include( '../include/conexao_oracle.php');

			
				$result7 = ociparse($ora_conexao ,"select * from t_disciplinas WHERE 	CODIGO_ESCOLA ='". $_SESSION["codigo_escola"] . "'  ORDER BY sequencial ASC ");
				
				OCIExecute($result7, OCI_DEFAULT);
	//pego os dados do banco para montar o combo 
				while($linha7 = oci_fetch_array($result7)) 
			{
				$descricao7 = $linha7['DESCRICAO'];
				$sequencial7 = $linha7['SEQUENCIAL'];
	
  
			echo  "<option value=\"$sequencial7\"> $descricao7 </option>\n";

			}
	//fecho a conexao com o banco
			@oci_close();

?>
			</select>
			</td>
	
	</tr>
</table>


<input  class="campo" name="SEQUENCIAL" id = "SEQUENCIAL"   value="<?php echo $linha2['14'] ?>"> 
<input  class="campo" name="turno" id = "turno" value="<?php echo $linha2['COD_TURNO'] ?>"> 
<input  class="campo" name="codigo_horario" id = "codigo_horario" value="<?php echo $linha2['SQ_HORARIOS'] ?>">
<input  class="campo" name="codigo_classe" id = "codigo_classe"  value="<?php echo $linha2['SQ_CLASSES'] ?>">
<input  class="campo" name="codigo_turma" id = "codigo_turma"  value="<?php echo $linha2['SQ_TURMAS'] ?>">

<input  class="btn_buscar btn_buscar_over" name='Submit' type='submit' value='Atualizar Linha'>



<?php			
//	}
	}
	
	 while ($linha2 = oci_fetch_array($result2));
	  
	} 
else 
{
	print "Nenhum dado foi encontrado";
}



//ocifreestatement($result2);
?>



<?php
//<input  class="btn_buscar btn_buscar_over" name='Submit' type='submit' value='Gravar'>
//echo $y;

	// ---- base do site ----  
include ('../base_2.php');
	
?>
		

</center>
</body>
</html>

aqui ele faz a listagem dos dados e monta a tabela de horarios, desculpe eh que sou novatoo em programaçao , valeu mesmo ajuda

Compartilhar este post


Link para o post
Compartilhar em outros sites

Amigo,

 

ainda não entendi muito o que pretende fazer...

 

mais para atualizar varios itens voce pode fazer o seguinte

 

na sua tabela de resposta com os horarios cria uma checkbox para a pessoa escolher qual que ele quer atualizar...

 

a checkbox deve ser assim:

<input type=checkbox name=horario[] value="O VALOR DOS HORARIOS" />

 

na hora de receber no PHP:

 

foreach($_POST["horario"] as $horario){

//NESTE MOMENTO ELE VAI FAZER UM LOOP PARA CADA UMA DAS OPÇÔES QUE O USUARIO MARCOU

// LOGO, É DENTRO DESSE LOOP QUE VOCE VAI ATUALIZAR, UM POR UM, SO DADOS DO BANCO

 

}

 

 

Espero ter ajudado....

 

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

como você esta fazendo essa parte de atualização?

teria como demonstrar isso no codigo?

 

pq assim fica dificil

include ('../include/conexao_oracle.php');
if ($_SESSION["permissao"] == "F")
{


$sql = "UPDATE t_definicao_horarios set
DIS_SEG='".$_POST['dis_seg']."', 
DIS_TER='".$_POST['dis_ter']."',
DIS_QUA='".$_POST['dis_qua']."',
DIS_QUI='".$_POST['dis_qui']."',
DIS_SEX='".$_POST['dis_sex']."'
where SEQUENCIAL = '".$_POST['SEQUENCIAL']."' AND CODIGO_ESCOLA ='". $_SESSION["codigo_escola"] . "' ";	
//$sql = "UPDATE t_classes SET imgm1='$imgm_arr[0]', imgm2='$imgm_arr[1]', imgm3='$imgm_arr[2]', imgm4='$imgm_arr[3]' WHERE id='$_POST[id]'") or die(mysql_error());

//Inserindo os dados

$result = ociparse($ora_conexao,$sql);
OCIExecute($result, OCI_DEFAULT);
OCI_COMMIT($ora_conexao);

 echo "<center><font style=Arial color=green><h1>Alterado com sucesso!</h1></font></center>";
 echo "<br>";
 
}

esse é o update

Compartilhar este post


Link para o post
Compartilhar em outros sites

como eu faria para que depois do while ele carregue no banco todos os dados de cada linha e nao só o do ultimo id . ocorre que eu do print na tela de todos os id's, mas na hora de inserir no banco ele spo manda o o ultimo id visto

Compartilhar este post


Link para o post
Compartilhar em outros sites

Amigo,

 

ainda não entendi muito o que pretende fazer...

 

mais para atualizar varios itens voce pode fazer o seguinte

 

na sua tabela de resposta com os horarios cria uma checkbox para a pessoa escolher qual que ele quer atualizar...

 

a checkbox deve ser assim:

<input type=checkbox name=horario[] value="O VALOR DOS HORARIOS" />

 

na hora de receber no PHP:

 

foreach($_POST["horario"] as $horario){

//NESTE MOMENTO ELE VAI FAZER UM LOOP PARA CADA UMA DAS OPÇÔES QUE O USUARIO MARCOU

// LOGO, É DENTRO DESSE LOOP QUE VOCE VAI ATUALIZAR, UM POR UM, SO DADOS DO BANCO

 

}

 

 

Espero ter ajudado....

 

Abraços

Agora fiz isso

include ('../include/conexao_oracle.php');
if ($_SESSION["permissao"] == "F")
{


foreach($_POST["horario"] as $i){
$sequencial = $i;
echo "Sequencial do Horario ".$sequencial;
}


$dis_seg= $_POST['dis_seg'];
$dis_ter= $_POST['dis_ter'];
$dis_qua= $_POST['dis_qua'];
$dis_qui= $_POST['dis_qui'];
$dis_sex= $_POST['dis_sex'];

$sql = ("UPDATE t_definicao_horarios SET 
dis_seg='".$dis_seg."', dis_ter='".$dis_ter."', dis_qua='".$dis_qua."', dis_qui='".$dis_qui."',dis_sex='".$dis_sex."' 
WHERE sequencial='".$sequencial."'") or die("ERRO NO COMANDO SQL UPDATE!");


$result = ociparse($ora_conexao,$sql);
OCIExecute($result, OCI_DEFAULT);
OCI_COMMIT($ora_conexao);

 

...ele retorna os dados e ex sequencial 736, 737 , 738 , mas ao inserir no banco ele só inseri no ultima linha o 738 , você como eu posso fazer um while para inserir nos outros tambem.

 

obrigado pela força

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.