如何通过使用php手动触发它来使我的服务器运行php脚本?基本上我有一个相当大的cronjob文件,每2小时运行一次,但我希望能够自己手动触发文件,而不必等待它加载(我希望它在服务器端完成).
编辑:我想从php文件执行文件...不是命令行.
我将开发服务器上的数据库表与实时服务器进行比较,查找列名称更改,新列和已删除的列.我想做这样的事情:
SELECT GROUP_CONCAT(Field) FROM (SHOW COLUMNS ON table_name) GROUP BY Field
Run Code Online (Sandbox Code Playgroud)
我所追求的是一个以逗号分隔的列表,然后我可以将其带到实时服务器并执行:
SHOW COLUMNS FROM table_name WHERE NOT IN ([comma-delimited list from above query])
Run Code Online (Sandbox Code Playgroud)
关于如何最好地做到这一点的任何想法 - 通过我自己的方法纠正我,或通过另一种方式一起完成?显然,上面的SQL不起作用.
注意:服务器是完全独立的,可能无法相互通信,因此无法直接比较.
编辑
谢谢你的回答,伙计们!应用您对问题的答案,这是我获取列名的最终SQL:
SELECT CONCAT("'", GROUP_CONCAT(column_name ORDER BY ordinal_position SEPARATOR "', '"), "'") AS columns
FROM information_schema.columns
WHERE table_schema = 'db_name' AND table_name = 'tbl_name'
Run Code Online (Sandbox Code Playgroud)
这给了我一个如下所示的列表:
'id', 'name', 'field1', 'field2'
Run Code Online (Sandbox Code Playgroud)
然后我可以使用此查询进行比较:
SELECT GROUP_CONCAT(column_name ORDER BY ordinal_position)
FROM information_schema.columns
WHERE table_schema = 'db_name' AND table_name = 'tbl_name' AND column_name NOT IN ('id', 'name', 'field1', …
Run Code Online (Sandbox Code Playgroud) 在具有以下格式和示例数据的大型用户数据库中,我们正在尝试识别重复的人:
id first_name last_name email
---------------------------------------------------
1 chris baker
2 chris baker chris@gmail.com
3 chris baker chris@hotmail.com
4 chris baker crayzyguy@crazy.com
5 carl castle castle@npr.org
6 mike rotch fakeuser@sample.com
Run Code Online (Sandbox Code Playgroud)
我使用以下查询:
SELECT
GROUP_CONCAT(id) AS "ids",
CONCAT(UPPER(first_name), UPPER(last_name)) AS "name",
COUNT(*) AS "duplicate_count"
FROM
users
GROUP BY
name
HAVING
duplicate_count > 1
Run Code Online (Sandbox Code Playgroud)
这很好用; 我得到一个重复列表,其中包含所涉及行的ID号.
我们会将绑定到副本的任何关联数据重新分配给实际的person(set user_id = 2 where user_id = 3
),然后我们删除重复的用户行.
麻烦发生在我们第一次发布此报告之后,因为我们在手动验证它们确实是重复之后清理列表 - 有些不重复.有两个Chris Bakers是合法用户.
我们不希望在随后的重复报告中看到Chris Baker,直到时间结束,所以我正在寻找一种方法来标记用户ID 1和用户ID 4不是彼此重复的未来报告,但他们可以被以后添加的新用户复制.
我尝试了什么
我is_not_duplicate
在用户表中添加了一个字段,但是如果一个新的副本"Chris Baker"被添加到数据库中,它将导致这种情况不会显示在重复的报告上; 在is_not_duplicate
不当排除其中的一个帐户.在有两个重复的Chris …
我正在研究一个动态查询,它使用变量来指定表,字段/列和要搜索的值.我已经让查询在没有变量的情况下按预期工作,在phpMyAdmin(手动输入查询)和代码中通过将变量连接成一个完整的查询.
但是,当我使用bindParam()
或bindValue()
绑定变量时,它返回一个空数组.
这是我的代码:
function search_db($db, $searchTerm, $searchBy, $searchTable){
try{
$stmt = $db->prepare('
SELECT
*
FROM
?
WHERE
? LIKE ?
');
$stmt->bindParam(1, $searchTable);
$stmt->bindParam(2, $searchBy);
$stmt->bindValue(3, '%'. $searchTerm.'%');
$stmt->execute();
} catch(Exception $e) {
return array();
}
return $stmt->fetchAll(PDO::FETCH_ASSOC);
}
// database initialization, creates the $db variable
require(ROOT_PATH . "include/database.php");
$matches = search_db($db, 'search term', 'myColumn', 'myTable');
var_dump($matches);
Run Code Online (Sandbox Code Playgroud)
预期结果:数据库中的行数组
实际结果:一个空数组
我有一个庞大的艺术家,专辑和曲目数据库.这些项目中的每一个都可以通过胶合表(track_attributes,album_attributes,artist_attributes)分配一个或多个标签.每种物品类型都有数千(甚至数十万)个标签.
我正在尝试完成两项任务,而且我很难让查询执行得令人满意.
任务1)获取具有任何给定标签(如果提供)的所有曲目,这些曲目由具有任何给定标签(如果提供)的专辑上具有任何给定标签(如果提供)的艺术家提供.任何一组标签可能都不存在(即只有一个曲目标签处于活动状态,没有艺术家或专辑标签)
变化:结果也可以由艺术家或专辑而不是曲目呈现
任务2)获取应用于前一个过滤器结果的标签列表,以及每个给定标签的轨道数.
我所追求的是一些方法的一般指导.我已经尝试过临时表,内部联接,IN(),到目前为止我所做的所有努力都会导致响应缓慢.我在这里看到的结果的一个很好的例子可以在这里看到:http://www.yachtworld.com/core/listing/advancedSearch.jsp,除了他们只有一层标签,我正在处理三个.
表结构:
Table: attribute_tag_groups
Column | Type |
------------+-----------------------------+
id | integer |
name | character varying(255) |
type | enum (track, album, artist) |
Table: attribute_tags
Column | Type |
--------------------------------+-----------------------------+
id | integer |
attribute_tag_group_id | integer |
name | character varying(255) |
Table: track_attribute_tags
Column | Type |
------------+-----------------------------+
track_id | integer |
tag_id | integer |
Table: artist_attribute_tags
Column | Type |
------------+-----------------------------+
artist_id …
Run Code Online (Sandbox Code Playgroud) 好的,所以我有这个php foreach循环
<?php foreach ($step_count->rows as $step) { ?>
Run Code Online (Sandbox Code Playgroud)
和$ step将是步骤编号1,2,3,4,5直到总步骤
在循环中我需要将循环内的图像值设置为standard_image_1或者其他任何步骤...例如
<input value="<?php echo {$standard_image_"$step['number']"}; ?>" />
Run Code Online (Sandbox Code Playgroud)
所以基本上我需要变量$ standard_image_1等等取决于步骤,但我不知道正确的语法来做到这一点
所以我创建其中包含了一个简单的导航菜单div
的a
标签.目前它看起来像这样:
以下是我的HTML和CSS:
HTML
<div id="tabcontent-container">
<div class="tabcontent-menu">
<a href="#">WLAN Jumpstart</a>
<a href="#">Mobility</a>
<a href="#">Guest Access Jumpstart</a>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
CSS
#tabcontent-container { padding: 15px 0px; position: relative; text-align: center; border-radius: 25px; -webkit-border-radius: 25px; }
.tabcontent-menu {}
.tabcontent-menu a { text-decoration: none; color: white; font-size: 30px; border-right: 1px solid white; line-height: 33px; padding: 0 22px; display: inline-block; width: 200px; height: 70px; vertical-align: top; }
.tabcontent-menu a:last-child { border:none; }
.tabcontent-menu a:hover { color:#000; }
Run Code Online (Sandbox Code Playgroud)
Jsfiddle.net上的工作示例
我有一个类,它允许通过AJAX提交带有文件类型输入的表单.它创建一个隐藏IFRAME
元素,更改表单target
属性,以便它提交IFRAME
,提交表单,然后将目标更改回原来的状态.它还添加了一个onLoad
事件,IFRAME
所以我可以得到一个回调.该onLoad
函数还会IFRAME
在触发回调函数之前从页面中删除该函数.
该类工作正常,我得到了预期的回调.在Firebug的Net面板中,我看到了请求,我看到了响应,一切都很顺利.但是,一旦提交开始,页面的浏览器选项卡将更改为"正在连接"加载微调器,并且永远不会更改回来.它使标签显示正在加载,如果我打开浏览器,这将持续数天.
那么问题是:有没有办法让我手动停止,或者是否有其他方法可以阻止它启动?
以下是从Net面板中获取的响应标题:
Date Fri, 02 Sep 2011 15:23:15 GMT
Server Apache/2.2.10 (Win32) PHP/5.3.1
X-Powered-By PHP/5.3.1
Expires Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma no-cache
Set-Cookie PHPSESSID=agncdnha86mtci7dmuvriobak2; path=/
Content-Length 165
Keep-Alive timeout=5, max=100
Connection Keep-Alive
Content-Type text/html
Run Code Online (Sandbox Code Playgroud)
并在下面捕获Net面板.POST来自提交表单,GET是由回调函数引起的,它正在改变页面上图像的来源.
这不是特定于此页面,它发生在我使用此技术通过提交文件/图像的任何地方IFRAME
.这会影响我当前版本的Firefox(6.0),但也影响以前的版本(5.x,4.x,3.x).IFRAME
在加载后从页面中删除它的事实使得这尤其令人困惑 - 即使请求永远不会完成,元素的删除应该有效地杀死/停止和"连接"浏览器认为正在发生的事情.
更新
根据@Sidnicious的回答,我在回调函数中添加了一个超时,以引入删除IFRAME
元素的延迟.我试验了延迟的长度,即使1ms的延迟也足够了.这当然有资格作为解决方案,但我仍然想知道是否有人可以了解它的原因,最好是避免一起使用超时.我已经在下面包含了修改后的代码(带有超时),以防它有用.这是onLoad
为事件IFRAME
(io …
我有一个房地产列表数据库,需要返回一个社区列表.现在我正在使用mysql DISTINCT,它返回所有不同的值.我的疑问是,有很多社区有相似的名字:例如:
Park View Sub 1
Park View
Park View Sub 2
Park View Sub 3
Great Lake Sub 1
Great Lake Sub 2
Great Lake
Great Lake Sub 3
Run Code Online (Sandbox Code Playgroud)
我正在寻找一个简单的php或mysql解决方案,它会认识到"Park View"和"Great Lake"已经存在并且只返回"Park View"和"Great Lake".
我最初的想法是一些如何按长度获得排序顺序,以便短值在顶部,然后循环使用strstr.这听起来像一个大任务,我想知道是否有一个功能,无论是在mysql还是php,都可以很容易地做到这一点.
通过代码创建元素时,我遇到了一个问题,即修改innerHTML
元素的属性会破坏对修改之前注入到已修改元素中的其他元素的任何引用。
我这里有一个测试用例:http://jsfiddle.net/mJ7bF/1/,其中我希望link1
引用的行为完全相同link2
。
第二个测试用例是相同的代码,但我没有使用innerHTML
属性来添加<br>
标签,而是使用对象创建换行符。此测试的行为符合预期:http ://jsfiddle.net/K4c9a/2/
我的问题不是关于这个特定的代码,而是关于它背后的概念:link1
第一个测试用例中的引用会发生什么?如果它不引用节点cont
注入到文档中时可见的 HTML/DOM 节点,那么它引用什么,以及它如何适应 javascript 对象的 ByReference 性质?