Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/229.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 按类别列出的回路产品_Php_Mysql_Arrays_Loops - Fatal编程技术网

Php 按类别列出的回路产品

Php 按类别列出的回路产品,php,mysql,arrays,loops,Php,Mysql,Arrays,Loops,我已经设法让这个工作,但我有一个轻微的错误,我无法修复,希望有人可以帮助 如果父类别中有一个产品,我可以正常工作,但是如果父类别为空,即使SQL返回正确的结果,PHP循环也会根据产品的数量重复数据。即4个产品=4组结果。但正如我所说的,如果父类别中有记录,那么它工作得非常完美 <?php $_GET["category_id"]=$category_id; ?> <?PHP $sql = " SELECT DISTINCT JVPCX.

我已经设法让这个工作,但我有一个轻微的错误,我无法修复,希望有人可以帮助

如果父类别中有一个产品,我可以正常工作,但是如果父类别为空,即使SQL返回正确的结果,PHP循环也会根据产品的数量重复数据。即4个产品=4组结果。但正如我所说的,如果父类别中有记录,那么它工作得非常完美

    <?php $_GET["category_id"]=$category_id; ?>

    <?PHP
    $sql = "
        SELECT DISTINCT JVPCX.category_id,
            JVP.product_id,
            JVP.product_error,
            JVP.product_exchange,
            JVP.product_sku,
            JVP.product_name,
            JVP.product_url,
            JVP.product_in_stock,
            jos_vm_category.category_name
     FROM jos_vm_product_category_xref JVPCX
          INNER JOIN jos_vm_product JVP ON (JVPCX.product_id = JVP.product_id)
          INNER JOIN jos_vm_category ON (JVPCX.category_id =
           jos_vm_category.category_id)
     WHERE JVPCX.category_id IN (SELECT jos_vm_category_xref.category_child_id FROM
      jos_vm_category_xref WHERE jos_vm_category_xref.category_parent_id =".$category_id.") OR (JVPCX.category_id =".$category_id.")";

    $res = mysql_query($sql);
    $list = array();
    while ( $r = mysql_fetch_object( $res ) )
    {
        if ( ! isset( $list[ $r->category_name ] ) )
        {
            $list[ $r->category_name ] = array();

        }

        $list[ $r->category_name ][ $r->product_id ] = array(
            'SKU'     => $r->product_sku,
            'Name' => $r->product_name,
            'Prod_id' => $r->product_id,
            'Prod_error' => $r->product_error,
            'Prod_exchange' => $r->product_exchange,
            'Prod_url' => $r->product_url,
            'Prod_in_stock' => $r->product_in_stock
        );
    }
    ?>

    <table width="70%" border="0">
      <tr>
        <td align="center" valign="middle"> Error: <img src="alert.gif" title="Error" alt="Error" />
        </td>
         <td align="center" valign="middle"> Exchange: <img src="exchange.gif" title="Exchange" alt="Exchange" />
        </td>
         <td align="center" valign="middle"> Information:<img src="info.gif" title="info" alt="info" />
        </td>
         <td align="center" valign="middle"> Stock:<img src="stock.gif" title="Stock" alt="Stock" />
        </td>
         <td align="center" valign="middle"> Buy:<img src="cart-icon.png" title="Stock" alt="Buy" />
        </td>
      </tr>
    </table>

    <?PHP

    echo("<BR/>");
    foreach ($list as $catID => $products) { ?>
    <?php 
        print($catID);
        echo("<BR/>"); 
        ?>
    <table width="100%" border="1" class="product-head">
      <tr>
        <th width="20%"> <?php echo("Part Number:"); ?>
        </th>
        <th width="45%"> <?php echo("Description:"); ?>
        </th>
        <th width="15%"> <?php echo("Information:"); ?>
        </th>
      </tr>
    </table>

     <table width="100%" border="1" class="product">
     <?php   foreach ($products as $prodID => $data) { ?>
      <tr>
        <td width="20%">
        <?php print($data['SKU']);
            echo("<BR/>");     
        ?>
        </td>


    <td width="45%"><?php  
        print($data['Name']);
    echo("<BR/>");     ?></td>

    <td width="15%" valign="middle"><?php  

                if ($data['Prod_error'] == "Y"){

            echo '<img src="alert.gif" title="Error" alt="Error" />'; 

             }

                if ($data['Prod_exchange'] == "Y"){
              echo '<img src="exchange.gif" title="Exchange" alt="Exchange" />'; 


             }

    if ($data['Prod_url'] > ""){
             echo '<a href="'.
            $data['Prod_url'] 
             .'">'.'<img src="info.gif" title="info" alt="info" />'.'</a>';  


             }

    if ($data['Prod_in_stock'] > "0"){
            echo '<img src="stock.gif" title="Stock" alt="Stock" />'; 

             }
    ?>  
    </td>
      </tr>
    </table>
    <?php echo("<BR/>"); ?>
    <?php } ?>

错误:
交换:
资料:
股票:
购买:

首先。删除
jos\u vm\u product\u category\u xref.product\u id、jos\u vm\u product\u category\u xref.product\u list

$sql = "
    SELECT DISTINCT
        JVPCX.`category_id`,
        JVP.`product_id`,
        JVP.`product_sku`,
        JVP.`product_s_desc`
    FROM
        `jos_vm_product_category_xref` JVPCX
    INNER JOIN `jos_vm_product` JVP
        ON JVPCX.`product_id` = JVP.`product_id`
";
你也可以改变你的循环

$list = array();

while ( $r = mysql_fetch_object( $res ) )
{
    if ( ! isset( $list[ $r->category_id ] ) )
    {
        $list[ $r->category_id ] = array();
    }

    $list[ $r->category_id ][ $r->product_id ] = array(
        'name'     => $r->product_sku,
        'whatever' => $r->product_s_desc,
    );
}

奇怪的是,没有人建议你发布你的代码——所以请发布你的代码。我一直在试图从另一个帖子中获得这一效果:@AndréGadonski et all you can have upvod the first comment