egyal 私は私の質問に答えていません。しかし、これは、スタックオーバーフローで、元の質問のフォローアップとしてコードを再投稿する唯一の方法です。
とにかく、私はあなたのリンクを試しました。(つまり、PHPで多次元配列を転置しています)しかし、私の場合はうまくいきません。
自分で試してみることができます。これを試すために必要な2つの関数を添付しました。この機能を実行するために必要なのは、mysql $dbh 接続だけです。flipdiagonally
私の関数では、そのリンクで 24 回投票された関数を利用したことがわかります。
$direction_v_or_h を設定して関数を呼び出すと、機能しますh,
。しかし、それは私たちにとってニュースではありません。それはv
私が求めているモードです。
このような制限で試してみてください
SQL_getview($dbh, "select * from yourTable limit 2","h");
と
SQL_getview($dbh, "select * from yourTable limit 2","v");
私が得るエラーはこれです; テーブル内のフィールドごとに繰り返される
Warning: Invalid argument supplied for foreach() in D:\Hosting\5291100\html\blueprint\sql.php on line 739
function SQL_getview($dbh,$sql,$direction_v_or_h = 'h')
{
$result = $result = mysql_query($sql,$dbh);
$fields_num = mysql_num_fields($result);
if ($direction_v_or_h == "h"):
echo "<table border='1'><tr>";
// printing table headers
for($i=0; $i<$fields_num; $i++)
{
$field = mysql_fetch_field($result);
echo "<td>{$field->name}</td>";
}
echo "</tr>\n";
while($row = mysql_fetch_row($result))
{
echo "<tr>";
foreach($row as $cell)
echo "<td>$cell</td>";
echo "</tr>\n";
}
echo "</table>";
else:
if (1): //turn this to 0 to see the good old print_r workaround
echo "<table border='1'><tr>";
// printing table headers
for($i=0; $i<$fields_num; $i++)
{
$field = mysql_fetch_field($result);
echo "<td>{$field->name}</td>";
}
echo "</tr>\n";
while($row = mysql_fetch_assoc($result))
{
echo "<tr>";
$row = flipDiagonally($row);
foreach($row as $cell)
echo "<td>$cell</td>";
echo "</tr>\n";
}
echo "</table>";
else:
while($row = mysql_fetch_assoc($result))
{
echo "<tr>";
echo "<pre>";
print_r ($row);
echo "</pre>";
echo "<hr>";
}
endif;
endif;
mysql_free_result($result);
}
function flipDiagonally($arr) {
$out = array();
foreach ($arr as $key => $subarr) {
foreach ($subarr as $subkey => $subvalue) {
$out[$subkey][$key] = $subvalue;
}
}
return $out;
}