我有一个数组,我循环.我有另一个数组,我需要逐个选择它,但它需要继续循环,以防它到达数组的末尾.这里要说清楚一些代码:
$mainArray = array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
$size = count($mainArray);
$circular = array('A', 'B', 'C');
for($i = 0; $i < $size; $i++) {
echo $mainArray[$i] . ' = ' . $circular[$i] . ', ';
}
Run Code Online (Sandbox Code Playgroud)
现在上面的代码打印出来:
1 = A, 2 = B, 3 = C, UNDEFINED INDEX ERROR
Run Code Online (Sandbox Code Playgroud)
我需要打印的是这样的:
1 = A, 2 = B, 3 = C, 4 = A, 5 = B, 6 = C, 7 = A, 8 = B, 9 …Run Code Online (Sandbox Code Playgroud) 我有几个表可以是ENUM类型或INT类型的列.我倾向于总是使用整数类型,假设基于它执行搜索会更快.
例如我的表中的一个具有列:StatusType其可具有仅4个可能的值:Completed,In Progress,Failed,Todo.
而不是将上面存储为ENUM字符串,我将它们存储为:
1,2,3,4分别.然后在我的PHP代码中,我有常量变量来定义这些值,如下所示:
define('COMPLETED', 1);
define('IN_PROGRESS', 2);
define('FAILED', 3);
define('TODO', 4);
Run Code Online (Sandbox Code Playgroud)
现在我的问题是,我是以正确的方式做的还是我应该将其更改为ENUM类型并使用字符串来比较查询?我有许多其他列只能有一组最大4-5可能值.
我正在重构一些代码,发现了一些我从未见过的东西.该功能用于用户在用户登录时设置cookie:
function setUserCookie($name, $value) {
$date = date("D, d M Y H:i:s",strtotime('1 January 2015')) . 'GMT';
header("Set-Cookie: {$name}={$value}; EXPIRES{$date};");
}
Run Code Online (Sandbox Code Playgroud)
既然我已被分配到重构代码我计划使用的setcookie功能基本上根据php.net做同样的事情.
我的问题是:两者之间有什么区别,我应该使用哪一个?
注意:这段代码是很久以前编写的,所以我假设那时候setcookie不存在?
我使用jquery蒙面输入插件,需要一个具有以下格式的手机字段:
1 (222) - 000 - 1114
Run Code Online (Sandbox Code Playgroud)
我的代码看起来像这样:
$("#myPhone").mask("9 (999) - 999 - 9999");
Run Code Online (Sandbox Code Playgroud)
现在我似乎无法让它工作,使第一个数字可选,但其余的强制性.所以以下数字是有效的:
1 (222) - 000 - 1114
(222) - 000 - 1114
Run Code Online (Sandbox Code Playgroud)
以下数字无效
1 (222) - 000 - 11
(222) - 00 - 0011
Run Code Online (Sandbox Code Playgroud)
使用"?9(999) - 999- 9999"将不起作用,因为它使整个事物成为可选的
如果这不能在蒙面中完成,有人可以通过正则表达式来帮助我实现这一目标吗?
explain
SELECT COUNT(*) AS Count, CreatedBy
FROM `Notes`
INNER JOIN Users ON UserID = CreatedBy
INNER JOIN UserRoles ON URoleID = RoleID AND RoleID = 1
WHERE NoteVisible = 1 AND NoteText NOT LIKE '%SOME KEYWORD%'
AND Created BETWEEN '2014-02-24 00:00:00' AND '2014-02-24 23:59:59'
GROUP BY CreatedBy
Run Code Online (Sandbox Code Playgroud)

