我怎样才能输出每行6个Sql数据
问题描述:
我的问题是,通过PHP输出的SQL数据显示在一个垂直单列中。我怎样才能输出每行6个Sql数据
我想要的是要显示的数据在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') ;
?>
答
尝试下面的代码,这将每六行之后创建新表。你可以相应地做出改变。
<?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
我试过了这段代码,它使数据出现在每列只有一个项目的列中。任何想法如何让它在每一行显示更多的项目? –
SELECT * FROM shop LIMIT 6 –
这个'if($ formatting = 6)'不会做你期望的!您正在分配,而不是比较。应该是'=='或'===' – Jeff
谢谢你的回应。它的工作原理,但只显示数据库的前6项,有没有办法创建另一行显示下一个6? –