【问题标题】:PHP for each on the while loop select from tablePHP for each on while 循环从表中选择
【发布时间】:2014-02-04 01:41:56
【问题描述】:

以下代码有问题。我想先从 DB 中选择并获取一些数组,然后根据数组中的每个元素从同一个表中选择。

问题 1:第二个 select 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>';
    }
}
?> 

【问题讨论】:

  • 在查询中使用 mysql distinct cloumn
  • 阅读无格式代码我的眼睛流血:P
  • @AwladLiton,帮助很大。我想知道你为什么不把它作为答案。
  • $LibSection = array(); 在向其推送值之前会很好。另外 - 不需要 2 个循环。
  • @Yani 我如何杀死一个循环并仍然获得相同的结果?

标签: php mysql sql arrays


【解决方案1】:

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

SELECT DISTINCT * FROM Table_NAME where condition=value;

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

【讨论】:

    【解决方案2】:

    我想你可以通过使用 MySQL DISTINCT 操作符来跳过这个问题。

    这是一个有用的教程:

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

    【讨论】:

      猜你喜欢
      • 2014-01-16
      • 2013-06-02
      • 2014-03-15
      • 1970-01-01
      • 2013-06-12
      • 2015-11-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多