每个while循环的PHP都从表中选择

时间:2014-02-03 17:21:19

标签: php mysql sql arrays

我遇到以下代码时遇到问题。我想首先从DB中选择并得到一些数组,之后根据数组中的每个元素从同一个表中选择。

问题1:第二个选择while循环只返回表中的一行,因为有多个行匹配我正在选择的行。我想为第一个while循环中的每个返回行返回五行。

Q.1我的代码出了什么问题?

问题二:我正在从具有重复内容的列构建数组。例如 返回的结果可能是:

[Array]
1.John
2.Cane
3.Mary
4.John.

现在当john重复时,我得到的结果与在'1'处返回的结果相同。我知道这是预料之中的。

Q2:我如何避免连续选择相同的内容?

注意:我知道已弃用的mysql。

PHP代码

<?php
require_once 'php/db_conx.php';
$log = mysql_query("SELECT * FROM ads WHERE section != ''") or die(mysql_error());
while ($row = mysql_fetch_array($log)) {
    $LibSection[] = $row['section'];
}
foreach ($LibSection as $Section) {
    $log2 = mysql_query("SELECT * FROM ads WHERE section = '$Section' limit 5") or die(mysql_error());
    include_once 'php/Random_color.php';
    while ($row = mysql_fetch_array($log2)) {
        echo '<a class="LibSectOpen">
<span style="display:none" class="SectionName">' . $Section . '</span>
<div class="LibrarySects"><div class="LibrarySectsHeader">' . $Section . '</div><div class="LibrarySectsShelf">
<div class="LibrarySectsShelf_Book" style="background-color:' . $Color . '" title="Author: ' . $row['bbookauthor'] . '">' . $row['bbookname'] . '</div></div></div></a>';
    }
}
?> 

2 个答案:

答案 0 :(得分:0)

我认为您可以使用MySQL DISTINCT运算符来跳过此问题。

这是一个有用的教程:

http://www.mysqltutorial.org/mysql-distinct.aspx

答案 1 :(得分:0)

您需要选择不同的值,因此请使用它:

SELECT DISTINCT * FROM Table_NAME where condition=value;

可能的解决方案是W3schools.com- distinct example