2016-07-18 13 views
-3

データベースからデータを表形式でフェッチしようとしています。私はいくつかの行と5列としてカウント変数を取っている。このクエリを実行すると、すべての結果が複数の行と単一の列にフェッチされます。ここ は私のコードです:データを表形式にフェッチする

<?php 
include("connect.php"); 
$all_product = mysqli_query($connect, "SELECT * FROM product WHERE user_id='$fetch_user_id'"); 
echo '<table style="background-color:white; margin-left:50px; margin-right:50px;">'; 
$count = mysqli_num_rows($all_product); 
$count = ($count/5) + 1; 

for ($i = 0; $i < $count; $i++) { 
    echo "<tr[$i]>"; 

    for ($m = 0; $m < 5; $m++) { 
     echo "<td[$m]>"; 

     while ($all = mysqli_fetch_array($all_product)) { 
      echo '<img src="' . $all['image'] . '" width="150px" height="150px" /> 
       <div class="search_details"> 
       <figcaption>' . $all['name'] . '</figcaption> 
       <figcaption>by ' . $all['brand'] . '</figcaption><figcaption>&#8360;' . $all['price'] . '</figcaption> 
       <figcaption>Save: &#8360;' . $local_price . ', (' . $all['discount'] . '%)</figcaption><figcaption>In stock:' . $all['stock'] . '</figcaption></div>'; 
     } 

     echo "</td[$m]>"; 
    } 

    echo "</tr[$i]>"; 
} 

echo "</table>"; 
?> 

任意のヘルプ?どこが間違っていますか? は、事前に

+1

を – e4c5

+0

** WARNING **:あなたがする必要がありますmysqli' '使用している場合[パラメータ化されたクエリ](http://php.net/manual/en/mysqli.quickstart.prepared-statements.php)と['bind_param'](http://php.net/manual/en/mysqli-stmt .bind-param.php)を使用してユーザーデータをクエリに追加します。 **正しくエスケープするのを忘れた場合、重大な[SQLインジェクションのバグ](http://bobby-tables.com/)を作成するため、手動エスケープと文字列補間または連結を使用しないでください。 – tadman

+0

私はタイトルが好きです。誰がそれを考えていたでしょうか。 – Drew

答えて

0

をありがとう、私はこのことができます願っています:私はしばらくの間で見た中で最も恐ろしくフォーマットされたコードのための投票ダウン

<?php 
    $all_product = mysqli_query($connect, "SELECT * FROM product WHERE user_id='$fetch_user_id'"); 
    $i= 0; 
    $m=5; 
    echo '<table width="100%" margin-left="30px" style="background-color:white;">'; 
    while ($all = mysqli_fetch_array($all_product)) { 
    if($i%5==0) { 
    echo "<tr>"; 
       } 
    echo '<td style="width:20%">'; 
    echo '<img src="'.$all['image'].'" width="150px" height="150px" /> 
    <div class="search_details"> 
    <figcaption>'.$all['name'].'</figcaption> 
    <figcaption>by '.$all['brand'].'</figcaption><figcaption>&#8360;'.$all['price'].'</figcaption> 
    <figcaption>Save: &#8360;'.$local_price.', ('.$all['discount'].'%)</figcaption><figcaption>In stock: '.$all['stock'] .'</figcaption></div>'; 
    echo "</td>"; 
    if($i%$m==$m - 1){ 
    echo "</tr>"; 
       } 
    $i++; 
       } 
    echo "</table>"; 
    ?> 
+0

あなたの答えは私の答えとどう違うのですか? – Philipp

+0

私は見てみましょう。 – Lokesh

+0

@Philipp言い分は同じですが、偶然の一致ですが、PHPタグを何度も再定義する必要はありません。 – Lokesh

関連する問題