我甚至不确定它是否可行,但我想在PHP字符串中更改\ t的值.例如,目前如果我这样做:
echo "\t\tHello";
Run Code Online (Sandbox Code Playgroud)
输出是16个空格,后跟hello - 因此标签宽度为8个空格.有没有办法在字符串中使用\ t时将此默认选项卡宽度更改为另一个数字?
它并不是真的那么重要,我做了很多,明显的工作,只是想知道我是否错过了一些容易做的事情,却找不到.
我似乎只在chrome(而不是IE,FF)中遇到了一个有趣的问题.给出以下对象:
var myObj = {
"59" : "Hello",
"52" : "and",
"50" : "how",
"31" : "are",
"65" : "you"
};
Run Code Online (Sandbox Code Playgroud)
通过for循环遍历此对象按以下顺序吐出内容:
for(var j in myObj) { document.write(myObj[j] +', '); }
are, how, and, hello, you
Run Code Online (Sandbox Code Playgroud)
所有其他主要浏览器都以"正确"的顺序给出它.Chrome将键视为整数而不是字符串.问题是我有一个json数据源我无法更改,我需要按照它们在对象中的顺序访问这些项目.
任何人都可以建议在Google Chrome中执行此操作吗?
是否有可能在一系列SQL语句中获取字段的值并使用它来命名另一个语句中的表?我不确定这是否清楚,所以这是一个psudo - 我正在尝试做的例子:
// dataType is equal to "ratings"
@var = select dataType from theTable where anID = 5;
// needs to run as "from ratings-table"
select field1,field2 from @var-table where anID = 5;
Run Code Online (Sandbox Code Playgroud)
我一直在阅读http://dev.mysql.com/doc/refman/5.0/en/user-variables.html,但要么我没有正确理解这一点,要么它不是我正在寻找的解决方案.
我有一个查询,生成我想要更新的行,查询如下所示:
SELECT item.item_id
FROM items
JOIN users2items
ON users2items.item_id = items.item_id
WHERE users2items.user_id = 10;
Run Code Online (Sandbox Code Playgroud)
现在我需要为项目表中与该查询匹配的每条记录更新一列; 目前我正在使用结果集,然后为每个结果构建和执行查询,但我认为可能有一种方法可以直接在SQL中执行此操作.我正在执行的各个陈述是:
UPDATE items SET is_usable = 1 WHERE item_id = $current_id
Run Code Online (Sandbox Code Playgroud)
所以它按原样运行,但我正在尝试学习是否有纯SQL方法来实现它
我正在玩EXPLAIN并在这个简单的查询上运行它:
EXPLAIN SELECT * FROM actions WHERE user_id = 17;
Run Code Online (Sandbox Code Playgroud)
看到这个输出很惊讶:
select_type SIMPLE
table actions
type ALL
possible_keys user_id
key null
key_len null
ref null
rows 6
extra Using where
Run Code Online (Sandbox Code Playgroud)
我的理解是这意味着在查找中没有使用索引,这是正确的吗?(此时表中总共只有6行,但会有更多行)
表定义是(inpart):
CREATE TABLE `actions` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`user_id` int(10) unsigned NOT NULL,
...
PRIMARY KEY (`id`),
KEY `user_id` (`user_id`)
) ENGINE=InnoDB AUTO_INCREMENT=12 DEFAULT CHARSET=latin1
Run Code Online (Sandbox Code Playgroud)
为什么不使用user_id上的键值?
我正在看一些我正在使用的开发人员使用的Zend Framework代码,在其中我看到以下内容:
$select = new Zend_Db_Select($DB);
$sql = $select->where("id ='".$id."'");
Run Code Online (Sandbox Code Playgroud)
现在,$ id在任何地方都没有消毒,而且我的印象是,如果你使用占位符,你只能通过Zend注入保护 - 这个字符串很脆弱,我想.
该代码的作者声称zend即使在这种情况下也会处理它,尽管我在文档中找不到它所说的内容.
如果这实际上是安全的,那么任何人都可以清理吗?
我很难让这个工作起来.我有一个看起来像这样的表:
quantity cost
-------- ----
5 150
2 100
Run Code Online (Sandbox Code Playgroud)
我想选择一个应该是的结果950.当我使用组时,整个数量乘以整个成本
在给定的字符串中,我试图验证至少有两个单词,其中一个单词被定义为任何非数字字符,例如
// Should pass
Phil D'Sousa
Billy - the - Kid
// Should Fail
Joe
454545 354434
Run Code Online (Sandbox Code Playgroud)
我认为这应该有效:
(\b\D*?\b){2,}
Run Code Online (Sandbox Code Playgroud)
但事实并非如此.
我正在学习emberjs,我做了一个非常简单的例子.HTML模板是:
<script type="text/x-handlebars">
Hello <b>{{App.appOwner}}</b>
</script>
Run Code Online (Sandbox Code Playgroud)
然后javascript是:
App = Ember.Application.create({
appOwner : 'Erik'
});
App.appOwner = 'Tom';
Run Code Online (Sandbox Code Playgroud)
这几乎与您的期望相符.emberjs.com文档说模板是自动更新的 - 所以我添加了这个:
$(document).click(function() {
console.log('HERE!');
App.appOwner = 'Alphonse';
});
Run Code Online (Sandbox Code Playgroud)
这出乎意料地失败了.我添加了console.log只是为了确保调用click处理程序,它就是这样.为什么不更新?
我甚至不确定如何提出这个问题,但我已经将代码减少到最简单的可能示例:
function Handler() {}
Handler.prototype.texts = [];
Handler.prototype.add = function(d) {
this.texts.push(d);
};
Handler.prototype.tick = function() {
console.log( this.texts );
};
var x = new Handler();
setInterval( x.tick, 5000 );
x.add('beatles');
Run Code Online (Sandbox Code Playgroud)
当setInterval调用x.tick时,它为this.texts提供一个undefined值 - 当然,也就是this.虽然我可以解决问题
setInterval( x.tick, 5000, x );
// and ... in the prototype
Handler.prototype.tick = function(myObj) {
console.log( myObj.texts );
}
Run Code Online (Sandbox Code Playgroud)
感觉有点笨重.有一个更好的方法吗?
我有一个方法,它可以根据一组标准从数据库中返回一些项目:
scope :expired_not_marked, lambda { |client|
items = where('items.status > 0 AND items.expires_at < ? AND items.expired_at IS NULL AND (winning_bid_id IS NULL OR winner_id IS NULL)', Time.now)
unless client.nil?
items.where('items.client_id = ?', client.id)
end
}
Run Code Online (Sandbox Code Playgroud)
它被称为Item.expired_not_marked nil.当我从IRB运行它时,我得到了很多结果,但它显示正在执行的SQL查询:
SELECT `items`.* FROM `items`
Run Code Online (Sandbox Code Playgroud)
显然这不是原作者的意图.结果,一遍又一遍地处理相同的项目.
为什么会破坏,我该如何解决它.where子句似乎是正确的.上述方法在item.rb模型中.
我甚至不确定这是否可行,但我需要通过用户点击的链接将POST数据发送到页面.可以这样做吗?
要清楚,我不希望数据返回到当前页面; 目标页面应该在浏览器中加载,就像用户提交了表单一样,但我需要在没有表单的情况下发送帖子数据,如果可能的话