回声来自MYSQL的第一个结果与所有其他结果不同

时间:2014-05-04 21:33:38

标签: php mysql

我有一个mysql表,其中包含视频标题,视频嵌入HTML,视频描述和视频缩略图。我希望它输出第一个条目为;

$result = mysqli_query($con,"SELECT * FROM entries");
while($row = mysqli_fetch_array($result)) {
  echo $row['title'];
  echo $row['html'];
  echo $row['desc'];
}

之后,我希望它输出接下来的五个条目为

$result = mysqli_query($con,"SELECT * FROM entries");
while($row = mysqli_fetch_array($result)) {
  echo $row['title'];
  echo "<a href='". $row['id'] . "'><img src='" . $row['thu'] . "'></a>";
}

然而我不知道该怎么做。当涉及到mysql时,我就是一个新手。任何帮助将不胜感激。

我已经看过其他类似的问题,但没有一个真正适合这个法案。

3 个答案:

答案 0 :(得分:2)

穷人的解决方案就像:

$result = mysqli_query($con,"SELECT * FROM entries");
$first = true;
while($row = mysqli_fetch_array($result)) {

  if ($first) {
    echo $row['title'], $row['html'], $row['desc'];
    $first = false;
    continue 2;
  }

  echo $row['title'], "<a href='{$row[id]}'><img src='{$row[thu]}'></a>";  
}

(如PHP聊天室中所述)

答案 1 :(得分:1)

由于mysqli_fetch_array()会让你排成一行,你可以在while()之前使用它,而不会出现这样的问题

$result = mysqli_query($con,"SELECT * FROM entries");
$row = mysqli_fetch_array($result);
echo $row['title'];
//etc.
while($row = mysqli_fetch_array($result)) {
  echo $row['title'];
  echo "<a href='". $row['id'] . "'><img src='" . $row['thu'] . "'></a>";
}

答案 2 :(得分:1)

使用哨兵值跟踪

$i = 0;
while($row = mysqli_fetch_array($result)) {
  if($i == 0){
    //first iteration
    echo $row['title'];
    echo $row['html'];
    echo $row['desc']; 
  }else{
    echo $row['title'];
    echo "<a href='". $row['id'] . "'><img src='" . $row['thu'] . "'></a>";
  }
  $i++;//increment value
}