2017-12-10 4 views
0

私は、MySQLのクエリから移入されたアレイがあります。さらに下の私のページでPHPのループは、HTMLテーブルを作成するための

if ($result) { 
    $foundResult = true; 
    foreach ($result as $row) { 
     array_push($searchResultAccount,$row->Account); 
     array_push($searchResultUsername,$row->Username); 
     array_push($searchResultPassword,$row->Password); 
     array_push($searchResultCreated,$row->Created); 
     array_push($searchResultStrength,$row->Strength); 
    } 
} else { 
    array_push($error,"No results found"); 
} 

が、私はテーブルを作成してからの結果とブートストラップのテーブルを移入したいが配列。ただし、テーブル内の各セルは、そのフィールドのすべての結果セットを出力します。私は私のループロジックに問題があると思う。私は、forループにforeachのから変えてみましたが、まだ運:

<tbody> 
    <?php for ($x = 0; $x < sizeof($result); $x++) { ?> 
    <tr> 
     <td><?php for ($i = 0; $i < sizeof($searchResultAccount); $i++){echo($searchResultAccount[$i]);}?></td> 
     <td><?php for ($i = 0; $i < sizeof($searchResultUsername); $i++){echo($searchResultUsername[$i]);}?></td> 
     <td><?php for ($i = 0; $i < sizeof($searchResultPassword); $i++){echo($searchResultPassword[$i]);}?></td> 
     <td><?php for ($i = 0; $i < sizeof($searchResultCreated); $i++){echo($searchResultCreated[$i]);}?></td> 
     <td><p>ExpiresHere</p></td> 
     <td><?php for ($i = 0; $i < sizeof($searchResultStrength); $i++){echo($searchResultStrength[$i]);}?></td> 
    </tr> 
    <?php } ?> 
</tbody> 

結果は以下のように見えるん:

enter image description here

私は、アレイ内の2つの結果を持って、そしてあなたが見ることができるように彼らは各セルに一緒に印刷しています。私がどこに間違っていたかに関するアイデアは?

編集:

$sql = "SELECT * FROM Accounts WHERE User_ID = :userid AND Account = :account"; 
    $stmt = $pdo->prepare($sql); 

    $stmt->bindValue(':userid',$userid); 
    $stmt->bindValue(':account',$account); 
    $stmt->execute(); 
    $result = $stmt->fetchAll(PDO::FETCH_CLASS); 

    if($result) { 
     $foundResult = true; 
     foreach($result as $row) { 
      array_push($searchResultAccount,$row->Account); 
      array_push($searchResultUsername,$row->Username); 
      array_push($searchResultPassword,$row->Password); 
      array_push($searchResultCreated,$row->Created); 
      array_push($searchResultStrength,$row->Strength); 
     } 
    } else { 
     array_push($error,"No results found"); 
    } 
+0

クエリ文字列から完全なPHPコードを投稿できますか? –

+0

なぜ 'array_walk'を使わないのですか –

答えて

1

仕事このような:以下、クエリ文字列からのような完全なPHPコード

foreach($result as $row) { 
    ?> 
     <tr> 
      <td><?php echo $row->Account; ?></td> 
      <td><?php echo $row->Username; ?></td> 
      <td><?php echo $row->Password; ?></td> 
      <td><?php echo $row->Created; ?></td> 
      <td><?php echo $row->Strength; ?></td> 
     </tr> 
    <?php 
} 

あなたは各結果行のためにテーブルの行を作成するには、このアプローチには

+0

どうもありがとうございました。完璧に動作します。本当に助けに感謝します。あなたの答えに印をつけます。 – JamLis

+0

あなたはようこそです、ありがとう –

1

ますtd要素の中のforループを削除する必要があります

foreach($result as $row) { 
     <tr> 
      <td><?php echo $row->Account;?></td> 
      <td><?php echo $row->Username;?></td> 
      <td><?php echo $row->Password;?></td> 
      <td><?php echo $row->Created;?></td> 
      <td><?php echo $row->Strength;?></td> 
     </tr> 
} 
0

このような行のために問題が発生しています。

for($i = 0; $i < sizeof($searchResultAccount); $i++){echo($searchResultAccount[$i]);}

私は、これは、印刷したい行の長さではなく、あなたがテーブルの上に印刷したいデータの数であるため、問題が発生していることを「推測」しています。あなたは今、それぞれのTableRow(TR)で谷に各結果をループしている

<td><?php echo($searchResultAccount[$x]) ; } ?></td> 
0

<?php for($i = 0; $i < sizeof($searchResultAccount); $i++){echo($searchResultAccount[$i]);}?> 

から行を変更してみてください。このコードでは、trに属する結果のみをフォーカスします。

<tbody> 
    <?php for($x = 0; $x < sizeof($result); $x++) { ?> 
    <tr> 
     <td><?php echo($searchResultAccount[$x]);?></td> 
     <td><?php echo($searchResultUsername[$x]);?></td> 
     <td><?php echo($searchResultPassword[$x]);?></td> 
     <td><?php echo($searchResultCreated[$x]);?></td> 
     <td><p>ExpiresHere</p></td> 
     <td><?php echo($searchResultStrength[$x]);?></td> 
    </tr> 
    <?php } ?> 
</tbody> 
関連する問題