小编Ant*_*ony的帖子

PHP将节点添加到现有xml文件并保存

是否可以使用php XMLWriter将新节点插入现有的xml文件,然后保存文件?每次我想要更新xml文件时,实际创建一个新文件对我来说会更有益.

php xml

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

如何在网络服务更改时管理ssl连接

我正在玩一个开源项目,希望我可以为我提交的错误提供修复,这让我疯狂.简短的版本是,如果更改网络服务,应用程序将死亡.在以下情况下会发生(略有不同):

  • 我从WiFi覆盖范围走到4g,反之亦然
  • 我通过WiFi与客户端连接,然后关闭WiFi,失败到4g

我认为问题可能出在应用程序的isConnected方法中,该方法返回:

return ni != null && ni.isConnected();
Run Code Online (Sandbox Code Playgroud)

我将其更新(在本地SDK中):

return ni != null && ni.isConnectedOrConnecting();
Run Code Online (Sandbox Code Playgroud)

但是,一旦我实际切换到硬件设备而不是虚拟设备,我现在看到错误是SSL连接.我不知道问题是它是否一直在运行所以总是被"中断",或者是否应该有某种尝试/捕获或者如果连接只是需要某种机制来重新连接而不是呕吐并拉动app下来.

希望能够快速解决问题,我一直在寻找如何为连接管理/启用SSL,但却找到了很多令人沮丧的解决方法.

这是SDK日志中的即时错误.

08-06 03:38:48.795:W/InputEventReceiver(16140):尝试完成输入事件但输入事件接收器已经处理完毕.08-06 03:38:57.744:W/System.err(16140):javax.net.ssl.SSLException:读取错误:ssl = 0x4144cb18:系统调用期间的I/O错误,连接超时08-06 03:38 :57.744:W/System.err(16140):at org.apache.harmony.xnet.provider.jsse.NativeCrypto.SSL_read(Native Method)08-06 03:38:57.744:W/System.err(16140):在org.apache.harmony.xnet.provider.jsse.OpenSSLSocketImpl $ SSLInputStream.read(OpenSSLSocketImpl.java:651)

我想知道的是,当网络服务切换时,是否存在处理非HTTP SSL/TLS开放连接的规定方法.我想新的握手需要发生,但有没有.isFading()或类似的广播信息优雅地挂起应用程序,直到连接切换或正式消失?

ssl networking android

5
推荐指数
0
解决办法
458
查看次数

在这种情况下使用!important指令是否可以接受?

我通过从数据库获取数据并使用模板引擎(小胡子)来动态填充ul,如下所示:

var template = '<ul class="myList"> {{#.}} ' + 
    '<li class="Foo" ' +
    'style="background-color: {{thisItemsColor}};>" ' +
        '{{someData}}' +
    '</li> ' +
'{{/.}} </ul>';
Run Code Online (Sandbox Code Playgroud)

列表项的颜色存储在DB中.问题是现在我想将hover属性更改为其他颜色.我无法通过css文件执行此操作,因为在标记中我直接在元素上设置该属性,所以我这样做:

.myList .Foo:hover {
    background-color:#000033 !important;
}
Run Code Online (Sandbox Code Playgroud)

这是可以接受的还是应该使用js/jquery来应用这个伪选择器?

css jquery inline-styles

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

MySQL添加总列

我需要查询此DB以获取每一行,还要查询结果的一个列值的SUM.我可以使用php来获取总值,但是我需要运行两个循环,一个用于获取总数(在结果之上的顶部).所以我更喜欢查询来捕获它并只是创建一个"总"行,但我唯一能让它工作的方法是使用一个子查询,它实质上是原始查询的重复.有没有更好的办法?

SELECT 
CONCAT(u.firstname, ' ', u.lastname ) name, u.id, s.description, s.shiftstart, s.shiftend, 
    (SELECT 
    SUM( TIME_TO_SEC( TIMEDIFF( shiftend, shiftstart ) ) ) /3600
    FROM shifts
    WHERE id =  '$user'
    AND DATE( shiftstart )
    BETWEEN '$start'
    AND '$end') total
