想要使用 sql 和 php 仅显示所选值的行
P粉007288593
P粉007288593 2023-09-02 15:25:33
0
2
585
<p>我有 40 个提供商和 10,000 个产品,但我想显示每个提供商的 1 个产品</p> <table class="s-table"> <thead> <tr> <th>品牌</th> <th>提供商</th> <th>产品</th> <th>网址</th> </tr> </thead> <tbody> <tr> <td>闪电</td> <td>务实的游戏</td> <td>命运夫人</td> <td>链接</td> </tr> <tr> <td>闪电</td> <td>Isoftbet</td> <td>万圣节杰克</td> <td>链接</td> </tr> <tr> <td>闪电</td> <td>务实的游戏</td> <td>甜蜜的富矿</td> <td>链接</td> </tr> <tr> <td>闪电</td> <td>Isoftbet</td> <td>热带保安</td> <td>链接</td> </tr> <tr> <td>闪电</td> <td>网络</td> <td>皇家马铃薯</td> <td>链接</td> </tr> <tr> <td>闪电</td> <td>网络</td> <td>命运夫人</td> <td>链接</td> </tr> </tbody> </table> <p>这就是我现在的 SQL 表。但我想显示每个提供商的 1 项,例如:</p> <table class="s-table"> <thead> <tr> <th>品牌</th> <th>提供商</th> <th>产品</th> <th>网址</th> </tr> </thead> <tbody> <tr> <td>闪电</td> <td>务实的游戏</td> <td>命运夫人</td> <td>链接</td> </tr> <tr> <td>闪电</td> <td>Isoftbet</td> <td>万圣节杰克</td> <td>链接</td> </tr> <tr> <td>闪电</td> <td>网络</td> <td>皇家马铃薯</td> <td>链接</td> </tr> </tbody> </table> <p>这是我的代码 `</p> <pre class="brush:php;toolbar:false;"><?php /* Attempt MySQL server connection. Assuming you are running MySQL server with default setting (user 'root' with no password) */ $link = mysqli_connect("localhost", "newuser1", "p,+Dn@auTD3$*G5", "newdatabse"); // Check connection if($link === false){ die("ERROR: Could not connect. " . mysqli_connect_error()); }// 尝试执行选择查询 $sql = "SELECT * FROM 表名 WHERE Brand='Coolcasino' and Provider IN ('Pragmatic Play','Isoftbet','Netent') ;"; if($结果 = mysqli_query($link, $sql)){ 如果(mysqli_num_rows($结果)> 0){ echo "<表>"; 回声“”; echo“第<品牌>”; echo“第<提供者>”; echo“第<产品>”; echo“第URL”; 回声“”; while($row = mysqli_fetch_array($result)){ 回声“”; 回显“” 。 $row['品牌'] 。 “</td>”; 回显“” 。 $row['提供商'] 。 “</td>”; 回显“” 。 $row['产品'] 。 “</td>”; 回显“” 。 $row['URL'] 。 “</td>”; 回声“”; } 回显“”; // 关闭结果集 mysqli_free_result($结果); } 别的{ echo“没有找到与您的查询匹配的记录。”; } } 别的{ echo“错误:无法执行$sql。 ” 。 mysqli_error($link); } // 关闭连接 mysqli_close($link); ?></pre> <p>如果有人可以的话请帮助我`</p>
P粉007288593
P粉007288593

全部回复(2)
P粉939473759

将您的查询替换为

$sql = "SELECT * FROM tablename WHERE Brand='Coolcasino' and Provider IN ('Pragmatic Play','Isoftbet','Netent') GROUP BY  Provider;";
P粉317679342

使用行号:

select Brand,
       Provider,
       Product,
       URL
from (   select Brand,
                Provider,
                Product,
                URL,
                row_number() over(partition by Provider order by rand()) as row_num
         from tablename
         where Brand='Lightning' 
         and Provider IN ('Pragmatic Play','Isoftbet','Netent') 
      ) as rand_prod
where row_num=1;

https://dbfiddle.uk/BGzx6cYY

注意,我建议不要使用 select * ,仅选择您真正需要的列

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!