Jump to content
  • 0
AndersonAlvesCoelho

Com fazer um formulário com campos FK (chave estrangeira) ?

Question

Ola Programadores de Plantão!!

Eu tendo um problema em um sistema que eu criei. 

Criei um sistema WEB de cadastro de questões dissertativa, porem o formulário de cadastro ta e uma tabelas os no BD, mais para frente a pesquisa ficara mais complicada por esse motivo. E também n consigo fazer o relacionamento no select de pesquisa. Olha em baixo o SELECT de pesquisa. 

 

Mas agora eu quero separa cada campo do select de pesquisa em um tabela so, Ficando assim o bd:

name db: db_quest;

name tabelas:

tb_ano: id (int), ano (int);

tb_assunto: id (int), assunto(varchar);

tb_banca : id (int), banca (varchar);

tb_ cargo: id (int), cargo (varchar);

tb_especialidade : id (int), especialidade (varchar);

tb_formacao : id (int), formacao (varchar);

tb_orgao : id (int), orgao (varchar);

tb_qtdLinha : id (int), qtdLinha (int);

tb_tema : id (int), tema(varchar);

 

tb_quest:  id (int),  tb_ano (MULL),  tb_assunto (MULL), tb_banca (MULL), tb_formacao (MULL), tb_especialidade (MULL), tb_cargo (MULL), tb_orgao (MULL), tb_qtdLinha (MULL), tb_tema (MULL), enunciado (TEXT), padraoRes (TEXT), resolucao (TEXT), video (VARCHAR), material (VARCHAR), professor (VARCHAR) , exibir (INT).

 

Blz. 

A agora minha duvida e essa. Como vou fazer um formulário com esse banco ?

Como vou fazer um formulário que tem campos de outras tabelas (de chaves estrangeira)?

 

As imagens a baixo, são para mostrar o SELECT DE PESQUISA que usa para buscar questões no estilo https://qconcursos.com

E também tem as imagens que mostra como esta o meu formulário de cadastro das questões

pss: se poder manda alguns arquivos de eexemplo  eu agradeço muito

help1.png

help2.png

help3.png

Sem títqwulo.png

Share this post


Link to post
Share on other sites

0 answers to this question

Recommended Posts

