Php 多少sql查询太多?
多少SQL查询太多?我有下面一段代码,它在一个循环中,根据所选月份的不同循环28-31次。它用于根据数据库中的日期更改css类。每次调用$rows变量时,它是否重新运行查询?这个代码有效吗Php 多少sql查询太多?,php,mysql,sql,Php,Mysql,Sql,多少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);
$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">';
$sql=(“选择*日期,其中dates.FROM=”“$date.”);
$result=mysql\u查询($sql);
$rows=mysql\u num\u rows($result);
如果($rows>=1)
{
$row=mysql\u fetch\u数组($result);
如果($rows==2)
$calendar.='';
其他的
{
如果($row['from']==$date)
$calendar.='';
elseif($row['to']==$date)
$calendar.='';
其他的
$calendar.='';
}
}
其他的
$calendar.='';
对于什么太多,没有明确的答案,因为有太多的参数,例如有多少用户,您的数据库在哪种硬件上,等等
如果您的问题是“这对最终用户来说会不会太慢?”那么您应该分析代码,并查看其执行情况
要回答您关于是否每次分配$rows的问题,是否有查询,答案是“是”-您将在每次获得$rows时运行SQL查询
主观上,我认为这是低效的。如果这是我的代码,我会重写它,让SQL获得整个月份(例如,相应地设置日期范围),然后用PHP处理返回的数据,循环处理数据并一次处理整个月份。我可能会在返回的数据上循环一次,构建一个围绕日期键入的数组,然后将其一起内爆。代码的效率没有问题,我只看到数据库上的一个查询。我遗漏了什么吗?@MikeBrant OP说他们在一个循环中有那个代码。循环没有显示。我们不能很好地回答这个问题,那么我们可以吗。实际上,问题可以归结为:与需要使用28-31个查询相比,您能在一个查询中获得所有数据吗。与其查看查询后发生的所有代码,不如查看循环和表中数据的相关信息。似乎您可以轻松地将代码简化为只发送一个查询并处理php代码本身中的日期,但是,没有足够的信息来确定你是否可以采取这种方法。也。