对于我目前的进度,我需要创建一个类似下面的表
pid cid eid name value 1 1 4 name ab 2 1 5 amt 2 3 1 4 name cd 4 1 5 amt 4
而不是像这样创建表
pid cid name amt 1 1 ab 22 2 1 cd 4
无论如何使用以下代码
创建了表格<table width="1204" height="100" border="1">
<tr>
<?php $sqlname="Select * From elements where cat_id='1' order by e_id ";
$resname=mysql_query($sqlname);
while($rowname=mysql_fetch_array($resname)){
?>
<td colspan="2"><?php echo $rowname['lable_name']; ?></td>
</tr>
<tr>
<?php $i=0;
$sqlprolist="select value from products_list where name='".$rowname['lable_name']."' and e_id='".$rowname['e_id']."'";
$resprolist=mysql_query($sqlprolist);
while($rowprolist=mysql_fetch_array($resprolist)){
$i++;
?>
<td><?php echo $rowprolist['value'];?></td>
<?php if($i%8==0){
?>
<tr></tr>
<?php }?>
<?php }?>
</tr>
<?php }?>
</table>
但我不知道从表中检索数据进行处理。
谢谢
通过跟随martin创建如下表所示的表
pid cid eid name value 12 1 4 name abc 1 1 4 name cde 13 1 5 code 12 2 1 5 code 14
如何分割数据 像
name code breeder quality size abc 12 121 121 22 acfd 34 164 22 22
感谢
答案 0 :(得分:0)
如果没有看到数据库结构,很难帮助您。请与我们分享,您可能会得到更好的答案。
无论如何,我想你有两张表,elements
和products_list
。您似乎需要在value
表中查找products_list
表中每行的elements
列。您可以使用单个SQL查询将这些表合并到一个结果集中:
SELECT e.p_id, e.cat_id, e.e_id, e.lable_name, p.value
FROM elements e, products_list p
WHERE e.cat_id='1' AND
p.name = e.lable_name AND p.e_id = e.e_id
ORDER BY by e.e_id
请注意e.p_id
只是猜测,您还没有与我们分享“pid”列值来自哪里。如果您确实需要使用p.name = e.lable_name
匹配行,也不确定。如果e_id
是主键,则您可能仅使用p.e_id = e.e_id
。
cid
列有什么意义?如果它确实是数据库中的cat_id
列,那么为什么在HTML表中需要它,如果你将元素过滤到cat_id=1
呢?这是故意的吗?
现在,您可以获取查询结果,并将其逐行输出到HTML表格,如:
<table width="1204" height="100" border="1">
<tr>
<th>pid</th>
<th>cid</th>
<th>eid</th>
<th>name</th>
<th>value</th>
</tr>
<?php
$sqlname =
"SELECT e.p_id, e.cat_id, e.e_id, e.lable_name, p.value ".
"FROM elements e, products_list p ".
"WHERE e.cat_id='1' AND ".
"p.name = e.lable_name AND p.e_id = e.e_id".
"ORDER BY e.e_id";
$resname = mysql_query($sqlname);
while ($row = mysql_fetch_array($resname))
{
?>
<tr>
<td><?php echo $row['p_id'];?></td>
<td><?php echo $row['cat_id'];?></td>
<td><?php echo $row['e_id'];?></td>
<td><?php echo htmlspecialchars($row['lable_name']);?></td>
<td><?php echo $row['value'];?></td>
</tr>
<?php
}
?>
</table>
这只是第一步。这不太可能是正确答案。但我希望它能帮助你理解,你想做什么以及你的问题。
这不是生产级代码。但我希望尽可能少做一些更改,以便您可以看到代码的实际变化是什么。
另请注意,mysql_
函数已弃用。请参阅PHP documentation page上的大红框。