PHP-嵌套循环故障
我有一个HTML表,需要用从select语句中获取的值填充该表。 表cols由数组(0,1,2,3)填充。 查询的每个结果都将包含一个值为(0-3)的行“GATE”,但这些结果不会有任何可预测性。一个查询可以拉取“GATE”值为0,1,2,3的4行,下一个查询可以拉取值为1&2或1&3的两行 我需要能够用相应的值填充这个HTML表。因此HTML列0将具有db行的TTL_NET_SALES,该行的GATE值也为0PHP-嵌套循环故障,php,for-loop,nested,Php,For Loop,Nested,我有一个HTML表,需要用从select语句中获取的值填充该表。 表cols由数组(0,1,2,3)填充。 查询的每个结果都将包含一个值为(0-3)的行“GATE”,但这些结果不会有任何可预测性。一个查询可以拉取“GATE”值为0,1,2,3的4行,下一个查询可以拉取值为1&2或1&3的两行 我需要能够用相应的值填充这个HTML表。因此HTML列0将具有db行的TTL_NET_SALES,该行的GATE值也为0 <?php $gate = array(0,1,2,3); $gate_n
<?php
$gate = array(0,1,2,3);
$gate_n = count($gate);
/*
Database =
my_table.ID
my_table.TT_NET_SALES
my_table.GATE
my_table.LOCKED
*/
$locked = "SELECT * FROM my_table WHERE locked = true";
$locked_n = count($locked);
/* EXAMPLE RETURN
Row 1:
my_table['ID'] = 1
my_table['TTL_NET_SALES'] = 1000
my_table['GATE'] = 1;
Row 2:
my_table['ID'] = 2
my_table['TTL_NET_SALES'] = 1500
my_table['GATE'] = 3;
*/
print "<table border='1'>";
print "<tr><td>0</td><td>1</td><td>2</td><td>3</td>";
print "<tr>";
for ($i=0; $i<$locked_n; $i++)
{
for ($g=0; $g<$gate_n; $g++)
{
if (!is_null($locked['TTL_NET_SALES'][$i]) && $locked['GATE'][$i] == $gate[$g]) {
print "<td>$".$locked['TTL_NET_SALES'][$i]."</td>";
} else {
print "<td>-</td>";
}
}
}
print "</tr>";
print "</table>";
/*
What I want to see:
<table border='1'>
<tr>
<td>0</td>
<td>1</td>
<td>2</td>
<td>3</td>
</tr>
<tr>
<td>-</td>
<td>1000</td>
<td>-</td>
<td>1500</td>
</tr>
</table>
*/
?>
您的代码中似乎有错误。。。Replace$col我错误地在第二个数组中循环以检查是否相等,而我只需要数组搜索
print”“;
打印“”;
$my_arr=数组(0,1,2,3);
$VAL=数组(1,2);
对于($i=0;$iNo它没有。这只是一个输入错误,但问题仍然存在。这可能会有所帮助:$my_cols=array(0,1,2,3);$db_res=array(1,2);我希望结果看起来像这样0:x、1:1、2:2、3:x。你可以使用一个名为array\u diff
的函数。在这里查看更多信息:$db\u res数组将包含从我的数据库中提取的其他数组元素。因此它实际上看起来更像$db\u res['var1'][$I]、$db\u res['var2'][$I],等等。我正在尝试将$my\u cols与$db\u res['var1'进行比较[$i]。是的,该函数也能很好地处理数据库中的内容……试试看……:)
$my_cols = array(0,1,2,3);
for($i = 0; $i<$db_res; $i++)
{
for($col = 0; $col<$my_cols; $col++)
{
if ($db_res[$i] == $col) {
print "<td>".$db_res[$i]."</td>";
} else {
print "<td>-</td>";
}
}
}
print "<table border='1'>";
print "<tr>";
$my_arr = array(0,1,2,3);
$vals = array(1,2);
for ($i = 0; $i<count($my_arr); $i++)
{
print "<td>";
$key = array_search($my_arr[$i], $vals);
if (is_int($key)){
print $vals[$key];
} else {
print "-";
}
print "</td>";
}
print "</tr>";
print "</table>";