Ir para conteúdo
Fórum Script Brasil

Argos

Membros
  • Total de itens

    4
  • Registro em

  • Última visita

Posts postados por Argos

  1. Valeu lucke, mas ainda não é isso. Vou tentar explicar bem detalhadamente.

    Estou montando um sistema de administração para um site. Eu montei inicialmente a seguinte instrução sql para listar todos os produtos na página "produtos_consulta.php":

    $sql = "SELECT p.id, p.nome, p.imagem, p.miniatura, l.linha, c.colecao, s.subcolecao
            FROM produtos as p, linhas as l, colecao as c, subcolecao as s
            WHERE p.idLinha = l.id AND p.idColecao = c.id AND p.idSubcolecao = s.id AND p.id = $id";

    Com ela, eu consigo imprimir na tela o nome do produto, sua respectiva imagem, o nome da linha a qual o produto pertence (l.linha), o nome da colecao a qual o produto pertence (c.colecao) e a subcolecao a qual ele pertence (s.subcolecao). Nessa página cada produto tem seus respectivos ícones de 'exclusão' e 'edição'.

    Ao clicarmos no botão de edição, vamos para a "produtos_alteracao.php". Aqui começa minha dúvida.

    Ao invés de apenas listar os itens como na página de consulta, aqui eu tenho q possibilitar a edição do nome do produto, da sua imagem, da linha, da coleção ou da subcoleção em que ele se encontra. A melhor forma do administrador modificar a linha, a coleção e a subcoleção seria por meio de três campos do tipo select (combobox), onde em suas respectivas "<options>s" estariam listadas todas as linhas disponíveis, todas as coleções disponíveis e todas as subcoleções disponíveis, vindas do banco de dados (linhas as l, colecao as c, subcolecao as s).

    O que eu gostaria de saber é se tem como eu montar os três campos select (combobox) usando APENAS a instrução sql acima. Como eu faço um loop diferente para cada combobox usando uma mesma instrução?

    Como não sei a melhor forma de se trabalhar aqui, montei o código do post #5, onde desisti da instrução acima e resolvi abrir as 4 tabelas (produtos, linhas, colecao, subcolecao) individualmente. Assim, consigo fazer os loops usando '$linhas = mysql_num_rows($sql)' ou 'while($sql = mysql_fetch_array)' de cada uma das instruções abertas.

    Eu estou aprendendo PHP na marra, comprei uns livros, lendo vários sites, e queria mesmo saber qual a forma mais "otimizada" pra se fazer essa consulta, pra deixar, além de certo, o "menos lerdo" possível.

  2. Última tentativa.

    Segue o código que terei q usar para o sistema funcionar, porque consigo montar a instrução sql (1° post) mas não consigo dar o próximo passo para montar o formulário

    include "../includes/conexao.inc";      
      $id = $_GET["id"];
    
      if ((isset($_GET["id"])) and (!isset($_POST["salvar"]))){
    
        $sql_p = mysql_query("SELECT * FROM produtos WHERE id=".$id);
        $reg = mysql_fetch_array($sql_p);
            
        $sql_l = mysql_query("SELECT * FROM linhas");
        $sql_c = mysql_query("SELECT * FROM colecao");
        $sql_s = mysql_query("SELECT * FROM subcolecao");        
    ?>
    <form id="incluir_produtos" method="post">
    
      <div class="titulo_campos">Linha</div>
        <SELECT>
          <?php
          while($reg_l = mysql_fetch_array($sql_l)){
             echo "<option ". ($selecionado = ($reg["idLinha"] == $reg_l["id"]) ? "selected=selected" : NULL )." >".$reg_l["linha"]."</option>";
          }
          ?>
        </SELECT>
        <br />
        <br />
    
        <div class="titulo_campos">Coleção</div>
          <SELECT>
            <?php
            while($reg_c = mysql_fetch_array($sql_c)){
              echo "<option ". ($selecionado = ($reg["idColecao"] == $reg_c["id"]) ? "selected=selected" : NULL )." >".$reg_c["colecao"]."</option>";
            }
            ?>
          </SELECT>
          <br />
          <br />
    
          <div class="titulo_campos">Sub-Coleção</div>
            <SELECT>
              <?php
              while($reg_s = mysql_fetch_array($sql_s)){
                echo "<option ". ($selecionado = ($reg["idSubcolecao"] == $reg_s["id"]) ? "selected=selected" : NULL )." >".$reg_s["subcolecao"]."</option>";
              }
              ?>
            </SELECT>
        <br />
        <br />
            <div class="titulo_campos">Nome</div>
          <input size="50" type="text" name="nome_produto" maxlength="255" value="<?php echo $reg["nome"] ?>" class="campos_formulario" />
    
              (...)

    Opa lucke, acho q postou enquanto eu escrevia. Na vdd minha dificuldade não é com a conexão, nem com os loops. Eu gostaria de saber, pra simplificar, é se tem como eu usar a sql do 1° post pra montar o formulário do post acima. Eu gostaria de usar uma instrução, abrir apenas uma consulta, e listar todas linhas da tabela linhas, todas as coleções da tabela colecao e todas as subcoleções da tabela subcolecao. É possível?

  3. Oi ESerra;

    A conexão está ok, e a $id também, vem da URL ($id = $_GET['id']).

    Essa sql está em uma página de edição de produtos. O que eu gostaria de saber é como criar um loop, por exemplo, dentro de um select (combobox), mostrando todas as linhas da tabela 'linhas', sem ter qua abrir outra consulta sql, ou não tem como, e tenho que abrir outra consulta pra comparar com essa e poder mostrar a linha cadastrada selecionada?

    Ex.

    $sql = mysql_query("SELECT p.id, p.nome, p.imagem, p.miniatura, l.linha, c.colecao, s.subcolecao
            FROM produtos as p, linhas as l, colecao as c, subcolecao as s
            WHERE p.idLinha = l.id AND p.idColecao = c.id AND p.idSubcolecao = s.id AND p.id = $id");
    $reg = mysql_fetch_array($sql);
    
    $linha_desse_produto = $reg["idLinha"];
    
    $sql2 = "SELECT * FROM linhas";
    $resultado2 = mysql_query($sql2);
    
    echo "<SELECT>";
    while($reg2 = mysqli_fetch_array($resultado2)){
      echo "<option ".$selecionado = ($linha_desse_produto == $reg2["id"]) ? "selected" : "" .">".$reg2["linha"]."</option>";
    }
    echo "</SELECT>";

  4. Boa noite;

    Como faço pra criar um loop e mostrar todas as linhas da tabela 'linhas', ou todas as coleções da tabela 'colecao', usando a seguinte instrução:

    $sql = "SELECT p.id, p.nome, p.imagem, p.miniatura, l.linha, c.colecao, s.subcolecao
            FROM produtos as p, linhas as l, colecao as c, subcolecao as s
            WHERE p.idLinha = l.id AND p.idColecao = c.id AND p.idSubcolecao = s.id AND p.id = $id";

    ?

×
×
  • Criar Novo...