Ir para conteúdo

POWERED BY:

Arquivado

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

mbpp

Update Foreach Loop

Recommended Posts

Oi tudo bem? Espero que me possam ajudar aqui numa dúvida, tenho um formulário onde aparece os dias da semana. O utilizador poderá escolher mais que um dia da semana, e o formulário de inserção funciona bem, mas o problema é no UPDATE, ele não faz a atualiação de cada um, e vez disso ele vé quantos registos eu selecionei e mete todos com o mesmo valor. Alguem pode ver o meu codigo e ver o que estou fazendo de errado?

foreach($diaSemana as $diaSemanas){
										
	$sql_disponibilidade = "UPDATE disponibilidade SET tempo_dia = '$tempoDia', dia_semana = '$diaSemanas' WHERE aluno_id = '$id_aluno'";							
									
	$alterar_disponibilidade = mysql_query($sql_disponibilidade);

	}

cumps

Compartilhar este post


Link para o post
Compartilhar em outros sites

De um print_r na variável $diaSemana e posta aqui novamente. ;)

<?php

echo '<pre>';
print_r( $diaSemana );
die();

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sua query está assim:

$sql_disponibilidade = "UPDATE disponibilidade SET tempo_dia = '$tempoDia', dia_semana = '$diaSemanas' WHERE aluno_id = '$id_aluno'";

O ideal é que pra cada registro seu:

Array
(
[0] => 5ª Feira
[1] => 6ª Feira
[2] => Sábado
[3] => Domingo
)

 

tenha esse id do aluno gravado. Desta forma, vai pegar o primeiro id_aluno que pegar, não o id do campo que deseja atualizar.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então supomos o seguinte, abaixo deixo a estrutura das minhas tabelas:

 

dias_semana:
- id;
- dia;
Dados Inseridos: 2ª feira, 3ªa Feira...até Domingo;
disponibilidade:
- id_disponibilidade (primary, auto-incremento);
- aluno_id;
- tempo_dia;
- dia_semana;
Dados inseridos: 6, 1, 1:00, 2ª Feira;
7, 1, 1:00, 2ª Feira;
Qua seria a forma correcta de fazer o update?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Essas opções estão em um checkbox? Se sim, delete todos os dados referente ao id_aluno e insira novamente. Vai ser bem mais simples fazer o que deseja.

Mas então como depois vai poder indentificar na tebala quais dias estão relacionados com qual utilizador?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Da mesma forma que está. Se estiver usando checkbox, antes de qualquer ação (no arquivo editar), delete os registros com o id que passou. Depois use o insert para gravar os dados novamente.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Da mesma forma que está. Se estiver usando checkbox, antes de qualquer ação (no arquivo editar), delete os registros com o id que passou. Depois use o insert para gravar os dados novamente.

Não faz muito sentido essa forma, se resolver não querer editar nenhuma opção, irá ser eliminado os dias selecionados antes?

Compartilhar este post


Link para o post
Compartilhar em outros sites

nem sei como nao vi o problema lool

$SQL = "DELETE FROM disponibilidade WHERE aluno_id = ".$id_aluno; 
										
										$query = mysql_query($SQL);
									foreach($diaSemana as $diaSemanas){
										
										
										$sql_disponibilidade = "INSERT INTO disponibilidade 
												(aluno_id,tempo_dia, dia_semana) 
												VALUES 
												('$id_aluno','$tempoDia','$diaSemanas')";
									$inserir_disponibilidade = mysql_query($sql_disponibilidade);
										
							
									}

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.