2017-02-23 9 views
-1

私の問題は、PHPで出力されたSQLデータが垂直の単一の列に表示されていることです。SQLデータを6行ずつ出力するにはどうすればいいですか

データが表示されます。6つの項目の行には、次の6を表示する新しい行が作成されます。

コード:

<?php # DISPLAY COMPLETE PRODUCTS PAGE. 

# Access session. 
session_start() ; 

# Redirect if not logged in. 
if (!isset($_SESSION[ 'user_id' ])) { require ('login_tools.php') ; load() ; } 

# Set page title and display header section. 
$page_title = 'Shop' ; 
include ('includes/header.html') ; 

# Open database connection. 
require ('..\connect_db.php') ; 

# Retrieve items from 'shop' database table. 
$q = "SELECT * FROM shop" ; 
$r = mysqli_query($dbc, $q) ; 
if (mysqli_num_rows($r) > 0) 
{ 

    # Display body section. 
    echo '<UL> 
     <li><a href="shop_details.php?id=1">View Item</a></li> 
     <li><a href="shop_details.php?id=2">View Item</a></li>   
     <li><a href="shop_details.php?id=3">View Item</a></li> 
    </UL> 
    '; 


    #Displays every item in the store. 
    echo '<table><tr>'; 

$formatting = 0; 
    while ($row = mysqli_fetch_array($r, MYSQLI_ASSOC)) 
    { 
     echo $formatting; 
     if ($formatting = 6){ 
     echo '<td><strong>' . $row['item_name'] .'</strong><br><span  style="font-size:smaller">'. 
$row['item_desc'] . '</span><br><img src='. $row['item_img'].' height=200px><br>$' . $row['item_price'] . 
'<br><a href="shop_details.php?id='.$row['item_id'].'">View Item</a></td></tr><tr>'; 
     $formatting = 0; 
    } 
    else 
    { 
     echo $formatting; 
     echo '<td><strong>' . $row['item_name'] .'</strong><br><span style="font-size:smaller">'. 
$row['item_desc'] . '</span><br><img src='. $row['item_img'].' height=200px><br>$' . $row['item_price'] . 
'<br><a href="shop_details.php?id='.$row['item_id'].'">View Item</a></td>'; 
     $formatting = $formatting + 1; 
    } 
} 


echo '</tr></table>'; 

    # Close database connection. 
    mysqli_close($dbc) ; 
} 
    # Or display message. 
else { echo '<p>There are currently no items in this shop.</p>' ; } 

    # Create navigation links. 
    echo '<p><a href="cart.php">View Cart</a> | <a href="forum.php">Forum</a> | <a href="home.php">Home</a> | <a href="goodbye.php">Logout</a></p>' ; 

    # Display footer section. 
    include ('includes/footer.html') ; 

    ?> 
+0

SELECT * FROM shop LIMIT 6 –

+0

このif($ formatting = 6)は期待したことをしません!あなたは割当てていて、比較していません。 '=='または '==='でなければなりません – Jeff

+0

ありがとうございます。それは動作しますが、データベースからの最初の6項目のみを表示します。次の6行を表示する別の行を作成する方法はありますか? –

答えて

0

は、以下のコードを試してみてください、これはすべての6行の後に新しいテーブルを作成します。それに応じて変更することができます。

<?php # DISPLAY COMPLETE PRODUCTS PAGE. 

# Access session. 
session_start() ; 

# Redirect if not logged in. 
if (!isset($_SESSION[ 'user_id' ])) { require ('login_tools.php') ; load() ; } 

# Set page title and display header section. 
$page_title = 'Shop' ; 
include ('includes/header.html') ; 

# Open database connection. 
require ('..\connect_db.php') ; 

# Retrieve items from 'shop' database table. 
$q = "SELECT * FROM shop" ; 
$r = mysqli_query($dbc, $q) ; 
if (mysqli_num_rows($r) > 0) 
{ 



    # Display body section. 
    echo '<UL> 
     <li><a href="shop_details.php?id=1">View Item</a></li> 
     <li><a href="shop_details.php?id=2">View Item</a></li>   
     <li><a href="shop_details.php?id=3">View Item</a></li> 
    </UL> 
    '; 


    #Displays every item in the store. 
    echo '<table>'; 

$formatting = 0; 
    while ($row = mysqli_fetch_array($r, MYSQLI_ASSOC)) 
    { 
     echo $formatting; 
    if ($formatting == 5){ 
    echo '</table><table><tr><td><strong>' . $row['item_name'] .'</strong><br><span  style="font-size:smaller">'. 
$row['item_desc'] . '</span><br><img src='. $row['item_img'].' height=200px><br>$' . $row['item_price'] . 
'<br><a href="shop_details.php?id='.$row['item_id'].'">View Item</a></td></tr>'; 
$formatting = 0; 
} 
else 
    { 
     echo $formatting; 
     echo '<tr><td><strong>' . $row['item_name'] .'</strong><br><span style="font-size:smaller">'. 
$row['item_desc'] . '</span><br><img src='. $row['item_img'].' height=200px><br>$' . $row['item_price'] . 
'<br><a href="shop_details.php?id='.$row['item_id'].'">View Item</a></td></tr>'; 
$formatting ++; 
} 
     } 


    echo '</table>'; 

     # Close database connection. 
    mysqli_close($dbc) ; 
    } 
    # Or display message. 
    else { echo '<p>There are currently no items in this shop.</p>' ; } 

    # Create navigation links. 
    echo '<p><a href="cart.php">View Cart</a> | <a href="forum.php">Forum</a> | <a href="home.php">Home</a> | <a href="goodbye.php">Logout</a></p>' ; 

    # Display footer section. 
    include ('includes/footer.html') ; 

    ?> 
+0

私はコードを試して、行ごとに1つの項目を持つ列にデータを表示させました。どのように私はそれが各行に多くの項目を表示することができる任意のアイデア? –

関連する問題