FROM shifts s
INNER JOIN users u ON ( s.id = u.id )
WHERE s.id = '$user'
AND DATE( shiftstart )
BETWEEN '$start'
AND '$end'
ORDER BY shiftstart
Run Code Online (Sandbox Code Playgroud)

以上工程和产出:

name        id     description  shiftstart             shiftend               total
Joe User    joeuser    Stuff    2009-01-05 07:45:00    2009-01-05 12:15:00 …
Run Code Online (Sandbox Code Playgroud)

mysql sql subquery aggregate-functions

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

聚合MySQL函数总是返回一行吗?

我很抱歉,如果这是非常基本的,但是:

我觉得在某些时候我没有这个问题,现在我是,所以要么我之前做了一些完全不同的事情,要么我的语法跳过了一步.

例如,我有一个查询,我需要返回包含某些数据的所有行以及另一列具有其中一列的总和.如果事情按照我的预期运作,它看起来像:

 SELECT
 order_id,
 cost,
 part_id,
 SUM(cost) AS total
 FROM orders 
 WHERE order_date BETWEEN xxx AND yyy
Run Code Online (Sandbox Code Playgroud)

而且我会按照我的订单获得所有行,并将总数添加到每个行的末尾.我知道每次总数都是一样的,但这是预期的.现在让我开始工作我正在使用:

 SELECT
 order_id,
 cost,
 part_id,
 (SELECT SUM(cost)
 FROM orders
 WHERE order_date BETWEEN xxx AND yyy) AS total
 FROM orders 
 WHERE order_date BETWEEN xxx AND yyy
Run Code Online (Sandbox Code Playgroud)

基本上运行相同的查询两次,一次为总计,一次为其他数据.但是,如果我想要,并且,我不知道平均成本,那么我将做同样的查询3次,这似乎真的错了,这就是为什么我在想我正在做一些非常基本的错误.

任何帮助都非常感谢.

mysql database sum aggregate-functions

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

MySQL删除所有子查询结果

好的,所以如果你想要一个背景故事,请看看我之前的问题

弄清楚哪些记录不重复很容易:

SELECT *
FROM eventlog
GROUP BY event_date, user
HAVING COUNT(*) = 1
ORDER BY event_date, user
Run Code Online (Sandbox Code Playgroud)

这将返回我的所有非重复项.所以我想我会把它们移到另一个名为"no_duplicates"的表中,然后从原始表中删除它们.然后我可以在原始表中单独看到重复项,修复它们,然后添加no_dupes.但同时:

INSERT INTO no_duplicates
SELECT *
FROM eventlog
GROUP BY event_date, user
HAVING COUNT(*) = 1
ORDER BY event_date, user
Run Code Online (Sandbox Code Playgroud)

像魅力一样工作,以下引发错误:

DELETE
FROM eventlog
GROUP BY event_date, user
HAVING COUNT(*) = 1
ORDER BY event_date, user
Run Code Online (Sandbox Code Playgroud)

我的猜测是,当查询返回唯一的,已经在表中的记录时,通过聚合函数删除不是犹太教.这是可以理解的,除了我不知道我还能做些什么来确保只删除我移动的记录.我搜索并发现没有"在INSERT中删除原始表中的记录后"语法,我的猜测是它无论如何都会失败,因为删除失败的原因相同.

那么,有人可以帮我找到丢失的一块吗?

mysql insert duplicates sql-delete

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

类似于在php中爆炸的键值对的方法?

PHP中是否存在一个用于从分隔字符串创建关联数组的函数?如果没有,那么最有效的方法是什么?我正在查看PayPal的新NVP API,其中请求和响应具有以下格式:

 method=blah&name=joe&id=joeuser&age=33&stuff=junk
Run Code Online (Sandbox Code Playgroud)

我可以用来explode()将每一对变成一个数组值,但如果我可以做一些类似的函数dictionary_explode并指示键值定界符并返回一个关联数组,那就更好了:

