2016-03-26 6 views
0

フェッチ中にループが必要です。ルーピング​​はrowCountの内側にあります。

tdループは、最初のクエリのrowCount変数に依存します。上記のコード

<?php include'../db/dbConnect.php'; 
$_GET['tb']; 
$t=$_GET['tb']; 
$q=$con->prepare("desc $t"); 
$q->execute(); 
$h=$q->rowCount(); ?> 
<table> 
<tr> 
    <?php while($r=$q->fetch(PDO::FETCH_NUM)){ ?> 

<th><?php echo $r[0];?></th> 

    <?php } ?> 
</tr> 

<?php 
$q=$con->prepare("select*from $t"); 
$q->execute(); 

      while($r=$q->fetch(PDO::FETCH_NUM)){ 
$d=$r[0]; 
?> 
<tr> 
<td><?php echo $d;?></td> 
</tr> 
    <?php } ?> 
</table> 

結果与える:

col1 col2 col3 
12  
13  
14 

をしかし、私はとの結果が必要になります。これは、TDは行数の変数に依存して与えなければならない

col1  col2 col3 
12  vala  x 
13  valb  y 
14  valc  z 

whileを使ってtdをループする前に試しましたが、これはロジックが得られません。

私はいくつかの論理またはアドバイスを感謝します。

答えて

0

あなたは複数行フェッチしている:

$r=$q->fetch(PDO::FETCH_NUM) 

をしかし、その後、最初の列だけを表示:

while($r=$q->fetch(PDO::FETCH_NUM)) 
{ 
    ?> 
    <tr> 
    <?php 
     foreach($r as $colIdx => $column) 
     { 
      ?> 
      <td><?php echo $column;?></td> 
      <?php 
     } 
    <? 
    </tr> 
    <?php 
} 

NB:このような何かを試してみてください

$d=$r[0]; 
<tr> 
    <td><?php echo $d;?></td> 
</tr> 

を。未検証;しかし、あなたはその考えを得る。

関連する問題