小编Cli*_*t_A的帖子

如何从另一个php文件中使用PostgreSql的CURRVAL/RETURNING?

我正在INSERT从一个php文件运行查询,但后来我需要从外部php文件中获取最后一个插入的id,以便根据该id运行另一个查询.我怎么能用CURRVAL或用它来解决这个问题RETURNING?从外部的php文件,如果我做的事情

$result = pg_query($db,"SELECT CURRVAL('app.example_id_seq'), ... "); 我没有结果.

postgresql lastinsertid postgresql-9.1 sql-returning currval

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

Postgres GROUP BY 数组列

我有一份学生和家长名单,想使用学生证将他们分组为家庭。拥有共同学生 ID 的家长可以被视为一个家庭,拥有共同家长 ID 的学生也可以被视为一个家庭。这是一个示例表:

 p_id | parent_name | s_id | student_name |
------------------------------------------|
 1    | John Doe    | 100 |  Mike Doe     |
 3    | Jane Doe    | 100 |  Mike Doe     |
 3    | Jane Doe    | 105 |  Lisa Doe     |
 5    | Will Willy  | 108 |  William Son  |
Run Code Online (Sandbox Code Playgroud)

我想最终得到这样的结果:

     parents       |       students         |
-------------------|------------------------|
John Doe, Jane Doe |  Mike Doe, Lisa Doe    |
Will Willy         |  William Son           |
Run Code Online (Sandbox Code Playgroud)

为了实现这一目标,我目前正在使用:

SELECT array_agg(parents) AS …
Run Code Online (Sandbox Code Playgroud)

postgresql group-by array-agg

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

PHP array_push() 正在覆盖现有的数组元素

我正在尝试将对象推送到数组中,以得到这样的对象数组:

[
    {"recipient_name":"John D", "phone_number":"123456"},
    {"recipient_name":"Doe J", "phone_number":"654321"},
    {"recipient_name":"Jon Do", "phone_number":"112233"},
]
Run Code Online (Sandbox Code Playgroud)

所以我循环遍历一个更大的数组来获取姓名和电话号码,并将它们作为一个对象推送到这样的数组中:

$myLargerArray = pg_fetch_all($messageQuery); // This is my larger array

$size = count($myLargerArray);
for( $j = 0; $j < $size; $j++ ) {
    $myRecipientsObj->recipient_name = $myLargerArray[$j]['recipient_name'];
    $myRecipientsObj->phone_number = $myLargerArray[$j]['phone_number'];

    var_dump($myRecipientsObj); // This outputs the correct data added from [$j]

    array_push($myObjArray->message_recipients, $myRecipientsObj);

    var_dump($myObjArray->message_recipients); // The output shows array elements are being overwritten at each loop iteration
}
Run Code Online (Sandbox Code Playgroud)

这是最后一个var_dump($myObjArray->message_recipients)外观的示例:

array(1) {
  [0]=>
  object(stdClass)#2 (2) {
    ["recipient_name"]=>
    string(12) "First …
Run Code Online (Sandbox Code Playgroud)

php arrays loops multidimensional-array array-push

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

如何检查 foreach 迭代中的 if 语句中是否第一次找到某个值

假设我有一个数组。

$array1 = array('John','Mike','Tim','Dan');

使用foreach迭代,我循环遍历,执行返回以下$array1任一结果的数据库查询:truefalse

foreach ($array1 as $key => $value) {
    $dbQueryResult = true; // or false depending on iteration
    if($dbQueryResult === true){
        // HOW DO I CHECK IF IT IS THE FIRST TIME I'M GETTING HERE
    }
}
Run Code Online (Sandbox Code Playgroud)

如何检查这是否是我第一次在迭代if内的语句中获得所需的结果foreach(如上例所示)?

php arrays foreach if-statement conditional-statements

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