【问题标题】:Show result of MYSQL select query in two div according to column name, using a single select query根据列名在两个div中显示MYSQL select查询的结果,使用单个select查询
【发布时间】:2023-04-09 04:44:01
【问题描述】:

我有一个表,其列名称为 idnamecategorytitlenews。执行选择查询后,我从表中获取所有必需的数据,但我需要根据它们所属的类别将这些数据分成两个 div。有两个不同的类别,比如 A 和 B。

我需要在一个 div 中显示列类别名称为 A 的所有数据,并且与类别 B 相同。

$sql= "SELECT id, title ,news ,category FROM news  ";
$query=mysql_query($sql, $ex)or die(mysql_error())  ;
while($row=mysql_fetch_assoc($query)){ 
    $title=$row['title']; 
    if($row['category']==' Latest News'){
        echo $row['title'];
    }
}

我的代码不起作用。有什么想法吗?

【问题讨论】:

  • $query=mysql_query($sql, $ex) 已弃用 mysql函数。 echo $title=$row['title']; 这行得通吗? 如果是这样,那么就是严格的比较排除了当然的空白
  • 显示示例数据和更多代码。我没有看到在 div 上分发数据的尝试。

标签: php mysql mysql-select-db


【解决方案1】:

您可以先将类别数据分离到单独的数组中。

$cat1 = array();
$cat2 = array();

$sql="SELECT id, title, news, category FROM news";

$query = mysql_query($sql, $ex) or die(mysql_error());

if(mysql_num_rows($query) > 0)
{
    while($row = mysql_fetch_assoc($query))
    { 

        if($row['category'] == 'A')
        {
            $cat['title'] = $row['title'];
            $cat['news'] = $row['news'];
            $cat1[] = $cat;
        }
        else
        {
            $cat['title'] = $row['title'];
            $cat['news'] = $row['news'];
            $cat2[] = $cat;
        }

    }
}

然后你可以使用foreach将数据打印到单独的div

if(count($cat1) > 0)
{
    foreach($cat1 as $category1_data)
    {
    echo "<div class='cat1'>";
    // data of category A
    echo "</div>";
    }
}

if(count($cat2) > 0)
{
    foreach($cat2 as $category2_data)
    {
        echo "<div class='cat2'>";
        // data of category B
        echo "</div>";
    }
}

【讨论】:

    猜你喜欢
    • 2017-04-05
    • 2012-03-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-01
    • 1970-01-01
    • 2021-11-09
    • 1970-01-01
    相关资源
    最近更新 更多