【发布时间】:2012-12-14 22:01:19
【问题描述】:
多少 SQL 查询太多了?我有以下一段代码,它在一个循环中,根据选择的月份在 28-31 次之间循环。它用于根据数据库中的日期更改 css 类。每次调用 $rows 变量时,它会重新运行查询吗?这段代码效率高吗?
$sql = ("SELECT * FROM dates WHERE dates.from<='".$date."' AND dates.to>='".$date."'");
$result = mysql_query($sql);
$rows = mysql_num_rows($result);
if ($rows >= 1)
{
$row = mysql_fetch_array($result);
if ($rows == 2)
$calendar .= '<td class="calendar-day-booked">';
else
{
if ($row['from'] == $date)
$calendar .= '<td class="calendar-day-from">';
elseif ($row['to'] == $date)
$calendar .= '<td class="calendar-day-to">';
else
$calendar .= '<td class="calendar-day-booked">';
}
}
else
$calendar.= '<td class="calendar-day">';
【问题讨论】:
-
代码imo效率没有问题
-
我在数据库中只看到一个查询。我错过了什么吗?
-
@MikeBrant OP 说他们在循环中拥有该代码。循环未显示。
-
好吧,我们不能很好地回答这个问题,那么我们可以。真正的问题归结为您能否在一个查询中获取所有数据,而不是需要使用 28-31 个查询。与其查看查询后发生的所有代码,不如查看循环和有关表中数据的信息。
-
您似乎可以轻松地减少代码,只需发送一个查询并在您的 php 代码本身中处理日期,但话又说回来,没有足够的信息可以确定您是否可以采用这种方法.另外,don't use
mysql_*functions.