-1

该程序正在新行中打印每个数据。我希望它在一行中打印 3 个数据,然后更改行并在新行中打印其他 3 个数据。我曾尝试使用 for 循环,但它没有给我所需的输出。请告诉如何在这个程序中做到这一点

    <table width="550" border="0" align="center" cellpadding="2" cellspacing="2" bordercolor="#000000">  
      <tr>        
        <th  align= "left"><a href="#"><table width="160" border="0" align="center" cellpadding="0" cellspacing="0">

<?php   
    /*Inner Page- Products exists in Certain Category!!
    ======================================================*/

   $sub2_query = "select * from sub_categories where category_id=$category_id ";
   $sub2_query_run = mysql_query($sub2_query);
   while ($sub2_query_fetch = mysql_fetch_array($sub2_query_run))
   {                
       $sub2_category_id = $sub2_query_fetch['sub_category_id'];

       $inner_query = "select * from products inner join product_description 
              on products.product_id= product_description.product_id
            where sub_category_id= $sub2_category_id";
       if($inner_query_run = mysql_query ($inner_query))
       {                
           while($inner_query_fetch = mysql_fetch_array($inner_query_run))
    {       
           $product_id = $inner_query_fetch['product_id'];
           $inner_image_query = "select * from product_images 
                              where product_id=$product_id";

           $inner_image_query_run = mysql_query($inner_image_query);
           //PRINTING imagesss      
           echo "</th><tr><td align='center'>"; 
               echo "<div id='border'>";
           echo  "<td>";
           echo "<a href='index_product_details2.php?product_id=$product_id' >";    
           $inner_image_query_fetch = mysql_fetch_array($inner_image_query_run);
           echo "<img src=http://localhost/cms/". 
            $inner_image_query_fetch['images']." height='150' width='150' alt=\"\" />
            </td>
            </tr>
        </div>";

?>

      <tr>
        <td align="center">

    <?php       
    //PRINTING NAMES
print_r($inner_query_fetch['name']);
    echo "<br> Price: ";
    print_r($inner_query_fetch['actual_price']);
    echo "</a>";
    echo "<br><br>";                                
       }
    }else{
        echo mysql_error();
      }
    }
}
?>
</td>
</tr>      
    </table>
4

2 回答 2

0

试试这只是我给出的例子

<tr><?php  $i=0;
while($inner_query_fetch=       mysql_fetch_array($inner_query_run))
            {   

            if($i%3=="0"){  echo "</tr><tr>"; }?>

    <td> your html</td><?php $i++;}?></tr>
于 2013-09-23T09:37:33.733 回答
0

我会给你一些伪代码,这样你就可以找到逻辑:

$columns = 3;
$counter = 0;
while($row = mysql_fetch_array($result)){
   if($counter%$columns == 0) echo "<tr>";

   echo "<td>the things you want to output</td>";

   if($counter%$columns == 0) echo "</tr>";
   $counter++;
}

模块(% 符号)表示如果其余部分除以两个数字,10/3 = 3 (+ 1) 在这种情况下,1 将是模块,因此您仅在行是 3 的倍数时打印 tr。它是一种非常常见的做法,例如也用于交替行颜色(使用 $rowNumber%2);

笔记!!

您不应该再使用 mysql_ 函数,它们已被弃用,并且不安全(对于 sql 注入),您应该看看 mysqli 函数或 PDO,我个人建议学习 PDO,因为查询是参数化的并且非常安全,而且我喜欢你得到的逻辑和可读性。链接:

http://php.net/manual/en/book.mysqli.php

http://www.php.net/manual/es/book.pdo.php

于 2013-09-23T09:44:51.990 回答