Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

rumao

Erro ao pupular campo SELECT

Recommended Posts

Boa tarde a todos estou com um projeto em PHP e ao fazer uma consulta no banco de dados gostaria de popular um campo SELECT com alguns dados que vem do banco.
A consulta em si está funcionando, mas não estou conseguindo trazer as informações agrupadas dentro do SELECT , segue imagem para melhor compreensão.

http://dellasavia.com.br/img/sql.jpg

Se alguém puder ajudar agradeço.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então, é que não há como pupular selects...

 

Posta o código em php que você monta o select.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então eu tenho uma página categorias.php de onde mando uma ac para a página produtos.php

 

categotias.php

 

<div id="content" class="box">
        <div class="widgets">
            <ul>
                <?php $selWidgets = mysql_query("SELECT * FROM DIVISOES ORDER BY ORDEM_CAT");
                    while($item = mysql_fetch_object($selWidgets)){
                ?>
                <li id="widgetArray_<?php echo $item->CODIGO_CAT; ?>">
                    <a href="produtos.php?ac=<?php echo $item->CODIGO_CAT; ?>"><img src="widgets/<?php echo $item->WIDGET_CAT; ?>"></a>
                    <span><?php echo ucfirst(strtolower($item->NOME_CAT)); ?></span>
                </li>
                <?php } ?>
            </ul>
        </div><!-- Fim Widgets -->
    </div><!-- Fim Content -->

 

produtos.php

 

$categoria = $_GET['ac'];
 
