gpt4 book ai didi

php - 当变量值为空时排除变量

转载 作者:行者123 更新时间:2023-12-01 00:08:16 24 4
gpt4 key购买 nike

下面的代码效果很好。我有一个 MySQL 数据库,其中包含按不同类别分类的书名。在下面的代码中,变量“site”代表书名。每个类别由 MySQL 数据库中的不同表表示。

下面的代码按所有类别(MySQL 表)的总票数对排名前 25 位的书名(站点)进行排名。我试图排除空白书名(即当 site = '' 时)。我该怎么做?

我尝试在几个地方插入 WHERE site != '' 但我收到错误消息。所以我想我是在问,我可以在哪里插入 WHERE site != ''

提前致谢

约翰

<?

mysql_connect("mysqlv10", "username", "password") or die(mysql_error());
mysql_select_db("database") or die(mysql_error());

$result = mysql_query("SHOW TABLES");
$tables = array();
while ($row = mysql_fetch_assoc($result)) {
$tables[] = '`'.$row["Tables_in_bookfeather"].'`';

}

$subQuery = "SELECT site, votes_up FROM ".implode(" UNION ALL SELECT site, votes_up FROM ",$tables);
// Create one query that gets the data you need
$sqlStr = "SELECT site, sum(votes_up) sumVotesUp
FROM (
".$subQuery." ) subQuery
GROUP BY site ORDER BY sum(votes_up) DESC LIMIT 25";
$result = mysql_query($sqlStr);

$arr = array();
echo "<table class=\"samples2\">";
while ($row = mysql_fetch_assoc($result)) {
echo '<tr>';
echo '<td class="sitename2"><a href="booklookup3.php?entry='.urlencode($row["site"]).'&searching=yes&search=search">'.$row["site"].'</a></td>';
echo '<td>'.$row["sumVotesUp"].'</td>';
echo '</tr>';
}

echo "</table>";



?>

最佳答案

您不应该为每个图书类别设置单独的表格。我不敢相信你有这么多书,以至于这些表格中的任何一张都变得太大了。您可能通过拆分表获得的任何可伸缩性优势都被必须执行这些 UNION 查询的复杂性所抵消。

这是我要做的:

  • 将表格统一为一张表格。
  • 添加一个类别表。
  • 使用多对多表将书籍与类别相关联。

那么你的 SQL 查询就变得简单多了:

$sqlStr = "SELECT site, votes_up FROM Books
WHERE site IS NOT NULL AND site <> ''
ORDER BY votes_up DESC LIMIT 25";

关于php - 当变量值为空时排除变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1297138/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com