dongweicha6077 2012-10-12 15:30
浏览 26
已采纳

从mysql库到页面的回显数据

I have this query:

$query = "SELECT ads.*,
       trafficsource.name AS trafficsource,
       placement.name AS placement,
       advertiser.name AS advertiser,
       country.name AS country
       FROM ads
           JOIN trafficsource ON ads.trafficsourceId = trafficsource.id
           JOIN placement ON ads.placementId = placement.id
           JOIN advertiser ON ads.advertiserId = advertiser.id
           JOIN country ON ads.countryId = country.id
       WHERE advertiserId = '$advertiser_id'";

and ads table

ads Table
      ad_id PK
      size
      price
      trafficsourceId FK
      placementId FK
      advertiserId FK
      countryId FK

For getting data I'm using

$result = mysql_query($query) or die('Invalid query: ' . mysql_error());
    while ($row = mysql_fetch_assoc($result)) {

}

I cant figure out how I need to print page so that it's not looking like rows but also need id's of for example trafficsource name. I want to make something like that:

EDITED:

<div id="adscontent">
    <h1>Advertiser:</h1> Advertiser name
    <h2>Traffic Sources:</h2> Company1, Company2, Company 3
    <h2>Placements:</h2> Like: Newspaper, radio, website, bla bla
</div>

Thanks

  • 写回答

1条回答 默认 最新

  • dounao2829 2012-10-12 15:44
    关注

    You will need to play around with the printout but I think something like this will work:

    $results = array();
    while ($row = mysql_fetch_assoc($result)) {
        $results[$row['advertiser']]['countries'][]      = $row['country'];
        $results[$row['advertiser']]['trafficsources'][] = $row['trafficsource'];
        $results[$row['advertiser']]['placements'][]     = $row['placement'];
    }
    
    // And now print the data
    foreach ($results as $arvertiser => $data)
    {
        echo "<h1>{$advertiser}</h1>";
    
        // Print Placements
        echo "Placements: " . implode(", ", $data['placements']) . '<br />;
    
        // Print Countries
        echo "Countries: " . implode(", ", $data['countries']) . '<br />;
    
        // Print Placements
        echo "Traffic Sources: " . implode(", ", $data['trafficsources']) . '<br />;
    
    }
    

    EDIT: If you need to add the IDs you will need to change your select to:

    $query = "SELECT ads.*,
           trafficsource.name AS trafficsource,
           trafficsource.id AS trafficsourse_id,
           placement.name AS placement,
           placement.id AS placement_id,
           advertiser.name AS advertiser,
           advertiser.id AS advertiser_id,
           country.name AS country
           country.id AS country_id
           FROM ads
               JOIN trafficsource ON ads.trafficsourceId = trafficsource.id
               JOIN placement ON ads.placementId = placement.id
               JOIN advertiser ON ads.advertiserId = advertiser.id
               JOIN country ON ads.countryId = country.id
           WHERE advertiserId = '$advertiser_id'";
    

    From then on you can include this information in the $results array like so:

    $results[$row['advertiser']['countries'] = array(
                                                   'id'    => $row['country_id'], 
                                                   'value' => $row['country')
                                               );
    

    and print out whatever you need from there.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 深度学习根据CNN网络模型,搭建BP模型并训练MNIST数据集
  • ¥15 lammps拉伸应力应变曲线分析
  • ¥15 C++ 头文件/宏冲突问题解决
  • ¥15 用comsol模拟大气湍流通过底部加热(温度不同)的腔体
  • ¥50 安卓adb backup备份子用户应用数据失败
  • ¥20 有人能用聚类分析帮我分析一下文本内容嘛
  • ¥15 请问Lammps做复合材料拉伸模拟,应力应变曲线问题
  • ¥30 python代码,帮调试,帮帮忙吧
  • ¥15 #MATLAB仿真#车辆换道路径规划
  • ¥15 java 操作 elasticsearch 8.1 实现 索引的重建