如您所见,ref为NULL并且经过23行而不是仅通过1行.现在对于这个例子来说这很快但是当我做1-2个月的范围时,行变为> 10000并且它减慢了页面的速度并且锁定了表格.
注意如果我删除00:00:00和23:59:59然后它使用索引它只通过1行但我需要选择从00:00开始到23:59结束的整天的所有数据.
请帮我重构此查询以解决此问题或建议任何可能的解决方案.谢谢.
编辑
用<或>或<=或>替换BETWEEN不能解决问题
在我的本地机器上,以下工作完美:
<VirtualHost *:80>
##ServerAdmin postmaster@dummy-host2.localhost
DocumentRoot "C:/xampp/htdocs/website_1"
ServerName testpage.com/website_1
##ServerAlias www.recruitement.localhost
##ErrorLog "logs/dummy-host2.localhost-error.log"
##CustomLog "logs/dummy-host2.localhost-access.log" combined
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)
Howerver Im将我的网站托管给托管公司justhost.com,他们不允许我修改httpd-vhosts.conf或httpd.conf.现在我的整个网站都经过编码,以便website_1下的文件引用website_1下的其他文件,使用简单的斜杠"/"表示website_1被视为文档根目录.这在本地机器上运行得很好但是当上传到主机时它给我服务器错误,因为它无法找到文件,因为它试图在public_html中找到这些文件
例如:
public_html
- website_1
- script.php
- style.css
Run Code Online (Sandbox Code Playgroud)
在我的script.php里面:
<a href="/style.css">See My Style</a>
Run Code Online (Sandbox Code Playgroud)
这在本地机器上运行良好,但在主机上它失败,因为它试图在public_html下找到style.css 而不是public_html/website_1
有没有办法在不使用VHost的情况下拥有多个文档根?喜欢使用.htaccess或其他东西.我想尽量避免重写代码,因为它大约有10万行代码.
我的查询:
COUNT(
CASE WHEN YEAR(FieldValue) = YEAR(CURDATE())
AND MONTH(FieldValue) = MONTH(CURDATE())
THEN 1
END
) AS mtd
Run Code Online (Sandbox Code Playgroud)
我想要的东西:
COUNT(
CASE WHEN YEAR(FieldValue) = YEAR(CURDATE())
AND MONTH(FieldValue) = MONTH(CURDATE())
THEN DISTINCT ColumnID
END
) AS mtd
Run Code Online (Sandbox Code Playgroud)
这给出了一个错误.我不能使用GROUP BY.如果我在CASE之前添加DISTINCT它不起作用,它将FieldValue列视为DISTINCT,但我希望它将ColumnID计为不同.
请帮忙
我正在使用pnotify插件向用户显示通知.但是,如果用户通过单击X图标关闭1选项卡中的通知,我想删除所有选项卡上的通知.
我为此使用localstorage,每次向用户显示新通知时,都会将其添加到localStorage.当用户按下X图标时,我这样做localStorage.removeItem(key).如何收听此事件以关闭所有标签中的通知?
我的听众如下:
$(window).bind('storage', function(e) {
// if it was removed
if (e.originalEvent.newValue == null) {
var notificationObject = e.originalEvent.oldValue;
// call remove function on pnotify object
notificationObject.remove();
}
});
Run Code Online (Sandbox Code Playgroud)
我注意到newValue如果被删除就变成null,理论上它可以工作(尚未测试),但是如果在该项目上调用removeItem,它是否总是会返回null?如果项目值更改为什么null,那么它将触发该事件,因为值已更改为正确?
我有一个功能,用户可以上传html文件,然后我通过PHP读取其内容,并将其作为字符串发送到第三方API.在我将其发送到API之前,我想生成他们上传到用户的HTML的预览,以便他们可以按"确认"按钮发送它.
HTML文件应该主要是字母模板,但是用户可以在显示预览时修改html并添加一些脚本标签或注入可能损害我网站的其他恶意代码.有没有办法可以避免这种情况?
我考虑过剥离标签,但是如果他们在html元素中有onclick事件呢?
我试图在单击按钮的正下方放置一个对话框.下列:
$(document).on('click', '.my_buttons', function(e){
$('#my_dialog').dialog("option", "position", [e.pageX, e.pageY]);
$('#my_dialog').dialog('open');
});
Run Code Online (Sandbox Code Playgroud)
当页面上出现具有该类名称的多个按钮时,它无法正常工作.它显示最后一个按钮下方的对话框,而不是单击的按钮.没有我必须在每个按钮上添加ID属性的任何方法来解决这个问题?
此外,只有一个按钮,上面的工作正常,它显示在该按钮下方,但它取决于我点击的按钮的哪个部分.如果我点击按钮的顶角,对话框会略微重叠该按钮.如何使它不与点击的按钮重叠?
谢谢你的帮助