我正在尝试将每行的单元格0与浏览器语言返回的字符串进行比较。防爆。浏览器语言是“en”匹配第3行的“en”。$ row_num = 3.我的页面未加载,这使我相信while语句是无限循环的。
PHP
$i = 0;
while ($i <= mysql_num_rows($lang_head_foot)-1) {
if (substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2) == mysql_result($lang_head_foot, $i, 0)) {
$row_num = $i;
}
}
setcookie('dbs_lang', $row_num, time() + 60*60*24*365*10);
答案 0 :(得分:6)
您需要增加循环计数器:
$i = 0;
while ($i <= mysql_num_rows($lang_head_foot)-1) {
if (substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2) == mysql_result($lang_head_foot, $i, 0)) {
$row_num = $i++; // <-- increment loop counter
}
}
答案 1 :(得分:3)
改为使用for循环:
for($i=0; $i <= mysql_num_rows($lang_head_foot)-1; $i++) {
if (substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2) == mysql_result($lang_head_foot, $i, 0))
{
$row_num = $i;
}
}
setcookie('dbs_lang', $row_num, time() + 60*60*24*365*10);
答案 2 :(得分:0)
你不应该在while循环中递增$ i,以便在检查完所有行后退出吗?在这种情况下,也许for循环比while循环更好。