【问题标题】:Create a grid view for a PHP query为 PHP 查询创建网格视图
【发布时间】:2023-05-07 16:40:02
【问题描述】:

所以我试图弄清楚如何获取我的 PHP 查询并将它们显示在网格视图中。 我想让它成为一个 3 列的网格,所以它看起来像这样:第一列:1、2、3 第二列:4、5、6 等等......

这是我通过 PHP 查看 MySQL 查询的代码:

<div class='main_col'> <!--Start of the Main-->
<div class='main_content'>
<?php
include("includes/connect.php");

$select_games = "SELECT * FROM games";

$run_games = mysql_query($select_games);

while($row = mysql_fetch_array($run_games)){

$game_id = $row['game_id'];
$game_name = $row['game_name'];
$game_category = $row['game_name'];
$game_keywords = $row['game_name'];
$game_image = $row['game_image'];

?>

<p><a href="game_page.php?id=<?php echo $game_id; ?>"><?php echo $game_name; ?></a></p>

<a href="game_page.php?id=<?php echo $game_id; ?>"><img src="images/games_images/<?php echo $game_image; ?>" width="120" /></a>

<?php } ?>
</div>
</div> <!--End of the Main-->

我试过了:

<div class='main_col'> <!--Start of the Main-->
<div class='main_content'>
<?php
include("includes/connect.php");

$select_games = "SELECT * FROM games";

$run_games = mysql_query($select_games);

while($row = mysql_fetch_array($run_games)){

$game_id = $row['game_id'];
$game_name = $row['game_name'];
$game_category = $row['game_name'];
$game_keywords = $row['game_name'];
$game_image = $row['game_image'];

?>

<table>

<tr>
<td><p><a href="game_page.php?id=<?php echo $game_id; ?>"><?php echo $game_name; ?></a></p>

<a href="game_page.php?id=<?php echo $game_id; ?>"><img src="images/games_images/<?php      echo $game_image; ?>" width="120" /></a></td>
</tr>
</table>
<?php } ?>
</div>
</div> <!--End of the Main-->

建议有人吗? :(

【问题讨论】:

  • 这究竟是如何尝试形成一个网格的?我没有看到单个 标记,甚至没有看到任何类型的块元素
  • 嗯,这是显示列表中项目的基本代码...
  • 到目前为止,您尝试过什么“使其成为网格视图”?我们会尽力为您提供帮助,而不是为您完成所有工作。
  • 我试图通过 HTML 将 PHP 代码下的回显行放在
  • 它们是否包含正确的
  • 标签?可能不是。我在下面发布了一个解决方案。

标签: php mysql view grid


【解决方案1】:

首先,您应该真正放弃使用已弃用 mysql 扩展。相反,您应该使用MySQLiPDO

接下来,您想要一个包含 3 列的表格。每个数据字段应包含 3 个游戏。所以这意味着在每 3 场比赛之后,你想要做一个,每 9 场比赛之后,开始一个新的行。您可以使用模运算符 (%) 查看您何时玩过 3(或 6 或 9 次等)游戏,以及何时玩过 9/18/27/等。游戏,像这样:

<div class='main_col'> <!--Start of the Main-->
<div class='main_content'>
<?php
include("includes/connect.php");

$run_games = mysql_query("SELECT * FROM games");

echo '<table>';
$games = 0;
while($row = mysql_fetch_array($run_games)){
   // make a new row after 9 games
   if($games%9 == 0) {
      if($games > 0) {
         // and close the previous row only if it's not the first
         echo '</tr>';
      }
      echo '<tr>';
   }
   // make a new column after 3 games
   if($games%3 == 0) {
      if($games > 0) {
         // and only close it if it's not the first game
         echo '</td>';
      }
      echo '<td>';
   }

   $game_id = $row['game_id'];
   $game_name = $row['game_name'];
   $game_category = $row['game_name'];
   $game_keywords = $row['game_name'];
   $game_image = $row['game_image'];
   ?>

   <a href="game_page.php?id=<?php echo $game_id; ?>"><?php echo $game_name; ?></a><br />
   <a href="game_page.php?id=<?php echo $game_id; ?>"><img src="images/games_images/<?php echo $game_image; ?>" width="120" /></a>
   <?php 
   $games++; // increment the $games element so we know how many games we've already processed
}
?>
</table>
</div>
</div> <!--End of the Main-->

或者,如果您只是希望每个场有 1 场比赛,您可以使用以下内容:

<div class='main_col'> <!--Start of the Main-->
<div class='main_content'>
<?php
include("includes/connect.php");

$run_games = mysql_query("SELECT * FROM games");

echo '<table>';
$games = 0;
while($row = mysql_fetch_array($run_games)){
   // make a new row after 3 games
   if($games%3 == 0) {
      if($games > 0) {
         // and only close it if it's not the first game
         echo '</tr>';
      }
      echo '<tr>';
   }

   $game_id = $row['game_id'];
   $game_name = $row['game_name'];
   $game_category = $row['game_name'];
   $game_keywords = $row['game_name'];
   $game_image = $row['game_image'];
   ?>
   <td>
   <a href="game_page.php?id=<?php echo $game_id; ?>"><?php echo $game_name; ?></a><br />
   <a href="game_page.php?id=<?php echo $game_id; ?>"><img src="images/games_images/<?php echo $game_image; ?>" width="120" /></a>
   </td>
   <?php 
   $games++; // increment the $games element so we know how many games we've already processed
}
?>
</table>
</div>
</div> <!--End of the Main-->

【讨论】:

  • 非常感谢,我现在就试试,非常感谢:)
  • 添加了一个小修复,发现它缺少 $games++;循环结束时的元素
  • 哇,它的工作原理!但是有个小问题,前3个游戏看起来不错,图片上方有名字,但后面几行显示游戏图片右侧的名字... :o
  • 你能把你的 HTML 贴在某个地方,这样我可以看看你的意思吗?也许包括截图?
  • 当然,基本上我正在设计一个在线游戏网站(合法),所以也许一些提示也会有所帮助:D 我构建它是为了测试我的学习;)movga.com -- 这个是主页,所以看看它们是如何出现的:/
猜你喜欢
相关资源
最近更新 更多
热门标签