Rasp 3 Denunciar post Postado Setembro 19, 2008 Fala galera! Venho pedir uma luz e se possível uma ajudinha também a vocês... estou montando um sistema e na parte de login tenho que cadastrar materias para os usuarios limitidos (coisa que ainda não consegui resolver) até aí tudo bem, seriam modulos, logo fiz referencias da tabela de materias na de usuarios porém, ouveram modificações e agora são várias materias que podem ser cadastradas em cada usuario, aí veio o problema, montei a tabela e não sei como irei fazer INSERT e UPDATE em mais de uma tabela ao mesmo tempo... será que vcs poderiam me ajudar? Segue os arquivos de INSERT e UPDATE e também a estrutura das tabelas: -- -- Estrutura da tabela `arquivos` -- CREATE TABLE IF NOT EXISTS `arquivos` ( `id_arquivo` smallint(5) unsigned NOT NULL auto_increment, `caminho` varchar(200) NOT NULL, `fk_materia` smallint(2) NOT NULL, PRIMARY KEY (`id_arquivo`), UNIQUE KEY `login` (`caminho`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1; -- -------------------------------------------------------- -- -- Estrutura da tabela `materias` -- CREATE TABLE IF NOT EXISTS `materias` ( `id_materia` smallint(5) unsigned NOT NULL auto_increment, `materia` varchar(50) NOT NULL, PRIMARY KEY (`id_materia`), UNIQUE KEY `login` (`materia`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1; -- -------------------------------------------------------- -- -- Estrutura da tabela `niveis` -- CREATE TABLE IF NOT EXISTS `niveis` ( `id_nivel` smallint(5) unsigned NOT NULL auto_increment, `nivel` varchar(20) NOT NULL, PRIMARY KEY (`id_nivel`), UNIQUE KEY `login` (`nivel`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=3; -- -- Extraindo dados da tabela `niveis` -- INSERT INTO `niveis` (`id_nivel`, `nivel`) VALUES (1, 'Administrador'), (2, 'Aluno'); -- -------------------------------------------------------- -- -- Estrutura da tabela `usuarios` -- CREATE TABLE IF NOT EXISTS `usuarios` ( `id_usuario` smallint(5) unsigned NOT NULL auto_increment, `login` varchar(20) NOT NULL, `senha` char(40) NOT NULL, `nome` varchar(45) NOT NULL, `email` varchar(60) NOT NULL, `fk_nivel` tinyint(2) unsigned NOT NULL, `chave` char(40) NOT NULL, PRIMARY KEY (`id_usuario`), UNIQUE KEY `login` (`login`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1; -- -------------------------------------------------------- -- -- Estrutura da tabela `usuarios_materias` -- CREATE TABLE IF NOT EXISTS `usuarios_materias` ( `id_usuario` smallint(5) unsigned NOT NULL, `id_materia` varchar(20) NOT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1; Cadastro de Alunos: <?php if($_SERVER['REQUEST_METHOD'] == 'POST') { foreach($_POST as $campo => $valor) { $$campo = anti_injection($valor); } $erro = array(); if($login == NULL || $login == '') $erro[] = "Informe um login (nome de usuário)"; if($senha == NULL || $senha == '') $erro[] = "Informe uma senha"; if(strlen($senha) < 6) $erro[] = "A senha deve ter pelo menos 6 caracteres"; if($nome == NULL || $nome == '') $erro[] = "Informe o nome completo do usuário"; if($email == NULL || $email == '') $erro[] = "Infome um endereço de email válido"; if($niveis == NULL || $niveis == '') $erro[] = "Informe o tipo de usuário"; if(strlen($niveis) > 2) $erro[] = "Nível informado está incorreto"; if(count ($erro) > 0) { $msg = ''; foreach($erro as $v) $msg .= $v."\\n"; $usuario_salvar = "<script type=\"text/javascript\">alert('".$msg."');</script>"; return false; } $senha = sha1($senha); $chave = sha1( sha1(strtolower(trim($login))) . sha1(strtolower(trim($senha))) ); Abre_Conexao(); if(@mysql_query("INSERT INTO usuarios VALUES ( NULL , '$login', '$senha', '$nome', '$email', '$niveis', '$materias', '$chave' )")) { if(mysql_affected_rows() == 1) { $usuario_salvar = "<script type=\"text/javascript\">alert('Registro efetuado com sucesso');</script>"; } } else { if(mysql_errno() == 1062) { echo $erros[mysql_errno()]; exit; } else { echo mysql_error(); exit; } @mysql_close(); } } ?> Editar Alunos: <?php if($_SERVER['REQUEST_METHOD'] == 'POST') { foreach($_POST as $campo => $valor) { $$campo = anti_injection($valor); } $erro = array(); if($senha == NULL || $senha == '') $erro[] = "Informe uma senha"; if(strlen($senha) < 6) $erro[] = "A senha deve ter pelo menos 6 caracteres"; if($nome == NULL || $nome == '') $erro[] = "Informe o nome completo do usuário"; if($email == NULL || $email == '') $erro[] = "Infome um endereço de email válido"; if($niveis == NULL || $niveis == '') $erro[] = "Informe o tipo de usuário"; if(strlen($niveis) > 2) $erro[] = "Nível informado está incorreto"; if(count ($erro) > 0) { $msg = ''; foreach($erro as $v) $msg .= $v."\\n"; $usuario_editar = "<script type=\"text/javascript\">alert('".$msg."');</script>"; return false; } $senha = sha1($senha); $chave = sha1( sha1(strtolower(trim($login))) . sha1(strtolower(trim($senha))) ); Abre_Conexao(); if(@mysql_query("UPDATE usuarios SET senha = '$senha', nome = '$nome', email = '$email', fk_nivel = '$niveis', fk_materia = '$materias', chave = '$chave' where id_usuario = $id")) { if(mysql_affected_rows() == 1) { $usuario_editar = 'Registro atualizado com sucesso'; } } else { if(mysql_errno() == 1062) { echo $erros[mysql_errno()]; exit; } else { $usuario_editar = 'Não foi possivel efetuar a edição'; exit; } @mysql_close(); } } header("Location: usuario_listar.php"); ?> Se alguém puder ajudar agradeço galera! vlw e abss Compartilhar este post Link para o post Compartilhar em outros sites
Rasp 3 Denunciar post Postado Setembro 21, 2008 Será que alguem poderia dar uma luz? Vlwww! Compartilhar este post Link para o post Compartilhar em outros sites
roniware 0 Denunciar post Postado Setembro 21, 2008 Será que alguem poderia dar uma luz? Vlwww! Amigo acho que posso te ajudar na parte de update das duas tabelas; para fazer o update em duas tabelas ao memos tempo pode fazer como se fosse um select com join, ou mais simples ainda deste modo, UPDATE `fornecedores`,`contador` SET `fornecedores`.`nome`= 'teste de update', `contador`.`ip`= '123.123.3.3343' Where `fornecedores`.`id`= 24 AND `contador`.`id`= 24; Agora para fazer o insert pode criar duas querry e executar as duas é uma gambi mas pode te ajudar por enquanto. É isso ai amigo espero ter ajudado ai... Compartilhar este post Link para o post Compartilhar em outros sites
Rasp 3 Denunciar post Postado Setembro 22, 2008 Fala galera! Infelizmente não consegui fazer funcionar não... somente usando 2 querys (coisa que não é correta né) e mesmo assim quando coloco pra pegar o array dos checkboxes não vai de jeito nenhum. Já nem sei o que eu faço mais Quem puder ajudar agradeço Abss. Compartilhar este post Link para o post Compartilhar em outros sites
Rasp 3 Denunciar post Postado Setembro 23, 2008 Já tentei, utilizar com inner join (mais parece que fiz algo errado pois não salva), do modo que o roniware explicou mais não salva, pelo contrario apresenta erro. Também tentei com 2 querys por efeito de teste e foi, porém só está salvando um exemplo ao invés de salvar vários dos marcados nos checks. Fiquei completamente perdido. Compartilhar este post Link para o post Compartilhar em outros sites