Ir para conteúdo
Fórum Script Brasil

Avalon

Membros
  • Total de itens

    13
  • Registro em

  • Última visita

Sobre Avalon

Perfil

  • Gender
    Male

Avalon's Achievements

0

Reputação

  1. Consegui resolver com count($instrucao->fetchAll()) para SELECT e $instrucao->rowCount() para INSERT.
  2. [Edit] Qual seria o equivalente de mysql_num_rows para pdo? pois vi numa documentação antiga que execute sempre retornará true nessa ocasião o que é diferente de se obter a quantidade de linhas do select[/Edit] Boa tarde. Estou tentando validar se o nome de usuário ou o email da pessoa já existe no banco de dados e estou usando o execute porém a função sempre me retorna true (1) mesmo quando o nome de usuário não existe no banco de dados. Logo, não sei o que estou fazendo de errado. $pdo = ConexaoPDO::ConexaoMySQL(); $senha = md5($senha); $query = 'SELECT NOME_USUARIO FROM PESQUISADOR WHERE NOME_USUARIO = ?'; $instrucao = $pdo->prepare($query); $resultado = $instrucao->execute(array($nome_usuario)); if($resultado > 0) { echo '<span> O Nome de usuário inserido já existe. Por favor, escolha outro.</span>'; die(); } $query = 'SELECT EMAIL FROM PESQUISADOR WHERE EMAIL = ?'; $instrucao = $pdo->prepare($query); $resultado = $instrucao->execute(array($email)); if($resultado > 0) { echo '<span>O email inserido já está registrado. Por favor, escolha outro.</span>'; die(); }
  3. Boa noite. Realizei uma engenharia avante no mysql workbench de um DER e tentei executar o código resultante contudo obtive o erro mencionado no título. Por este motivo, executei show engine innodb status e na seção latest foreign key error, estava escrito: LATEST FOREIGN KEY ERROR ------------------------ 2014-11-10 18:56:51 ad4 Error in foreign key constraint of table basebd/base_has_pesquisador: FOREIGN KEY (`PESQUISADOR_IDPESQUISADOR`) REFERENCES `BASEBD`.`PESQUISADOR` (`IDPESQUISADOR`) ON DELETE NO ACTION ON UPDATE NO ACTION) ENGINE = InnoDB: Cannot find an index in the referenced table where the referenced columns appear as the first columns, or column types in the table and the referenced table do not match for constraint. Note that the internal storage type of ENUM and SET changed in tables created with >= InnoDB-4.1.12, and such columns in old tables cannot be referenced by such columns in new tables. See http://dev.mysql.com/doc/refman/5.6/en/innodb-foreign-key-constraints.html for correct foreign key definition. porém, eu não entendi o que aconteceu. Por favor, o sql gerado se encontra abaixo e o problema ocorre numa tabela chamada Base_has_pesquisador que é uma tabela resultante de um relacionamento muitos para muitos entre a tabela base e a tabela pesquisador, ou seja, contém duas chaves primárias que são também chaves estrangeiras para as tabelas supracitadas. SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0; SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0; SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='TRADITIONAL,ALLOW_INVALID_DATES'; -- ----------------------------------------------------- -- Schema BASEBD -- ----------------------------------------------------- CREATE SCHEMA IF NOT EXISTS `BASEBD` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci ; USE `BASEBD` ; -- ----------------------------------------------------- -- Table `BASEBD`.`PESQUISADOR` -- ----------------------------------------------------- CREATE TABLE IF NOT EXISTS `BASEBD`.`PESQUISADOR` ( `IDPESQUISADOR` INT UNSIGNED NOT NULL AUTO_INCREMENT, `NOME` VARCHAR(45) NOT NULL, `IDADE` INT UNSIGNED NOT NULL, `SEXO` CHAR NOT NULL, `ISATIVO` CHAR NOT NULL, `INSTITUICAO` VARCHAR(45) NOT NULL, `EMAIL` VARCHAR(45) NOT NULL, `TELEFONE` VARCHAR(13) NOT NULL, `CEP` VARCHAR(9) NOT NULL, PRIMARY KEY (`IDPESQUISADOR`), UNIQUE INDEX `TELEFONE_UNIQUE` (`TELEFONE` ASC), UNIQUE INDEX `EMAIL_UNIQUE` (`EMAIL` ASC), UNIQUE INDEX `NOME_UNIQUE` (`NOME` ASC)) ENGINE = InnoDB; -- ----------------------------------------------------- -- Table `BASEBD`.`BASE` -- ----------------------------------------------------- CREATE TABLE IF NOT EXISTS `BASEBD`.`BASE` ( `IDBASE` INT NOT NULL AUTO_INCREMENT, `NOME` VARCHAR(45) NOT NULL, PRIMARY KEY (`IDBASE`), UNIQUE INDEX `NOME_UNIQUE` (`NOME` ASC)) ENGINE = InnoDB; -- ----------------------------------------------------- -- Table `BASEBD`.`CARACTERISTICA` -- ----------------------------------------------------- CREATE TABLE IF NOT EXISTS `BASEBD`.`CARACTERISTICA` ( `IDCARACTERISTICA` INT NOT NULL AUTO_INCREMENT, `NOME` VARCHAR(45) NOT NULL, `DESCRICAO` BLOB NULL, `BASE_IDBASE` INT NOT NULL, PRIMARY KEY (`IDCARACTERISTICA`), INDEX `fk_CARACTERISTICA_BASE1_idx` (`BASE_IDBASE` ASC), UNIQUE INDEX `NOME_UNIQUE` (`NOME` ASC), CONSTRAINT `fk_CARACTERISTICA_BASE1` FOREIGN KEY (`BASE_IDBASE`) REFERENCES `BASEBD`.`BASE` (`IDBASE`) ON DELETE NO ACTION ON UPDATE NO ACTION) ENGINE = InnoDB; -- ----------------------------------------------------- -- Table `BASEBD`.`CLASSE` -- ----------------------------------------------------- CREATE TABLE IF NOT EXISTS `BASEBD`.`CLASSE` ( `IDCLASSE` INT NOT NULL AUTO_INCREMENT, `NOME` VARCHAR(45) NOT NULL, `BASE_IDBASE` INT NOT NULL, PRIMARY KEY (`IDCLASSE`), INDEX `fk_CLASSE_BASE1_idx` (`BASE_IDBASE` ASC), UNIQUE INDEX `NOME_UNIQUE` (`NOME` ASC), CONSTRAINT `fk_CLASSE_BASE1` FOREIGN KEY (`BASE_IDBASE`) REFERENCES `BASEBD`.`BASE` (`IDBASE`) ON DELETE NO ACTION ON UPDATE NO ACTION) ENGINE = InnoDB; -- ----------------------------------------------------- -- Table `BASEBD`.`LINHA` -- ----------------------------------------------------- CREATE TABLE IF NOT EXISTS `BASEBD`.`LINHA` ( `IDLINHA` INT NOT NULL AUTO_INCREMENT, `NUM` INT NOT NULL, `BASE_IDBASE` INT NOT NULL, `CLASSE_IDCLASSE` INT NOT NULL, PRIMARY KEY (`IDLINHA`), INDEX `fk_LINHA_BASE1_idx` (`BASE_IDBASE` ASC), INDEX `fk_LINHA_CLASSE1_idx` (`CLASSE_IDCLASSE` ASC), UNIQUE INDEX `NUM_UNIQUE` (`NUM` ASC), CONSTRAINT `fk_LINHA_BASE1` FOREIGN KEY (`BASE_IDBASE`) REFERENCES `BASEBD`.`BASE` (`IDBASE`) ON DELETE NO ACTION ON UPDATE NO ACTION, CONSTRAINT `fk_LINHA_CLASSE1` FOREIGN KEY (`CLASSE_IDCLASSE`) REFERENCES `BASEBD`.`CLASSE` (`IDCLASSE`) ON DELETE NO ACTION ON UPDATE NO ACTION) ENGINE = InnoDB; -- ----------------------------------------------------- -- Table `BASEBD`.`DADO` -- ----------------------------------------------------- CREATE TABLE IF NOT EXISTS `BASEBD`.`DADO` ( `IDDADO` INT NOT NULL AUTO_INCREMENT, `VALOR` DECIMAL(4,2) NOT NULL, `COLUNA` INT NOT NULL, `FK_IDBASE` INT NOT NULL, `FK_IDCARACTERISTICA` INT NOT NULL, `LINHA_IDLINHA` INT NOT NULL, PRIMARY KEY (`IDDADO`), INDEX `IDBASE_idx` (`FK_IDBASE` ASC), INDEX `FK_IDCARACTERISTICA_idx` (`FK_IDCARACTERISTICA` ASC), INDEX `fk_DADO_LINHA1_idx` (`LINHA_IDLINHA` ASC), CONSTRAINT `FK_IDBASE` FOREIGN KEY (`FK_IDBASE`) REFERENCES `BASEBD`.`BASE` (`IDBASE`) ON DELETE NO ACTION ON UPDATE NO ACTION, CONSTRAINT `FK_IDCARACTERISTICA` FOREIGN KEY (`FK_IDCARACTERISTICA`) REFERENCES `BASEBD`.`CARACTERISTICA` (`IDCARACTERISTICA`) ON DELETE NO ACTION ON UPDATE NO ACTION, CONSTRAINT `fk_DADO_LINHA1` FOREIGN KEY (`LINHA_IDLINHA`) REFERENCES `BASEBD`.`LINHA` (`IDLINHA`) ON DELETE NO ACTION ON UPDATE NO ACTION) ENGINE = InnoDB; -- ----------------------------------------------------- -- Table `BASEBD`.`BASE_has_PESQUISADOR` -- ----------------------------------------------------- CREATE TABLE IF NOT EXISTS `BASEBD`.`BASE_has_PESQUISADOR` ( `BASE_IDBASE` INT NOT NULL, `PESQUISADOR_IDPESQUISADOR` INT NOT NULL, PRIMARY KEY (`BASE_IDBASE`, `PESQUISADOR_IDPESQUISADOR`), INDEX `fk_BASE_has_PESQUISADOR_PESQUISADOR1_idx` (`PESQUISADOR_IDPESQUISADOR` ASC), INDEX `fk_BASE_has_PESQUISADOR_BASE1_idx` (`BASE_IDBASE` ASC), UNIQUE INDEX `BASE_IDBASE_UNIQUE` USING BTREE (`BASE_IDBASE` ASC, `PESQUISADOR_IDPESQUISADOR` ASC), UNIQUE INDEX `PESQUISADOR_IDPESQUISADOR_UNIQUE` (`PESQUISADOR_IDPESQUISADOR` ASC, `BASE_IDBASE` ASC), CONSTRAINT `fk_BASE_has_PESQUISADOR_BASE1` FOREIGN KEY (`BASE_IDBASE`) REFERENCES `BASEBD`.`BASE` (`IDBASE`) ON DELETE NO ACTION ON UPDATE NO ACTION, CONSTRAINT `fk_BASE_has_PESQUISADOR_PESQUISADOR1` FOREIGN KEY (`PESQUISADOR_IDPESQUISADOR`) REFERENCES `BASEBD`.`PESQUISADOR` (`IDPESQUISADOR`) ON DELETE NO ACTION ON UPDATE NO ACTION) ENGINE = InnoDB; SET SQL_MODE=@OLD_SQL_MODE; SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS; SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS;
  4. boa noite. Eu consegui resolver o problema. Segue o trecho que eu não tinha conseguido fazer. Obrigado pela ajuda! $("#form_pesquisador").submit(function(event) { event.preventDefault(); $.ajax({ type: "POST", url: "php/cadastrar_pesquisador.php", data: {nome_pesquisador: $("#nome_pesquisador").val(), idade: $("#idade").val(), email: $("#email").val(), ddd: $("#ddd").val(), telefone: $("#telefone").val(), cep: $("#cep").val(), nome_instituicao: $("#nome_instituicao").val(), sexo: $("#sexo").val(), ativo: $("#ativo").val() }, datatype: "html", success: function(data) { $("#form_pesquisador").fadeOut(400); $("#nav").after(data); $("#feedback").delay(3600).fadeOut(400, function(){ $(this).remove(); }); $("#form_pesquisador").delay(3600).fadeIn(400); } }); });
  5. Sandro, eu fiz exatamente como você disse e acabou que não tive resposta de volta do ajax. As mensagens de resposta apareceram do lado servidor, na página .php. que foram duas segundo a lógica errada que eu implementei que ainda terei que consertar. Em http://127.0.0.1/projects/ProjetoFinal/php/cadastrar_base.php base de dados existente. Por favor, escolha outro nome.Uma base de dados foi criada com sucesso
  6. Boa tarde. Eu gostaria de enviar por meio de ajax o valor de um input para uma variável com o mesmo name no PHP. Eu tentei codificar essa tarefa, contudo o meu botão de cadastrar não está submetendo o form. Além disso, estou tentando testar se uma base de dados já foi inserida no banco de dados fazendo um echo para ser retornado como html pelo php como string. No arquivo javascript eu estou fazendo: $("#cad_base").click(function() { $("#nav").next().remove(); $("#nav").after ( '<form id="form_base" method="post" action="php/cadastrar_base.php">' + '<label for="nome_base">Nome da base: </label>' + '<input type="text" required="required" size="40" maxlength="50" name="nome_base" id="nome_base"><br>' + '<input type="submit" name="cadastrar" value="Cadastrar" id="cadastrar">' + '<br>' + '</form>' ); $("#form_base").submit(function(event) { event.preventDefault(); $.ajax({ type: "POST", url: "php/cadastrar_base.php", data: {nome_base: $("#nome_base")[0]}, datatype: "html", success: function(data) { $("#nav").next().remove(); $("#nav").after(data); } }); }); }); e no PHP eu estou fazendo: <?php header("Content-Type: text/html; charset=UTF-8"); require_once("conexaoPDO.php"); $nome_base = $_POST['nome_base']; try { $conexao_pdo = ConexaoPDO::getInstanciaPDO(); $dsn = "mysql:host={$conexao_pdo->host};dbname={$conexao_pdo->nomeBD}"; $pdo = new PDO($dsn, $conexao_pdo->nomeUsuario, $conexao_pdo->senha, array(PDO::ATTR_PERSISTENT => true)); $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); } catch(PDOException $e) { echo "A Conexão falhou: " . $e->getMessage(); } $instrucao = $pdo->prepare("SELECT nome from base where nome='$nome_base'"); try { $resultado = $instrucao->execute(); if($resultado > 0) { echo '<span style="color: red">base de dados existente. Por favor, escolha outro nome.</span>'; } } catch(PDOException $e) { echo "Não foi possível descobrir se o nome da base já existe no banco de dados." . $e->getMessage(); } ?> sendo que o PHP não termina ali (tem mais coisa, só não é pertinente à dúvida), só fechei a tag para completar o código.
  7. Consegui transmitir o HTML como string do PHP para o javascript com echo. Muito obrigado.
  8. no PHP: $str_cabecalho = '<table>'. '<tr>'. '<th>ID Do Pesquisador</th>'. '<th>Nome</th>'. '<th>Sexo</th>'. '<th>Telefone</th>'. '<th>CEP</th>'. '<th>Idade</th>'. '<th>Encontra-se ativo?</th>'. '<th>Instituição</th>'. '</tr>'. '</table>'; echo json_encode($str_cabecalho); No Javascript: $("#list_pesquisador").click(function(){ $.ajax({ url: "listar_pesquisador.php", datatype: "html", context: $("#tabela_pesquisador"), success: function(data) { tabela_pesquisador = JSON.parse(data); alert(tabela_pesquisador); } }); }); No HTML: <div id="tabela_pesquisador"> </div>
  9. Fiz o que você disse mas continuo com o mesmo erro da minha primeira mensagem e com o valor de data igual a uma string vazia (a mesma coisa de antes).
  10. Boa noite. Estou tentando transmitir através de JSON um trecho HTML do php para o javascript porém estou obtendo o erro: SyntaxError: JSON.parse: unexpected end of data at line 1 column 2 of the JSON data. Eu vi, pelo firebug, que a variável data encontra-se com uma string vazia. PHP: $str_cabecalho = '<div id = "div_tabela_pesquisador">' . '<table>'. '<tr>'. '<th>ID Do Pesquisador</th>'. '<th>Nome</th>'. '<th>Sexo</th>'. '<th>Telefone</th>'. '<th>CEP</th>'. '<th>Idade</th>'. '<th>Encontra-se ativo?</th>'. '<th>Instituição</th>'. '</tr>'. '</table>'. '</div>'; echo json_encode($str_cabecalho); Javascript: $("#list_pesquisador").click(function(){ $.ajax({ url: "listar_pesquisador.php", datatype: "html", success: function(data) { tabela_pesquisador = JSON.parse(data); alert(tabela_pesquisador); } }); }); Eu só coloquei o alert ali para fazer um teste.
  11. Agora eu tenho o trecho de código abaixo. Como eu posso fazer para gerar os <tr> e <td> dinamicamente com JQuery com o conteúdo da variável tabela_pesquisador que é um array bidimensional com o conteúdo da tabela do BD? sendo este array bidimensional sido gerado no PHP por: $instrucao = $pdo->prepare("SELECT * FROM PESQUISADOR"); $instrucao->execute(); $tabela_pesquisador = $instrucao->fetchAll(); echo json_encode($tabela_pesquisador); $("#list_pesquisador").click(function(){ $.ajax({ url: "listar_pesquisador.php", success: function(data) { tabela_pesquisador = JSON.parse(data); $("#nav").after ('<table id="tabela_pesquisador">' + '<tr>' + '<th>ID do Pesquisador</th>' + '<th>Nome</th>' + '<th>Sexo</th>' + '<th>Telefone</th>' + '<th>CEP</th>' + '<th>Idade</th>' + '<th>Encontra-se ativo?</th>' + '<th>Instituição</th>' + '<tr>' + '</table>' ); } }); });
  12. Boa tarde. Eu tenho uma aba de navegação que deve listar dados ao ser clicada (ao acionar o evento de click do Jquery). Porém, eu não sei como fazer a transição do click do evento do Jquery para o PHP que por sua vez listará os dados e retornará a listagem para que seja exibida na página onde a aba de navegação reside. Eu não vou postar nenhum código pois não faço idéia de como fazer isso; pensei em fazer com ajax porém com esse recurso apenas sei fazer um echo de uma mensagem para o javascript, não sei "puxar" uma tabela criada no PHP a fim de ser mostrada numa página HTML pelo Jquery dinamicamente. Segue o link para uma imagem do que eu tenho atualmente.
×
×
  • Criar Novo...