2017-09-06 11 views
0

我使用存储过程创建数据透视表,但我不知道如何自动获取PHP中的所有列和结果。是否有可能在PHP中调用存储过程获取动态列和结果?

这是在phpMyAdmin或/和MySQL工作台

| MEMBER  | 05/07/2017 | 06/07/2017 | 07/07/2017 | 08/07/2017 | 
| Accounting | 12   | 0   | 20   | 10   | 
| Officer | 1   | 20   | 4   | 8   | 
| Support | 10   | 1   | 0   | 30   | 

注我的存储过程枢轴结果:构件和日期可以超过这个例子。

但在PHP我不能获取像上述的所有数据,我需要输入静态像$数据['05/07/2017' 年] ...

这里的脚本:

<html> 
<head> 
<title>SP</title> 
</head> 
<body> 
<?php 
require_once('connection.php'); 
$smt = $conn->query('CALL SalesRecord()'); 
$row = $smt->fetchAll(PDO::FETCH_ASSOC); 
?> 
<tr> 
<td><?php print_r(json_encode(explode("",$row['0']))); ?><br></td> 
<td><?php print_r($row['1']); ?><br></td> #here i need to static input 
<td><?php print_r($row['2']); ?><br></td> #can do it automatically? 
</tr> 
</table> 
</body> 
</html> 

任何人都可以帮助我吗?

感谢alots

回答

0

我认为你需要使用的PDO::FETCH_ASSOCPDO::FETCH_BOTHPDO::FETCH_NUM代替,请参阅PHP doc来回详情

0

你可以使用foreach

echo '<table> 
     <thead> 
      <tr>'; 
       // write header 
       foreach ($result[0] as $key => $value) { 
        echo "<th>".ucfirst($key)."</th>"; 
       } 
       echo '</tr> 
     </thead><tbody>'; 

       // loop for row 
       foreach ($result as $item) { 
       echo "<tr>"; 
       // loop for column 
       foreach ($item as $value) { 
        echo '<td class="wrap">'. $value . "</td>\n"; 
       }       
       echo "</tr>\n"; 
       } 
       echo "</tbody></table>"; 

也许你正在寻找一个更简单的例子:

echo '<table><tr>'; 
// loop for all columns in the 2. row 
foreach ($row[1] as $key => $value) { 
    echo '<td>' . $row[1][$key].'</td>'; 
} 
echo '</tr></table>'; 
+0

大家好我的意思是,当我们返回结果$结果[0],$结果[1],...自动,所以当出现的是PHP 100列可以自动获取无结果申报并逐一设置。有可能的? – user8124226

+0

对不起,但我不明白你的问题。 $ result [0]返回包含所有列的第一行。在foreach循环中,“$ key ”为您提供每列的名称。你是否尝试过这些代码? – Max

+0

嗨,马克斯,我已经尝试过了。但我已经解决了这个问题,稍后我会更新答案。感谢您的关注,支持和关注。 – user8124226

0

代码:

echo "<table border='1'>"; 
echo ""; 
while ($rows = $stmt->fetchAll(PDO::FETCH_NUM)) { 
#print_r($rows); 
foreach ($rows as $array => $row) { 
echo "<tr>"; 
foreach ($row as $col => $cell) { 
echo "<td width='180px'>". $cell ."</td>"; 
} 

} 
echo "</tr></table>"; 
} 
相关问题