Array {
 [method] => blah
 [name] => joe
 [id] => joeuser
 [age] => 33
 [stuff] => junk
Run Code Online (Sandbox Code Playgroud)

}

我的CS朋友告诉我,这个想法存在于其他语言中,比如Python,所以我想知道我是不是没有为PHP找到这样的东西.现在我正在看一个array_walk,但我更喜欢更多预先构建的东西.

php arrays dictionary

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

laravel 4 paginate系列

我不能使用laravel 4创建一个合适的分页系统.我有以下模型和函数返回集合:

型号餐厅:

public function fooditem()
{
    return $this->hasMany('Fooditem','rest_id');
}
public function get_rest_foods($id){
    return Restaurant::find($id)->fooditem->toArray();
}
Run Code Online (Sandbox Code Playgroud)

第二个函数将某个餐厅的所有食品都作为一个数组返回.我也在API调用中使用它.

在我的控制器中我有这个:

 $food = $food->get_rest_foods($id);
 $paginator = Paginator::make($food, 10, 5);
Run Code Online (Sandbox Code Playgroud)

我将分页器传递给视图,它显示链接正常,但也显示食物阵列中的所有项目.

我试过用

public function get_rest_foods($id){
        return Restaurant::find($id)->fooditem->paginate(5);
    }
Run Code Online (Sandbox Code Playgroud)

但我收到一个错误:

FatalErrorException:错误:调用未定义的方法Illuminate\Database\Eloquent\Collection :: paginate()

我搜索了这个和许多其他网站,但不知道如何分页集合.

谢谢你的帮助

laravel laravel-4

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

简单的数字模式,将组合存储为唯一总和

这是一个数学问题,但我确信这必须出现在一些编程场景中,至少我希望如此,我想知道是否有这种情况的名称:

假设我有一个系列中的7个项目.为了这个例子,让我们使用一周中的几天.我希望用户提交他们计划在下一周进入的一周中的哪几天.它们带有一系列标准复选框,每周一个.

我想将它们在一个数据库字段中选择的日期存储为单个整数.

显然,我可以为每天分配一个数字,1 - 7(如果用户未选中所有选项,则保留0).但是如果一个用户选择星期一和星期二(1 + 2)而另一个用户选择星期三(3),那么我会遇到问题.

我还可以给一周中的每一天都有一些奇怪的独特之处,这样任何数字组合都不可能与任何其他组合相同.

我的希望是,不是为第二个场景组成这样一个系列,而是已经存在一些数字属性(可能是系列中每个数字的平方等),这些属性已经得到充分利用和尊重.理想情况下,这对编程来说非常熟悉,导出各个数字只需要很少的通用编程语言开销(在我的例子中是PHP).

我只是梦想这个,还是做这样的事情?

database math unique combinatorics

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

基本布尔逻辑 - 仅当另一个条件为真时如何测试条件

我知道这是基本的布尔逻辑,但我卡住了:

我循环遍历数据库结果,每个我需要检查以下条件:

if($old_value != $new_value)
Run Code Online (Sandbox Code Playgroud)

如果以上情况属实,则操作为:

$old_value = $new_value;
Run Code Online (Sandbox Code Playgroud)

但是存在次要条件.如果行的类型为"date",我还需要检查它$new_value是否为空,但操作仍然相同.现在,我这样做:

if($old_value != $new_value) {
     if($type != date) {
         $old_value = $new_value;
     } elseif(!empty($new_value)) {
         $old_value = $new_value;
     }
Run Code Online (Sandbox Code Playgroud)

我已经过度简化了上面的内容,但实际上单线动作实际上是几行,我知道我不需要根据次要条件重复这些行.

但我对于将内在条件与外在条件结合起来的正确方法感到茫然.如果我这样做:

if(($old_value != $new_value) && ($type == 'date' && !empty($new_value))
Run Code Online (Sandbox Code Playgroud)

然后它返回true的唯一时间是行的类型为date.

php logic conditional boolean

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