mbpp 2 Denunciar post Postado Setembro 19, 2014 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
Williams Duarte 431 Denunciar post Postado Setembro 20, 2014 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
mbpp 2 Denunciar post Postado Setembro 20, 2014 Aqui vai: Array([0] => 5ª Feira[1] => 6ª Feira[2] => Sábado[3] => Domingo) Compartilhar este post Link para o post Compartilhar em outros sites
allex_carvalho 124 Denunciar post Postado Setembro 20, 2014 Seria bom dar uma analisada na sua estrutura do banco, está passando somente o id_aluno, não o id do elemento a ser atualizado. Compartilhar este post Link para o post Compartilhar em outros sites
mbpp 2 Denunciar post Postado Setembro 20, 2014 Mas a base dados encontra-e em condições, como não esta passando no id do elemento? Compartilhar este post Link para o post Compartilhar em outros sites
allex_carvalho 124 Denunciar post Postado Setembro 20, 2014 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
mbpp 2 Denunciar post Postado Setembro 20, 2014 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
allex_carvalho 124 Denunciar post Postado Setembro 20, 2014 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. Compartilhar este post Link para o post Compartilhar em outros sites
mbpp 2 Denunciar post Postado Setembro 20, 2014 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
allex_carvalho 124 Denunciar post Postado Setembro 20, 2014 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
mbpp 2 Denunciar post Postado Setembro 20, 2014 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
mbpp 2 Denunciar post Postado Setembro 20, 2014 nem sei como nao vi o problema lool Compartilhar este post Link para o post Compartilhar em outros sites
mbpp 2 Denunciar post Postado Setembro 20, 2014 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