【问题标题】:Fetching 1 row at a time [duplicate]一次获取 1 行 [重复]
【发布时间】:2018-01-24 11:59:36
【问题描述】:

如何一次获取 1 行?这是我现在拥有的 (http://prntscr.com/i4vqjs)。

我希望每个用户名都有自己的框。

我当前的代码是。

$sql = "SELECT * FROM points ORDER BY points DESC LIMIT 3;";
$result = mysqli_query($conn, $sql);
$resultCheck = mysqli_num_rows($result);

if ($resultCheck > 0) {
while ($row = mysqli_fetch_assoc($result)) {
echo $row['playername'] . "<br>"; 
}
}

我需要对我的脚本进行哪些更改才能实现这一点?

非常感谢!

【问题讨论】:

  • 更改限制
  • 您能否阐明“一次获取一行”的含义?您的 SQL 查询应该只返回一个结果,还是 PHP 代码一次应该遍历一个结果?此外,我更喜欢 PHP 数据库连接的面向对象风格,因为它可以让您更轻松地跟踪连接。
  • @FunkFortyNiner 我不想更改限制,因为我想为下面的框放置其他数据
  • 您的屏幕截图不支持您发布的代码,那么那些 div 在哪里?
  • 这些盒子的代码在哪里?

标签: php mysql database mysqli


【解决方案1】:

您必须拥有盒子设计 HTML 才能查看。尝试将框 HTML 放入循环中。我添加了简单的&lt;div&gt; 来代替您添加框 html。

while ( $row = mysqli_fetch_assoc($result) ) {
    echo '<div class="username-box">'.$row['playername'].'</div>'; 
}

我提到了 username-box 类的地方,通过 css 设计该类或使用您自己的设计。

我希望这会有所帮助:)

【讨论】:

  • 嘿,我做了这个,它有点工作,但是所有的盒子都是堆叠在一起的,我不知道如何分开它们。我试图编辑 margin-bottom 但没有运气。你知道如何解决这个问题吗?
【解决方案2】:

您还必须在 while 循环内渲染框。 示例

while ($row = mysqli_fetch_assoc($result)) {
    echo '<div class="box">' . $row['playername'] . "</div>"; 
}

【讨论】:

  • 嘿,我做了这个,它有点工作,但是所有的盒子都是堆叠在一起的,我不知道如何分开它们。我试图编辑 margin-bottom 但没有运气。你知道如何解决这个问题吗?
  • 您好,如果您尝试了我的解决方案,请确保您的 CSS 代码中有类似于 .box{ margin-bottom: 20px; }
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-10-15
  • 1970-01-01
  • 1970-01-01
  • 2015-02-12
  • 2012-07-18
  • 1970-01-01
  • 2017-05-16
相关资源
最近更新 更多