小编Sha*_*awn的帖子

我怎样才能确保TCL不会搞乱数组元素的顺序?

问题是我在数组中"插入"元素的顺序会在整个脚本执行过程中发生变化.

以下是该问题的快速复制:

#!/bin/bash
# : \
exec /home/binops/afse/eer/eer_SPI-7.3.1/tclsh "$0" "$@"

proc myProc { theArray } {
  upvar $theArray theArrayInside
  parray theArrayInside
  puts "------"
  foreach { key value } [array get theArrayInside] {
    puts "$key => $value"
  }
}

# MAIN
set myArray(AQHI) AQHI
set myArray(O3) 1
set myArray(NO2) 2
set myArray(PM2.5) 3

parray myArray
puts "------"
myProc myArray
Run Code Online (Sandbox Code Playgroud)

输出是:

myArray(AQHI)  = AQHI
myArray(NO2)   = 2
myArray(O3)    = 1
myArray(PM2.5) = 3
------
theArrayInside(AQHI)  = AQHI
theArrayInside(NO2)   = 2
theArrayInside(O3)    = …
Run Code Online (Sandbox Code Playgroud)

arrays tcl

3
推荐指数
1
解决办法
1621
查看次数

如何判断当前事务是否会更改具有Doctrine 2的任何实体?

我正在使用Doctrine来保存用户数据,我希望有一个last modification字段.以下是用户在按下后如何保存表单的伪代码Save:

  • 开始交易
  • 做很多事情,可能是查询数据库,可能不是
  • 如果此交易有任何改变
    • 修改last updated字段
  • 提交事务

有问题的部分是if anything will be changed by this transaction.Doctrtrine可以给我这样的信息吗?

如何判断当前交易中的实体是否发生了变化?

编辑

只是为了清理,我试图修改一个被调用lastUpdated的实体中调用的字段,User如果提交User了当前事务,任何实体(包括但不限于)将被更改.换句话说,如果我启动事务并修改被调用nbCars实体的字段Garage,我希望更新实体的lastUpdated字段,User即使该实体尚未被修改.

php mysql doctrine-orm

3
推荐指数
2
解决办法
2518
查看次数

如何在PHP中查找,增加和替换?

我在表单中有字符串,\d+_\d+我想在第二个数字中添加1.由于我的解释非常清楚,让我举几个例子:

  • 1234567_2应该变为1234567_3
  • 1234_10应该变成1234_11

这是我的第一次尝试:

$new = preg_replace("/(\d+)_(\d+)/", "$1_".((int)$2)+1, $old);
Run Code Online (Sandbox Code Playgroud)

这会导致语法错误:

解析错误:语法错误,意外T_LNUMBER,在[...] 201行上预期T_VARIABLE或'$'

这是我的第二次尝试

$new = preg_replace("/(\d+)_(\d+)/", "$1_".("$2"+1), $old);
Run Code Online (Sandbox Code Playgroud)

这会将$ old = 1234567_2转换为$ new = 1234567_1,这不是所需的效果

我的第三次尝试

$new = preg_replace("/(\d+)_(\d+)/", "$1_".((int)"$2"+1), $old);
Run Code Online (Sandbox Code Playgroud)

这产生了同样的结果.

通过做这些尝试,我意识到我不明白新的$ 1,$ 2,$ 3,..变量是如何工作的,所以我真的不知道还有什么可以尝试,因为看起来这些变量在退出时不再存在preg_replace函数...

有任何想法吗?

php regex backreference preg-replace

2
推荐指数
1
解决办法
1970
查看次数

SQL如何选择将多行组合在一起时要显示哪一行?

请考虑下表:

CREATE TABLE t
(
 a INTEGER NOT NULL,
 b INTEGER NOT NULL,
 c INTEGER,
 PRIMARY KEY (a, b)
)
Run Code Online (Sandbox Code Playgroud)

现在,如果我这样做:

SELECT a,b,c FROM t GROUP BY a;
Run Code Online (Sandbox Code Playgroud)

我希望只获得一次的每个不同值.但是因为我也要求b和c,所以它会为我的每个值提供一行.因此,如果对于a的单个值,有很多行可供选择,我该如何预测SQL将选择哪一行?我的测试显示它选择返回b最大的行.但那是什么逻辑呢?这将如何适用于blob或日期或其他任何字符串?

我的问题:SQL如何在将多行组合在一起时选择要显示哪一行?

顺便说一下:我的特殊问题与SQLITE3有关,但我猜这是一个不依赖于DBMS的SQL问题......

sql sqlite group-by

2
推荐指数
1
解决办法
176
查看次数

Chrome扩展程序中的AJAX请求失败,具有正确的清单权限?

我正在编写Chrome扩展程序,它执行简单的ajax调用(基于此示例来自文档):

$.ajax({
    type: "GET",
    url: "http://www.flags.99k.org/getFlags.php"
}).done(function(response) {
    alert("SUCCESS: " + response);
}).fail(function(response) {
    alert("FAILURE: " + response);
});
Run Code Online (Sandbox Code Playgroud)

请求总是失败,因为警报显示:FAILURE: [object Object].
该URL有效:当我将http://www.flags.99k.org/getFlags.php放入我的地址栏时,我得到了这个:

[{"UID": "1", "Message": "Hello"}, {"UID": "2", "Message": "World"}, {"UID": "3", "Message": "Hello World"}]
Run Code Online (Sandbox Code Playgroud)

这是我的manifest.json扩展名.

{
  "name": "Hello World",
  "version": "1.0",
  "description": "The first extension that I made.",
  "browser_action": {
    "default_icon": "icon.png",
    "default_popup": "popup.html"
  },
  "permissions": [
      "http://www.flags.99k.org/"
  ]
}
Run Code Online (Sandbox Code Playgroud)

