2016-08-16 12 views
0

私はWeb開発の初心者で、CRUDの学習を始めました。SQLクエリのPHP不完全な結果テーブル

私の質問は、1行目のテーブルリスト3の製品を正常に表示している間、2行目の製品番号4が見つからず、製品番号5にスキップして最後の3行をすべて失うことです。

function getData(){ 
    global $connect; 
    $query = "SELECT id, name, category, price, image, info FROM product_data"; 
    $results = mysqli_query($connect, $query) or die(mysql_error()); 
    echo "<table border = 0 >"; 
    $x=1; 
    echo "<tr class='homepagetable'>"; 
    while ($row = mysqli_fetch_array($results, MYSQLI_ASSOC)) { 
     if($x<=3){ 
      $x = $x + 1; 
      extract($row); 
      echo "<td class='homepagetable'>"; 
      echo "<a href=itemdetails.php?id=$id>"; 
      echo '<img src=img/' . $image . ' style="max-width:220px;max-height:240px;width:220px;height:240px;"></img><br/>'; 
      echo '<div class="truncate">'. $name .'</div><br/>'; 
      echo "</a>"; 
      echo 'Rp.'.$price .'<br/>'; 
      echo "</td>"; 
     } else { 
      $x=1; 
      echo "</tr><tr>"; 
     } 
    } 
     echo "</table>"; 
    } 

ありがとうございます!

+0

あなたのhtmlを修正してください。 ''はシングルトンタグであり、 ''は存在しません。あなたの属性も引用符と引用符で囲まれていません。最後のテーブル行を閉じずに、 '​​ 'などを残します。 –

答えて

1

あなたの問題はあなたがここで間違った条件を持っているということである。これまでのif /他

if($x <=3)... else{...} 

変更:

if($x <3){$x++;} 

//...do something 

if($x == 3){ 
$x = 1; 
//Close and open tr 
} 

そして、あなたは<img>タグを閉じる必要があり、そして最後の<tr>ループの外側のタグ

0

恐らくあなたは次のように書くことができます:

function getData() 
{ 
    global $connect; 
    $query = 'SELECT id, name, category, price, image, info FROM product_data'; 
    $result = mysqli_query($connect, $query) or die(mysql_error()); 
    echo '<table border="0">'; 
    $x=0; 
    while ($row = mysqli_fetch_array($result, MYSQLI_ASSOC)) 
    { 
    if($x % 3 == 0) 
    { 
     // number of articles is a multiple of 3 - so close the row 
     if($x) echo '</tr>'; // but only if there was at least 1 article 
     echo '<tr class="homepagetable">'; 
    } 
    $x ++; 
    echo '<td class="homepagetable"><a href="itemdetails.php?id='.$row['id'].'"> 
     <img src="img/'.$row['image'].'" style="max-width:220px;max-height:240px;width:220px;height:240px;"><br/> 
     <div class="truncate">'.$row['name'].'</div><br/> 
     </a>Rp. '.$row['price'].'<br/> 
     </td>'; 
    } 
    if($x) echo '</tr>'; // only close the row if there was at least 1 article 
    echo '</table>'; 
} 
関連する問題