存储和处理MySQL结果

时间:2013-08-19 15:17:25

标签: php html mysql

所以,我正在学习 PHP MySQL ,但我在这里遇到了一些问题。

我确实缺少一些信息,所以这对我非常有帮助=)

我对我的数据库进行查询,并得到一个结果。这个结果是我列出的所有图像文件。

$fileSQL = $mysqli->query("
    SELECT *
    FROM content
    WHERE projID=$projectID     
");

所以,如果我想在我的页面上将所有文件列为缩略图,我会这样做:

<?php while($row = $fileSQL->fetch_assoc()){ ?>
    <img src="assets/<?=$row['contentFull']?>" id="thumbImg"
    onclick="document.getElementById('mainImage').src=this.src" width="110px" height="62px"/>           
<?php } ?>

现在,这当然可行。它遍历所有行,同时为每个行添加一个。

但是,我也有一个主图像,我需要完整显示第一个拇指(对于这个例子,我使用contentFull拇指和全尺寸)。

现在,我如何获得第一行的contentFull,而不使while循环从第nr行开始?

总的来说;在这些情况下,最好的办法是什么?首先将结果存储到数组中,这样我就可以轻松访问它,或者执行它的“正常”方式是什么? =)

我需要什么:

  1. 查询
  2. 设置主图像(使用contentFull从第一个开始 我的sql结果中的图像/内容)
  3. 然后绘制所有图像     结果缩略图(包括已经显示为的第一个缩略图)     主图)
  4. 提前致谢,如果您需要更多信息,请告诉我们=)

2 个答案:

答案 0 :(得分:1)

一个简单的选择是:

<?php 
$first = null;
while($row = $fileSQL->fetch_assoc()) {
    if(!isset($first)) $first = $row;
    ?>
    <img src="assets/<?=$row['contentFull']?>" id="thumbImg"
    onclick="document.getElementById('mainImage').src=this.src" width="110px" height="62px"/>           
<?php } ?>

现在您将第一行存储在要使用的变量中,而不必将所有结果存储在数组中。如果由于某种原因你想要存储在数组中的所有行,你可以简单地这样做:

<?php 
$rows = array();
while($row = $fileSQL->fetch_assoc()) {
    $rows[] = $row;
    //rest of code
}
?>

然后您可以通过引用$rows[0]

来访问第一行

另一种选择是不使用php来填充完整的图像。而是使用javascript调用来填充第一张图片。

答案 1 :(得分:0)

我认为您可以在while循环之外拍摄第一张照片:

$row = $fileSQL->fetch_assoc(); // the first picture
if($row){
  // show first image if it exists
  }

while ( $row = $fileSQL->fetch_assoc()) // etc.

较大图像的代码可能与其他图像不同,因此可能是合理的。如果没有,请考虑定义一个函数,或者使用一个计数器(或者像Pitchinnate的answer中那样的标记)。