<div id="content" class="box">
        <h3>Listagem de Produtos</h3>
        <table class="table table-bordered table-hover table-condensed">
                    <thead>
                        <tr>
                            <th colspan="2">
                              Descrição Produto
                            </th>
                            <th width="10%">
                                Ação
                            </th>
                        </tr>
                    </thead>
                    <tfoot>
                      <tr>
                        <td colspan="3" style="text-align:right;">
                            <a href="categorias.php" class="btn btn-mini btn-info">Categorias</a> 
                            <a href="carrinho.php" class="btn btn-mini btn-success">Verificar Orçamento</a>
                        </td>
                      </tr>
                    </tfoot>
                    <?php
                        $linha1 = 0;
                        $sql = mysql_query("SELECT * FROM detxsub a
                                            LEFT JOIN subdivisoes b ON b.codigo_sub = a.codigosub_des
                                            LEFT JOIN detalhes c ON c.codigo_det = a.codigodet_des
                                            WHERE codigodiv_sub = '$categoria' GROUP BY b.codigo_sub");
                        while($item = mysql_fetch_object($sql)){                        
                    ?>
                    <tbody>
                        <tr>
                            <td valign="baseline">
                                <a href="processa.php?id=<?php echo $item->codigo_sub; ?>"><?php echo $item->nome_sub; ?></a>
                            </td>
                            <td width="15%">
                                <select name="detalhe" class="span12" id="detalhe">
                                    <option><?php echo $item->nome_det; ?></option>
                                  </select>
                          </td>
                            <td>
                                <a href="processa.php?id=<?php echo $item->codigo_sub; ?>" class="btn btn-small btn-warning">Incluir</a>
                            </td>                        
                        </tr>
                    </tbody>
                    <?php
                        }
                    ?>
                </table>
    </div><!-- Fim Content -->

 

Do jeito que está até funciona, mas ele fica como na imagem que deixer no link do POST para melhor entendimento.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então não estou entendendo Cristianoferr, estou fazendo assim pois vou retornar dados e preencer alina toda com:

 

Nome do Produto - Detalhe - Ação

AMORTECEDOR - DIA - Incluir

TRA

 

Não sei de você deu uma olhada na imagem que deixei no link. Hoje ele me retorna assim:

Nome do Produto - Detalhe - Ação

AMORTECEDOR - DIA - Incluir

AMORTECEDOR - TRA - Ação

 

Por isso estou tentando retornar dentro do Select->Option o detralhe de cada produto para quando o cliente escolher ou dianteiro ou traseiro e clicar em incluir.

Compartilhar este post


Link para o post
Compartilhar em outros sites


Dá um var_dump no $item e vê o que ele retorna, pra saber se ele pelo menos está trazendo corretamente.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ok, var_dump 1 como está agora

 

 

$sql = mysql_query("SELECT * FROM detxsub a
    LEFT JOIN subdivisoes b ON b.codigo_sub = a.codigosub_des
    LEFT JOIN detalhes c ON c.codigo_det = a.codigodet_des
    WHERE codigodiv_sub = '$categoria' GROUP BY b.codigo_sub");

object(stdClass)[1]
public 'codigo_des' => string '1' (length=1)
public 'codigosub_des' => string '23' (length=2)
public 'codigodet_des' => string '3' (length=1)
public 'codigo_sub' => string '23' (length=2)
public 'codigodiv_sub' => string '8' (length=1)
public 'nome_sub' => string 'AMORTECEDOR' (length=11)
public 'codigo_det' => string '3' (length=1)
public 'nome_det' => string 'DIA' (length=3)

 

 

var_dump 2 sem o GORUP BY

$sql = mysql_query("SELECT * FROM detxsub a
    LEFT JOIN subdivisoes b ON b.codigo_sub = a.codigosub_des
    LEFT JOIN detalhes c ON c.codigo_det = a.codigodet_des
    WHERE codigodiv_sub = '$categoria'");

object(stdClass)[1]
public 'codigo_des' => string '1' (length=1)
public 'codigosub_des' => string '23' (length=2)
public 'codigodet_des' => string '3' (length=1)
public 'codigo_sub' => string '23' (length=2)
public 'codigodiv_sub' => string '8' (length=1)
public 'nome_sub' => string 'AMORTECEDOR' (length=11)
public 'codigo_det' => string '3' (length=1)
public 'nome_det' => string 'DIA' (length=3)
object(stdClass)[2]
public 'codigo_des' => string '2' (length=1)
public 'codigosub_des' => string '23' (length=2)
public 'codigodet_des' => string '4' (length=1)
public 'codigo_sub' => string '23' (length=2)
public 'codigodiv_sub' => string '8' (length=1)
public 'nome_sub' => string 'AMORTECEDOR' (length=11)
public 'codigo_det' => string '4' (length=1)
public 'nome_det' => string 'TRA' (length=3)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Como falei, ao invés de:

 

while($item = mysql_fetch_object($sql)){                        
?>
<tbody>
<tr>
<td valign="baseline">
<a href="processa.php?id=<?php echo $item->codigo_sub; ?>"><?php echo $item->nome_sub; ?></a>
</td>
<td width="15%">
<select name="detalhe" class="span12" id="detalhe">
<option><?php echo $item->nome_det; ?></option>
</select>
</td>
<td>
<a href="processa.php?id=<?php echo $item->codigo_sub; ?>" class="btn btn-small btn-warning">Incluir</a>
</td>                        
</tr>
</tbody>
<?php
}

 

faça:

 

<tbody>
<tr>
<td valign="baseline">
<a href="processa.php?id=<?php echo $item->codigo_sub; ?>"><?php echo $item->nome_sub; ?></a>
</td>
<td width="15%">
<select name="detalhe" class="span12" id="detalhe">


<?
while($item = mysql_fetch_object($sql)){                        
?>
<option value="<?echo $id_do_item?>"><?php echo $item->nome_det; ?></option>
<?php
}    ?>
</select>
</td>
<td>
<a href="processa.php?id=<?php echo $item->codigo_sub; ?>" class="btn btn-small btn-warning">Incluir</a>
</td>                        
</tr>
</tbody>

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Entendi Cristianoferr, mas assim eu perco a refeência do nome e do link incluir onde passo a variável para incluir na próxima página do carrinho. E não me mostra o nome do produto em si.



E deste jeito ele não me retornou DIA = Dianteiro, TRA = Traseiro

Ele sempre retorno o primeiro de cada se eu tiver outro produto como por exemplo:

DIR = Direito

ESQ = Esquerdo

 

Ele me Retorna

DIA

DIR

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.