如何在while()中划分数据?

时间:2016-01-20 08:43:01

标签: php mysql sql

MYSQL代码

CREATE TABLE `images` (
  `id` bigint(20) NOT NULL,
  `merek` varchar(220) COLLATE latin1_general_ci NOT NULL DEFAULT '',
  `url` varchar(220) COLLATE latin1_general_ci NOT NULL DEFAULT ''
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;

INSERT INTO `images` (`id`, `merek`, `url`) VALUES
(1, 'gelang', 'Untitled-1.jpg'),
(2, 'gelang', 'Untitled-2.jpg'),
(3, 'gelang', 'Untitled-3.jpg'),
(4, 'gelang', 'Untitled-4.jpg'),
(5, 'gelang', 'Untitled-5.jpg');

和PHP代码

<?php
    $counter = 0;
    $max = 2;
    $query = "SELECT * FROM images ORDER BY RAND()";
    $result = $mysqli->query($query);
    while($row = $result->fetch_array(MYSQLI_BOTH) and ($counter < $max)){
    $url=$row['url'];
    echo $url;
    echo "and";
    }
?>

也许结果会像这样

  

Untitled-2.jpgUntitled-5.jpg以及

我想拆分Untitled-2.jpgUntitled-5.jpg。因此,Untitled-2.jpg使用class="first"。并Untitled-5.jpg使用class="second"。喜欢这个

       .....
        while($row = $result->fetch_array(MYSQLI_BOTH) and ($counter < $max)){
        $url=$row['url'];
        echo "<img src=$url class="first">;
        echo "<img src=$url class="second">;
        }
    ?>

我可以将数据与while()分开吗?

3 个答案:

答案 0 :(得分:2)

您需要在$counter循环中增加while值。

然后,您可以添加条件以添加所需的类。以下是更新后的代码:

while($row = $result->fetch_array(MYSQLI_BOTH) and ($counter < $max)){
    $url=$row['url'];

    $class = ($counter == 0) ? 'first' : 'second';

    echo "<img src='$url' class='$class'>";
    $counter++;
}

答案 1 :(得分:2)

在while循环中添加一个计数器。

检查奇怪的情况。

new FunctionYouPassedToService()

答案 2 :(得分:0)

这是最简短的方法

在while循环中写下这一行,并在img标记中定义$ className。

  

$ className =($ url =='Untitled-2.jpg')? '第一':   (($ url =='Untitled-5.jpg')?'second':'');

修改:

<?php
    $query = "SELECT * FROM images ORDER BY RAND()";
    $result = $mysqli->query($query);
    while($row = $result->fetch_array(MYSQLI_BOTH)){
    $url = $row['url'];
        $className = ($url=='Untitled-2.jpg') ? 'first' : (($url=='Untitled-5.jpg') ? 'second' : '');
        echo "<img src=$url class=$className>";
    }
?>