我使用Chromium 17.0.963.79(Developer Build 125985 Linux)Ubuntu 11.10.

ajax jquery google-chrome google-chrome-extension

2
推荐指数
1
解决办法
4521
查看次数

如何在服务器端(node.js)检索我在jQuery.ajax()的`data`属性中传递的对象?

我做了一个chrome扩展,它调用了jQuery的ajax方法:

内容的script.js

[...]
$.ajax({
    "url": "http://localhost:5000/",
    "type": "PUT",
    "contentType": "application/json",
    "data": { "name": "random object" },
    "dataType": "json"
});
[...]
Run Code Online (Sandbox Code Playgroud)

在服务器端,我正在尝试获取data属性中传递的信息:

web.js

[...]
app.put('/', function(request, response) {
    console.log(request.data);
});
[...]
Run Code Online (Sandbox Code Playgroud)

但我正在改变undefined.如何data在服务器端(Node.js + express.js)检索属性中传递的对象?

我也尝试console.log(request)了很多东西,但没有看起来像我在data属性中传递的信息......

编辑

我的最新尝试(基于graydsl的回答)对上面的代码进行了以下更改:

  • app.use(express.bodyParser());之前添加app.put....
  • 改变putpost无处不在
  • 改变request.datarequest.body.data

现在,代码在响应这样的表单时执行我想要的操作:

<form method="post" action="/">
    <input name="data" type="text" value="WOO HA" />
    <input type="submit" name="submit" value="submit" />
</form>
Run Code Online (Sandbox Code Playgroud)

但是,如果我恢复使用 …

jquery node.js express

2
推荐指数
1
解决办法
3010
查看次数

为什么javascript无法在url中查找和替换包含空格的字符串?

我将首先向您提供我正在处理的代码,以便您可以按照我的意思(对不起法语,我意识到你们所有人都不会说法语但是我正在为这个网站制作一个法语学校).我已经删除了我认为不是问题的一部分(实际文件是757行!)

photos.php

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Photos</title>
<script type="text/javascript">
    function removeCriterion(criterionText)
    {
        var getData = new RegExp("&" + criterionText + "|\\?" + criterionText + "$|" + criterionText + "&", "gi");
        window.location = window.location.toString().replace(getData,"");
    }
</script>
</head>
<body>
<a class="retirerCritere" onclick="removeCriterion('Shawn+Freyssonnet-Inder');" title="Réessayer la recherche sans ce critère"><img src="img/deleteButton.png" alt="Retirer" /></a>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

虽然在剥离所有附加内容时看起来并不多,但这是根据一组标准显示照片的页面的一部分.这些标准是通过php变量$ _GET获取的,所以如果我想要显示属于我的所有照片(Shawn Freyssonnet-Inder)并且是在法国拍摄的,我使用以下链接:

<a href="photos.php?nom=Shawn+Freyssonnet-Inder&pays=France" ...>link</a>
Run Code Online (Sandbox Code Playgroud)

然后,该页面将获取所有照片,其中nom = Shawn Freyssonnet-Inder并在mysql数据库中支付 = France.此外,它向用户显示用于过滤结果的标准列表,允许他(她)隔离标准,删除标准等.

注意: …

javascript regex

1
推荐指数
1
解决办法
2283
查看次数

为什么我可以访问我刚从c ++中的stl向量中删除的元素?

在这个例子中,我创建了一个包含一个整数的向量,然后我从向量中删除了该整数.向量的大小减小,但整数仍然存在!为什么整数仍然存在?大小为0的向量如何包含元素?

#include <vector>
#include <iostream>

using namespace std;

int main(int agrc, char* argv[])
{
    vector<int> v;
    v.push_back(450);

    cout << "Before" << endl;
    cout << "Size: " << v.size() << endl;
    cout << "First element: " << (*v.begin()) << endl;
    v.erase(v.begin());
    cout << "After" << endl;
    cout << "Size: " << v.size() << endl;
    cout << "First element: " << *(v.begin()) << endl;

    return(0);
}
Run Code Online (Sandbox Code Playgroud)

输出:

Before
Size: 1
First element: 450
After
Size: 0
First element: 450
Run Code Online (Sandbox Code Playgroud)

c++ stl vector erase

1
推荐指数
1
解决办法
354
查看次数

如果没有找到结果,如何让SQL忽略WHERE子句的一部分?

对不起,我不知道如何在不给你全部故事的情况下提出这个问题:

请考虑以下表格:

**users**
ID | name
1  | Shawn
2  | John
3  | Josh

**groups**
groupName | userID
groupA    | 1
groupA    | 2
groupB    | 1
Run Code Online (Sandbox Code Playgroud)

这意味着Shawn和John是A组的一部分,而Shawn是B组的一部分.Josh根本不属于任何组.

我想要做的是列出每个用户,看看他属于哪个组.这是我会尝试的:

SELECT name, groupName FROM users, groups WHERE userID = ID GROUP BY name
Run Code Online (Sandbox Code Playgroud)

哪个输出

name  | groupName
Shawn | groupA
John  | groupA
Run Code Online (Sandbox Code Playgroud)

这是我的问题

我看不出Shawn也是B组的一部分.我根本也看不到Josh.

我的问题

我怎么能得到这样的东西呢?

name  | groupName
Shawn | groupA, groupB
John  | groupA
Josh  | none
Run Code Online (Sandbox Code Playgroud)

或者至少是这样的:

Shawn | groupA
Shawn | groupB
John  | groupA …
Run Code Online (Sandbox Code Playgroud)

mysql

0
推荐指数
1
解决办法
188
查看次数