for () is showing the same value as the array

0

Good afternoon, I'm trying to make a for () that shows the values for the current category. I use a function that takes the company and the category and selects the amount of records to display. Soon after, I use a similar function to show the products inside the for. but he is showing me several times the same product.

Following the Functions:

function selectProdutos($idCategoria, $idEmpresa){
    require('admin/Connections/pennaConect.php');

    mysql_select_db($database_pennaConect, $pennaConect);
    $query_ListaProdutos = sprintf("SELECT * FROM tbl_produto 
                                    WHERE tbl_categoria_id = %s 
                                    AND tbl_empresa_id = %s 
                                    ORDER BY codigo_original", 
                                        GetSQLValueString($idCategoria, "int"),
                                        GetSQLValueString($idEmpresa, "int")
                                );
    $ListaProdutos = mysql_query($query_ListaProdutos, $pennaConect) or die(mysql_error());
    $row_ListaProdutos = mysql_fetch_assoc($ListaProdutos);
    $totalRows_ListaProdutos = mysql_num_rows($ListaProdutos);

    return $row_ListaProdutos;
}

function selectCountProdutos($idCategoria, $idEmpresa){
    require('admin/Connections/pennaConect.php');

    mysql_select_db($database_pennaConect, $pennaConect);
    $query_ListaProdutos = sprintf("SELECT * FROM tbl_produto 
                                    WHERE tbl_categoria_id = %s 
                                    AND tbl_empresa_id = %s 
                                    ORDER BY codigo_original", 
                                        GetSQLValueString($idCategoria, "int"),
                                        GetSQLValueString($idEmpresa, "int")
                                );
    $ListaProdutos = mysql_query($query_ListaProdutos, $pennaConect) or die(mysql_error());
    $row_ListaProdutos = mysql_fetch_assoc($ListaProdutos);
    $totalRows_ListaProdutos = mysql_num_rows($ListaProdutos);

    return $totalRows_ListaProdutos;
}

and in HTML:

            <?php for($i=0;$i<selectCountProdutos($row_ListaCategoria['CatId'] , $row_listaFabrica['id']);$i++){ ?>
                <div class="col-lg-3 col-md-3 col-xs-12 col-sm-6 col-lg-3-edit thumb">
                    <div class="box clearfix">

                        <!--IMAGEM PRODUTO-->
                        <a href="img/produtos/id/101.1032.png" class="thumbnail text-center thumbnail-edit thumbnail_wrapper no-border-radius pop" data-toggle="lightbox" data-title="CHICOTE PARA REPARO ALTERNADOR VW/CHICOTE P/REPARO SENSOR PRESS" data-footer="TC Chicotes">
                            <img class="img-responsive img-form-edit" src="img/produtos/id/101.1032.png" alt="#" />
                        </a>

                        <!--INFORMAÇÕES PRODUTO-->
                        <div class="product-text">
                        <?php $result = selectProdutos($row_ListaCategoria['CatId'], $row_listaFabrica['id']);?>
                            <h4><?php echo $result['nome']; ?></h4>
                            <p>
                                <strong>Código:</strong> <?php echo $result['codigo_original']; ?><br>
                                <strong>Aplicação:</strong> <?php echo $result['aplicacao']; ?><br>
                                <strong>Obs:</strong><?php echo $result['descricao']; ?>
                            </p>
                        </div>

                    </div>
                </div>
            <?php } ?>

Can you help me? I'm not understanding what's wrong, let alone how to arrange it.

Thank you all for your help!

    
asked by anonymous 12.04.2016 / 20:07

2 answers

0

Your selectProdutos method returns only the first product. The mysql_fetch_assoc returns a value every time you use it, so you should save all the data into vectors.

/*...*/
while($line = mysql_fetch_assoc($ListaProdutos))
    $row_ListaProdutos[] = $line;
/*...*/
return $row_ListaProdutos;

Then all the information will return inside your vector.

And in your html:

<?php
$result = selectProdutos($row_ListaCategoria['CatId'], $row_listaFabrica['id']);
for($i=0;$i<selectCountProdutos($row_ListaCategoria['CatId'] , $row_listaFabrica['id']);$i++){ ?>
...
<div class="product-text">
    <h4><?php echo $result[$i]['nome']; ?></h4>
    ...
</div>
...
  

... represents the code snippet until the next tag

    
12.04.2016 / 20:23
-1

Dude, I hit the quick eye, in the " for " line, I think it would have to look like this:

<?php $result = selectProdutos($row_ListaCategoria[$i], $row_listaFabrica[$i]);?>

How are you setting up this $row_ListaCategoria and $row_listaFabrica ? If it is by mysql_fetch_assoc , try changing to mysql_fetch_array .

    
12.04.2016 / 20:39