我有这段代码:
function random()
{
include('config/koneksi.php');
$result = mysql_query("select * from temp_hasil");
$n =mysql_num_rows(mysql_query("SELECT * FROM temp_hasil"));
for ($i = 1; $i <= $n; $i++)
{
for ($j = 1; $j <= $n; $j++)
{
$rows = mysql_fetch_array($result);
$this->table[$i][$j] = $i == $j ? INF : $rows['id'];
}
}
}
function __toString()
{
$str = '<table class="table table-bordered" id="tableInput"> <tbody>';
$str .= '<tr><td></td>';
foreach ($this->table as $rowName => $row)
{
$str .= "<td>$rowName</td>";
}
$str .= '</tr>';
foreach ($this->table as $rowName => $row)
{
$str .= "<tr><td>$rowName</td>";
foreach ($row as $columnName => $value)
{
$str .= "<td>";
$str .=
'<input class="form-control" type="text" value="' . $value . '" name="table[' . $rowName . '][' .
$columnName . ']" requied' . ($columnName == $rowName ? ' disabled' : '') . '>';
$str .= "</td>";
}
$str .= '</tr>';
}
$str .= '</tbody></table>';
return $str;
}
}
$str .= '</tr>';
foreach ($this->table as $rowName => $row)
{
$str .= "<tr><td>$rowName</td>";
foreach ($row as $columnName => $value)
{
$str .= "<td>";
$str .=
'<input class="form-control" type="text" value="' . $value . '" name="table[' . $rowName . '][' .
$columnName . ']" requied' . ($columnName == $rowName ? ' disabled' : '') . '>';
$str .= "</td>";
}
$str .= '</tr>';
}
$str .= '</tbody></table>';
return $str;
}`
我有桌子&#34; temp_hasil&#34;如:
id_temp | id | 1 | 8 | 2 | 5 | 3 | 7 |
如果我运行此代码,结果是:
1 2 3 1 | INF | 5 | 7 | 2 | | INF| | 3 | | | INF|
但我想要最终结果如:
1 2 3 1 | INF | 5 | 7 | 2 | 8 | INF| 7 | 3 | 8 | 5 | INF|
我如何在PHP中编码?代码有什么问题吗?谢谢,......:)
答案 0 :(得分:0)
问题是 - 您只能获取一次完整的结果,并且无法获得第二个循环中的第一条记录。因此,将结果存储在数组中并使用数组创建矩阵。
这应该有效。试试这个。
function random()
{
include('config/koneksi.php');
$result = mysql_query("select * from temp_hasil");
$n =mysql_num_rows(mysql_query("SELECT * FROM temp_hasil"));
$r=array();
for ($a = 1; $a <= $n; $a++)
{
$rows = mysql_fetch_array($result);
$r[]=$rows['id'];
}
for ($i = 1; $i <= $n; $i++)
{
for ($j = 1; $j <= $n; $j++)
{
$this->table[$i][$j] = $i == $j ? INF : $r[$j-1];
}
}
}
简单地说,您可以使用while
循环并存储到数组,然后在sizeof($r)
循环中使用数组count($r)
或for
。你喜欢哪个。
function random()
{
include('config/koneksi.php');
$result = mysql_query("select * from temp_hasil");
$r=array();
while($rows = mysql_fetch_array($result)) {
$r[]=$rows['id'];
}
for ($i = 1; $i <= sizeof($r); $i++)
{
for ($j = 1; $j <= sizeof($r); $j++)
{
$this->table[$i][$j] = $i == $j ? INF : $r[$j-1];
}
}
}