There have been no answers to this question yet

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By lucascientista
      Boa noite, galera é o seguinte eu estou montando um script que pesquisa no banco de dados e mostrar os resultados em uma página php, bem aí que está o problema eu pesquisei alguns sistemas de paginação e de pesquisa e acabei montando meu script, no meu script a pesquisa aparece na primeira página mas quando passo para a página adiante não me é mostrado resultado nenhum já verifiquei tudo e não consigo encontrar o erro, será que alguém pode me ajudar?
       
      <?php #Incluindo a conexão no banco de dados require_once '../dao/conexao/Conexao.php'; $conexao = Conexao::getInstance(); /***********************************************/ #Aqui começa a parte a paginação e pesquisa /**********************************************/ #Limitando o número máximo de resultados que serão mostrados na tela $maximo = 1; #Armazenando o valor da página atual $pagina = isset($_GET["pagina"])? ($_GET["pagina"]): '1'; #Subtraindo 1, porque os registro começam do zero como em um array $inicio = $pagina - 1; #Multiplicamos a quantidade de registros da pagina pelo valor da pagina atual $inicio = $maximo * $inicio; #Agora chega a parte em que fazemos o SELECT para contar os resultados $sql = "SELECT * FROM centroautomotivo"; $stmt = $conexao->prepare($sql); $stmt->execute(); $contagem = $stmt->fetchAll(PDO::FETCH_ASSOC); $total = 0; if(count($contagem)){ foreach ($contagem as $linhas) { #Armazenando o total de registros da tabela para fazer a paginação $total = count($contagem); } } /******************************************************************* * Aqui vai começar a parte da pesquisa, tornando o script em um só ********************************************************************/ #Recebe o termo da pesquisa se existir $termo = (isset($_GET["termo"])) ? ($_GET["termo"]) : ''; #Executa uma pesquisa com o termo pesquisado como parametro - Este SELECT irá servir também para a paginação if(empty($termo)){ //Nada aqui } else{ $sql = "SELECT * FROM centroautomotivo WHERE nomefantasia LIKE :nomefantasia or email LIKE :email ORDER BY idCentro LIMIT $inicio,$maximo"; $stm = $conexao->prepare($sql); $stm->bindValue(':nomefantasia', '%'.$termo.'%'); $stm->bindValue(':email', '%'.$termo.'%'); $stm->execute(); $autocenters = $stm->fetchAll(PDO::FETCH_ASSOC); } <?php require_once '../includes/header.php'; require_once '../controller/paginacaoPesquisaCentro.php'; ?> <div class="container mb-5"> <h1 class="text text-center">Centros Automotivos</h1> <p class="text text-center">Encontre o centro automotivo que mais se encaixa com você</p> <!--Formulário de pesquisa com paginação--> <form method="GET" action=""> <div class="d-flex flex-column bd-highlight mb-3"> <div class="p-2 bd-highlight"><img src="../img/Logotipo.png" class=" img-fluid rounded mx-auto d-block"></div> <div class="p-2 bd-highlight d-flex justify-content-center" style="margin-top: -10px;"><input type="text" name="termo" class="form-control" style=" width: 60%;" placeholder="Pesquise pelo Centro Automotivo!"/></div> <div class="p-2 bd-highlight d-flex justify-content-center"><button type="submit" class="btn btn-outline-primary"><i class="fas fa-search"></i>&nbsp;Pesquisar</button></div> </div> </form> <!--Fim do formuláio de pesquisa--> <!--Início dos resultados da pesquisa--> <?php if(!empty($autocenters)){?> <?php foreach ($autocenters as $autocenter) { ?> <center> <div class="card mb-3" style="max-width: 540px;"> <div class="row no-gutters"> <div class="col-md-4"> <img src="../controller<?php empty($autocenter["foto"])? 'images/pic.png' : $autocenter["foto"] ?>" class="card-img img-fluid" width="150px" height="150px"> </div> <div class="col-md-8"> <div class="card-body"> <p class="card-text text-justify"><?php $autocenter["nomefantasia"]?></p> <p class="card-text text-justify"><small class="text-muted"><?=$autocenter["email"]?></small></p> </div> </div> </div> </div> </center> <?php }//Fechamento do foreach?> <div id="alignpaginacao"> <?php //determina de quantos em quantos links serão adicionados e removidos $max_links = 6; //dados para os botões $previous = $pagina - 1; $next = $pagina + 1; //usa uma funcção "ceil" para arrendondar o numero pra cima, ex 1,01 será 2 $pgs = ceil($total / $maximo); //se a tabela não for vazia, adiciona os botões if($pgs > 1 ){ echo "<br/>"; //botao anterior if($previous > 0){ echo "<div id='botaoanterior'><a href=".$_SERVER['PHP_SELF']."?termo={$termo}?pagina=$previous><input type='submit' name='bt-enviar' id='bt-enviar' value='Anterior' class='button' /></a></div>"; } else{ echo "<div id='botaoanteriorDis'><a href=".$_SERVER['PHP_SELF']."?pagina=$previous><input type='submit' name='bt-enviar' id='bt-enviar' value='Anterior' class='button' disabled='disabled'/></a></div>"; } echo "<div id='numpaginacao'>"; for($i=$pagina-$max_links; $i <= $pgs-1; $i++) { if ($i <= 0){ //enquanto for negativo, não faz nada }else{ //senão adiciona os links para outra pagina if($i != $pagina){ if($i == $pgs){ //se for o final da pagina, coloca tres pontinhos echo "<a href=".$_SERVER['PHP_SELF']."?pagina=".($i).">$i</a> ..."; }else{ echo "<a href=".$_SERVER['PHP_SELF']."?pagina=".($i).">$i</a>"; } } else{ if($i == $pgs){ //se for o final da pagina, coloca tres pontinhos echo "<span class='current'> ".$i."</span> ..."; }else{ echo "<span class='current'> ".$i."</span>"; } } } } echo "</div>"; //botao proximo if($next <= $pgs){ echo " <div id='botaoprox'><a href=".$_SERVER['PHP_SELF']."?termo={$termo}?pagina=$next><input type='submit' name='bt-enviar' id='bt-enviar' value='Proxima' class='button'/></a></div>"; }else{ echo " <div id='botaoproxDis'><a href=".$_SERVER['PHP_SELF']."?pagina=$next><input type='submit' name='bt-enviar' id='bt-enviar' value='Proxima' class='button' disabled='disabled'/></a></div>"; } } ?> </div> <?php }//Fechamento do if?> <!--Fim dos resultados da pesquisa--> <!--Início da paginação--> <!--Fim da paginação--> </div> <?php require_once '../includes/footer.php'; ?>  
      Bem aí está meu código, fico muito agradecido se puderem me ajudar.
    • By Acir190
      Olá,
      Tenho um script para enviar dados para uma tabela do Google Spreadsheet mas nao consigo faze-la gravar uma das variáveis. 
       
      function doGet(e){
        var ss = SpreadsheetApp.openByUrl("https://docs.google.com/spreadsheets/d/1QVJWghiG5TJh1UhQLiOujOFc1KBNGy82v59Rm5zdD4/edit#gid=0");
        //Give your Sheet name here
        var sheet = ss.getSheetByName("Folha1");
        insert(e,sheet);
      }
      function doPost(e){
        var ss = SpreadsheetApp.openByUrl("Your Spread Sheet URL");
        //Give your Sheet name here
        var sheet = ss.getSheetByName("Folha1");
        insert(e,sheet);
      }
      function insert(e,sheet){
       
        // reciving scanned data from client i.e android app
        var sdata = e.parameter.sdata;
        
        var date = new Date()
       
        Var acesso = 'E' //Não consigo enviar esta variável para a planilha

        sheet.appendRow([date,sdata,acesso]);
        
      }
    • By Mauricio Molina
      Ola,
       
      Podem me dar uma força, estou elaborando um dashord onde terá algumas funções, uma delas é chamar uma listagem de usuário no banco.
       
      Preciso chamar o css e js para o menu e a tabela.
       
      Sei que é fácil mas sinceramente me perdi, alguém pode dar uma força para chamar os arquivos.
       
      Seguem as imagem de como fica a página
       
      MENU:
       
      <link href="css/bootstrap.css" rel="stylesheet"> <link href="css/ie10-viewport-bug-workaround.css" rel="stylesheet"> <link href="css/theme.css" rel="stylesheet"> <script src="js/ie-emulation-modes-warning.js"></script> Tabelas
       
      <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css"> <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.3/umd/popper.min.js"></script> <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/js/bootstrap.min.js"></script> Como chamo tudo junto sem um interferir no outro?
       
      No aguardo...
       
      Obrigado!
       
       
       
       
    • By wandoh
      Boa Tarde! estou com um dificuldades de puxar os dados do usuário logado no site. Atualmente estou conseguindo puxar somente o NOME, quando tento puxar o restante da erro! Abaixo segue o Código.
       
      session_start(); //inicializa variaveis $id = "accountid"; $name = ""; $email = ""; $errors = array(); //conexão db $db = mysqli_connect('localhost', 'root', 'senha', 'db') or die("could not connect to database"); //Registrar usuário if (isset($_POST['reg_user'])) { // receives all input values from the form $name = mysqli_real_escape_string($db, $_POST['name']); $email = mysqli_real_escape_string($db, $_POST['email']); $password = mysqli_real_escape_string($db, $_POST['password']); $password2 = mysqli_real_escape_string($db, $_POST['password2']); //form validação: ensure that the form is correctly filled ... // by adding (array_push)) corresponding error unto $errors array if(empty($name)) { array_push($errors, " "); } if(empty($email)) { array_push($errors, " "); } if(empty($pwd)) { array_push($errors, " "); } if($pwd != $pw2) { array_push($errors, " "); } // To protect MySQL injection (more detail about MySQL injection) $name = stripslashes($name); $password = stripslashes($password); // first check the databese to make sure // verifica na db se a usuário existente com o mesmo nome de usuário e email $user_check_query = "SELECT * FROM t_account WHERE name='$name' or email='$email' LIMIT 1"; $result = mysqli_query($db, $user_check_query); $user = mysqli_fetch_assoc($result); if($user) { // if user existente if ($user['name'] === $name) { array_push($errors, " "); } if ($user['email'] === $email) { array_push($errors, " "); } } // Registra o usuário se não haver erros if (count($errors) == 0 ) { $pwd = md5($pwd); print $pwd; $query = "INSERT INTO t_account (name, email, pwd, pw2) VALUES ('$name', '$email', '$password', '$password2')"; mysqli_query($db, $query); $_SESSION['accountid'] = $id;// $_SESSION['name'] = $name; $_SESSION['success'] = 'Você está logado em'; echo " "; //header('location: index.php'); } } //LOGIN USER if (isset($_POST['login_user'])) { $name = mysqli_real_escape_string($db, $_POST['name']); $password = mysqli_real_escape_string($db, $_POST['password']); if (empty($name)) { array_push($errors, " "); } if (empty($password)) { array_push($errors, " "); } if (count($errors) == 0 ) { $pwd = md5($pwd); $query = "SELECT 'email' FROM t_account WHERE name='$name' AND password='$password'"; $results = mysqli_query($db, $query); if (mysqli_num_rows($results)) { $_SESSION['accountid'] = $id;// $_SESSION['name'] = $name; $_SESSION['success'] = 'Você está logado em'; echo " "; //header('location: index.php'); }else{ array_push($errors, " "); } } } Com a variável abaixo, é exibido o nome de quem esta logado.
      $_SESSION["name"] Já com os demais, não e exibido o resultado é apresentado uma msg de erro.
      $_SESSION["email"] Notice: Undefined index: email in Passei em todos os post que tem sobre o assunto, mas infelizmente em meu código não deu certo.
       Sou novo em PHP!
      Preciso puxar todos os dados cadastrado do usuário.
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.