由于以下代码中的错误,我真的很难点击我的服务器:
$qqq = mysql_query("SELECT * FROM coupons WHERE dateExp > CURDATE()");
$isExpired = array();
while($row = mysql_fetch_array($qqq))
{
$isExpired[] = $row;
}
foreach($isExpired as $exp)
{
if($exp['id'] == $coupID)
{
$expiredConf = 1;
}
}
if($expiredConf == 1)
{
echo "<link rel='stylesheet' href='grey.css' type='text/css' />";
}
else
{
echo "<link rel='stylesheet' href='coupStyle.css' type='text/css' />";
}
我已经写过这样的代码一百次了,我把它与我的旧例子进行了比较,但是我无法弄清楚是什么导致了这么大的问题。
答案 0 :(得分:1)
我不确定这对周围的代码有什么用处,但是如果这部分没有影响到任何其他区域,你可以真正地压缩它:
$result = mysql_result(sprintf("SELECT id FROM coupons WHERE id = %d AND dateExp > CURDATE()",
mysql_real_escape_string($coupID)));
if(!$result){
$url = 'coupStyle';
} else {
// Found result
$url = 'grey';
}
echo '<link rel="stylesheet" href="'.$url.'" type="text/css" />';
如果您不需要从表中选择每一列,请尝试仅放下一列,如果可能,请设置表的ID。此外,通常建议避免在select中使用*
,而是指定所需的列。
答案 1 :(得分:0)
也许您应该稍微更改一下代码,因为使用大数组总是很慢:
while($row = mysql_fetch_array($qqq))
{
$isExpired[] = $row;
if($row['id'] == $coupID)
{
$expiredConf = 1;
}
}
除此之外,你的代码看起来很好。你在这个记录集中有多少条记录?
答案 2 :(得分:0)
您可以减少以上代码行,不需要额外的一个foreach循环
while($row = mysql_fetch_array($qqq))
{
$isExpired[] = $row;
if (in_array($coupID,$row))
{
$expiredConf = 1;
}
}