小编php*_*meh的帖子

使用MySQL查询遍历行以生成递归树

我有一个物料清单表,设置如下:
item - parent

显示物料清单时的最终结果是它显示如下:

item 1  - parent 0    
    item 2 - parent 1    
    item 3 - parent 1    
Run Code Online (Sandbox Code Playgroud)

最终结果也可能是多层次的,如下所示:

item 3 - parent 0    
    item 4 - parent 3    
    item 76 - parent 3    
Run Code Online (Sandbox Code Playgroud)

它可以无限制地继续下去:

item 76 - parent 0    
    item 46 - parent 76    

item 46 - parent 0     
    item 25 - parent 46
Run Code Online (Sandbox Code Playgroud)

现在,我要么从数据库中获得1个级别:

SELECT * FROM bom WHERE parentId = $itemId (shorthand)

或者从表中拉出每一行并使用我的递归函数来理清我需要的那些,但这显然是低效的,因为我可能只需要10行,但我拉了10,000条记录.递归函数的输出只会创建一个这样的树:

item 1
   item 2
   item 3
      item 4
      item 76
         item 46 …
Run Code Online (Sandbox Code Playgroud)

mysql recursion

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

使用jquery计算表中的行数

<head>
<script language="javascript">
// must have the onload handler
onload = function countRows(){
    var rows = document.getElementById('myTableId').getElementsByTagName('tbody')[0].rows.length;
    alert( rows);
// outputs 3
}

</script>
</head>

<body>
    <table id="myTableId">
        <tbody>
            <tr><td></td><td><input onclick="doA_Function_That_Includes_CountRows()" />
            </td></tr>
            <tr><td></td><td></td></tr>
            <tr><td></td><td></td></tr>
        </tbody>
    </table>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

javascript

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

使用PDO准备语句和增加列值

我已经阅读过这个帖子:使用预处理语句在MySQL/PHP中增加一个字段的问题,但没有看到我的问题的答案.

PDOStatement Object
(

    [queryString] => UPDATE user_alerts SET notif = ? + 2 WHERE ( user_id = ? )   

)

$stmt->execute( array( 'notif', '1' ) );
Run Code Online (Sandbox Code Playgroud)

据我所知,这一切都是正确的.

当上面的代码执行时,无论notif列的值是什么,它都将notif列设置为2.这就好像SQL正在读取SET notif = 2而不是SET notif = notif + 2

我无法弄明白,真的很感激帮助!

php mysql pdo

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

正则表达式用浮点数替换多个句点

如果我输入这样的内容:a1.b22.333,我希望它输出:

1.22333或122.333

它消除了非数字字符和超过1的任何时间段.

我最好的猜测是:

obj.value = obj.value.replace( /[^0-9\.{1}]+/g ,  '');     
obj.value = obj.value.replace( /[^0-9\.{2,}]+/g ,'');     
obj.value = obj.value.replace( /[^0-9\.(?=.*\.)]+/g ,'');
Run Code Online (Sandbox Code Playgroud)

但这些都输出1.22.333

我怎样才能摆脱这段额外的时期?

谢谢你的帮助.

javascript regex

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

javascript相当于php call_user_func

我发现了我已实现的这个主题(参见接受的答案):
javascript等同于PHP的call_user_func()

但是,我遇到了多个参数的问题.我意识到我正在做的是将我的参数转换为字符串并将其视为1参数,但我不知道如何解决这个问题,因为我正在动态创建参数.

意思是,我在我的代码中定义了以下内容:

var a = new Array();
a[0] = new Array();
a[0][0] = 'alert';
a[0][1] = '\'Hello World\'';
a[1] = new Array();
a[1][0] = 'setTimeout';
a[1][1] = 'alert("goodbye world")';
a[1][2] = '20';
Run Code Online (Sandbox Code Playgroud)

后来,我这样打电话给他们:

    var j = 0;
    var len = 0;
    var fx = '';
    var params = '';
    for( i in a ){
        params = '';
        len = a[i].length;
        fx = a[i][0]; // getting the function name
        a[i].splice( 0, 1 ); // removing it from array
        if( …
Run Code Online (Sandbox Code Playgroud)

javascript

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

Javascript:在任何日期添加天数

我现在已经阅读了很多主题,并没有找到一个相当重要的主题.

这是我正在尝试做的事情:
1)解析以mm/dd/yy格式提供的账单日期,通常不是今天
2)向日期添加可变天数.这些术语保存在下面的dueTime数组中.我把它限制在30天了.
3)根据账单日期+付款条件,计算账单到期日期,并以mm/dd/yy格式返回.

这是我尝试过的.我传递给新日期的信息是我所期望的,但新日期的输出绝不是我所期望的.

谢谢你的帮助.

<html>
<head>
<script>
function calculateDueTime(){
    var billDate = document.getElementById('billDateId').value;
    var key = document.getElementById('termsId').value;
    var dueTime = new Array();
    dueTime[1] = 30;
    var billDate = billDate.split('/');
    var newDate = new Date( parseInt( billDate[2] ) + '/' + parseInt( billDate[0] ) + '/' + ( parseInt( billDate[1] ) + parseInt( dueTime[key] ) ) ); 
    document.getElementById('dueDateId').value = newDate.toString();
}
</script>
</head>
<body>

<input name="billDate" id="billDateId" value="5/1/11" /> 
Or any value in mm/dd/yy or m/d/yy format
<select …
Run Code Online (Sandbox Code Playgroud)

javascript

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

如何访问数组中的变量

我有一个看起来像这样的vardump:

Array
(
    [0] => stdClass Object
        (
            [downloadsLeft] => 0
        )

)
Run Code Online (Sandbox Code Playgroud)

它存储在变量中 $downloadsOBJ

我如何访问该数组中的downloadsLeft变量并将其存储在一个新变量中:

例如

$downloadsLeft = $downloadsOBJ['downloadsLeft'];
Run Code Online (Sandbox Code Playgroud)

php arrays oop multidimensional-array

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

从数据库中的多个行中删除数量

这是我的表结构:
table.id(自动增量;主键)
table.qty(可能的值:0 - 1000)

行:

+----+-----+
| id | qty |
+----+-----+
|  1 |   0 |
|  2 |   5 |
|  3 |   5 |
|  4 |  10 |
+----+-----+

我希望减少12的可用数量.意思是,新结果应该是:
编辑:我可能应该指定所有这些数字是任意的.它们可以是任何东西.

+----+-----+
| id | qty |
+----+-----+
|  1 |   0 |
|  2 |   0 |
|  3 |   0 |
|  4 |   8 |
+----+-----+

现在,我做了以下事情:

  1. SELECT id, qty FROM table WHERE qty > 0 …

mysql

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

标签 统计

javascript ×4

mysql ×3

php ×2

arrays ×1

multidimensional-array ×1

oop ×1

pdo ×1

recursion ×1

regex ×1