Php 排列MySQL查询的数组结果
我正在根据数据库中的库存制作一个小册子生成器。由于纸质宣传册的外观,项目的显示顺序与mysql_fetch_数组的工作方式不匹配。每个用户选择的类别在2X2网格中包含四个项目Php 排列MySQL查询的数组结果,php,mysql,arrays,multidimensional-array,Php,Mysql,Arrays,Multidimensional Array,我正在根据数据库中的库存制作一个小册子生成器。由于纸质宣传册的外观,项目的显示顺序与mysql_fetch_数组的工作方式不匹配。每个用户选择的类别在2X2网格中包含四个项目 Category 1 ---------Category 2 [1] [2] ---------[5] [6] [3] [4] ---------[7] [8] Category 3 ---------Category 4 [9] [10] ---------[13] [14] [11] [
Category 1 ---------Category 2
[1] [2] ---------[5] [6]
[3] [4] ---------[7] [8]
Category 3 ---------Category 4
[9] [10] ---------[13] [14]
[11] [12] ---------[15] [16]
我已经创建了一个基本表作为此模式中项目的占位符。这是我检索项目的查询
$query = "SELECT t1.*, image_path FROM flyer_item AS t1
LEFT JOIN product_images AS t2 ON t1.product_id = t2.product_id WHERE id_page = '".$id_page."'";
echo $query."<br>";
$result = mysql_query($query);
echo '<h3 class = "splitter">Items</h3>';
//-create while loop and loop through result set
//Due to the unique item arrangement patter, we fill
//an array with the fetched array results.
$iArray = array();
while($row=mysql_fetch_array($result))
{
$iArray[] = $row;
$square = $row['square'];
$item_name = $row['item_name'];
$sales_info = $row['sales_info'];
$link = $row['image_path'];
$sku_item_number = $row['sku_item_number'];
if (empty($link))
{
$link = '../imagen/no_imagen.gif';
}
}
$query=“选择t1.*,将传单项目的图像路径设置为t1
在t1上将product_图像作为t2左键连接。product_id=t2。product_id,其中id_page='“$id_page.”;
echo$query。“
”;
$result=mysql\u query($query);
回应“项目”;
//-创建while循环和循环结果集
//由于独特的项目安排模式,我们填写
//具有获取的数组结果的数组。
$iArray=array();
while($row=mysql\u fetch\u数组($result))
{
$iArray[]=$row;
$square=$row['square'];
$item_name=$row['item_name'];
$sales_info=$row['sales_info'];
$link=$row['image_path'];
$sku_项目编号=$row['sku_项目编号'];
if(空($link))
{
$link='../imagen/no_imagen.gif';
}
}
一个页面最多可以容纳24个项目,所有项目都遵循上述模式,以确保项目处于各自的类别中。我正在考虑创建另一个名为Categories的数据库表来存储它的四个项目,但是有没有一种方法可以使用第二个数组iArray来存储指示项目应该去哪里的数字
实际表如下所示,以匹配原始文档
<table width="100%" border="1" bordercolordark="#000000" bordercolorlight="#000000">
<tr>
<td> </td>
<td colspan="2" align="center"><?php echo $category1; ?></td>
<td> </td>
<td colspan="2" align="center"><?php echo $category2; ?></td>
<td> </td>
</tr>
<tr>
<td> </td>
<td>Item 1</td>
<td>Item 2</td>
<td> </td>
<td>Item 5</td>
<td>Item 6</td>
<td> </td>
</tr>
<tr>
<td> </td>
<td>Item 3</td>
<td>Item 4</td>
<td> </td>
<td>Item 7</td>
<td>Item 8</td>
<td> </td>
</tr>
<tr>
<td> </td>
<td colspan="2" align="center"><?php echo $category3; ?></td>
<td> </td>
<td colspan="2" align="center"><?php echo $category4; ?></td>
<td> </td>
</tr>
<tr>
<td> </td>
<td>Item 9</td>
<td>Item 10</td>
<td> </td>
<td>Item 13</td>
<td>Item 14</td>
<td> </td>
</tr>
<tr>
<td> </td>
<td>Item 11</td>
<td>Item 12</td>
<td> </td>
<td>Item 15</td>
<td>Item 16</td>
<td> </td>
</tr>
<tr>
<td> </td>
<td colspan="2" align="center"><?php echo $category5; ?></td>
<td> </td>
<td colspan="2" align="center"><?php echo $category6; ?></td>
<td> </td>
</tr>
<tr>
<td> </td>
<td>Item 17</td>
<td>Item 18</td>
<td> </td>
<td>Item 21</td>
<td>Item 22</td>
<td> </td>
</tr>
<tr>
<td> </td>
<td>Item 19</td>
<td>Item 20</td>
<td> </td>
<td>Item 23</td>
<td>Item 24</td>
<td> </td>
</tr>
</table>
项目1
项目2
项目5
项目6
项目3
项目4
项目7
项目8
项目9
项目10
项目13
项目14
项目11
项目12
项目15
项目16
项目17
项目18
项目21
项目22
项目19
项目20
项目23
项目24
这可能无助于回答您的问题,但您应该停止使用mysql.*
函数。他们被弃用了。改为使用(从PHP5.1开始支持)或(从PHP4.1开始支持)。如果您不确定使用哪一个,请参考。您的问题中没有任何地方显示查询。我所看到的只是表“结构”和PHP代码。每个类别是否总是有四个项目?你说每个页面可以存储24个项目,所以我假设每个页面上可以有6个类别-在这种情况下,5和6出现在页面底部,或者在右边?如果您唯一的问题是不知道如何为每个类别获取4个项目,然后转到下一个类别:尝试使用($i=0;…对数组元素进行迭代,并使用floor($i/4)计算“类别索引”
。这是正确的。每个类别保证有四个项目。实际上有两种不同类型的页面。“首页”有一个花哨的页眉,这会占用空间,因此这些页面只有四个类别和16个项目。额外的页面空间更大,因此总共有六个类别和24个项目。