【问题标题】:PHP Manipulating MySQL Results? [closed]PHP 操纵 MySQL 结果? [关闭]
【发布时间】:2018-06-05 01:59:59
【问题描述】:

我需要一些简单的帮助!

我的数据库中有这张表,其中存储了许多图像,称为“封面”。

然后我有一个 HTML 表格,在其中一个单元格中显示了这个 MySQL 表格的封面。

像这样:

<td><a href="movie.php?id=<?php echo $idt + 1; ?>">
<?php echo '<img src="'.htmlentities($idt + 1['cover'], ENT_QUOTES, 'UTF-8').'" alt="Cover" style="max-width:300px;max-height:300px;" />';; ?></a></td>

这是之前的代码

$req = mysql_query("select id, name, year, genre, cover from movies");
$dnn = mysql_fetch_array($req);
$idt = $dnn['id'];

但是当我尝试通过放置这个来动态更改 id 时为什么它不起作用?

$idt + 1;

【问题讨论】:

  • $idt + 1['cover'] 甚至不是有效代码。你想做什么?
  • $idt 将是从数据库中获取的id。增加该值不会自动获取另一条记录。您需要构建一个循环来获取多条记录。
  • 这不起作用,变量不以整数 $idt + 1['cover'] 开头。而且它不是有效的代码。
  • 通过增加$idt,您试图实现什么?您是否尝试遍历结果集中的所有行?如果是这样,您需要使用不同的方法。另请注意,mysql_* 是已弃用的函数。
  • @showdev 然后我用while循环吗?

标签: php mysql html-table


【解决方案1】:

为了从多行输出数据,我建议使用这样的循环:

while ($row = mysql_fetch_assoc($req)) {

  ?><td>
    <a href="movie.php?id=<?php echo $row['id']; ?>">
      <img src="<?php echo htmlentities($row['cover'], ENT_QUOTES, 'UTF-8'); ?>" alt="Cover" />
    </a>
  </td><?php

}

【讨论】:

  • 请不要使用被标记为已弃用的 mysql_* 函数,请改用 mysqli_*
  • 同意。但是,这是试图帮助 OP 编写代码,而不是建议如何使用更现代的技术进行重写。
【解决方案2】:

您需要获取一整套结果,而不仅仅是一个 id 并在视图中增加它。你应该像这样在 $idt 上做一个 foreach 循环:

foreach($dnn as $row){
$id=$row['id'];
$cover=$row['cover'];
$genre=$row['genre'];
//etc...
//now echo html with vars like this:
echo "<img src=\"$cover\"/>";
}

【讨论】:

  • 这行不通,因为 $idt 是整数而不是数组
  • 我的错,我的意思是 $dnn
  • 我相信mysql_fetch_array() 只获取结果集的一行。因此,正如目前所写的那样,$dnn 将只包含该集合的第一行。您正在遍历第一行的每一列。您需要遍历行本身,从每一行输出数据。
猜你喜欢
  • 2019-08-08
  • 2013-01-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多