如何使用Php

时间:2015-04-23 13:17:41

标签: php pdo

我需要将类别和子类别合并为一个数组。这是代码。

$sql = 'select * from category where id = ?';
$q = $db->prepare($sql);
$q->bindParam(1, $id);
$q->execute();
while($rows = $q->fetch()){
    $cat[] = $rows['id'];
    $s = 'select * from category where category_id = ?';
    $q = $db->prepare($s);
    $q->bindParam(1, $rows['id']);
    $q->execute();
    while($row = $q->fetch()){
        $list[] = $row['id'];
    }

    $data  = array_push($cat, $list);

    echo $data;

} 

我在打印时获得2个值而不是数字

3 个答案:

答案 0 :(得分:0)

你想合并$ cat和$ list吗?

您可以尝试:

array_merge($cat, $list);

答案 1 :(得分:0)

我认为你想要的是:

$sql = 'select * from category where id = ?';
$q = $db->prepare($sql);
$q->bindParam(1, $id);
$q->execute();
$data = array();
while($rows = $q->fetch()){
    $cat[] = $rows['id'];
    $s = 'select * from category where category_id = ?';
    $q = $db->prepare($s);
    $q->bindParam(1, $rows['id']);
    $q->execute();
    while($row = $q->fetch()){
    $list[] = $row['id'];
    }

    $data = array_merge($data, $cat, $list);
    //$data = array_unique($data);

    print_r($data);

}

注意while循环之前的$data = array();。使用array_merge,您可以将类别和子类别与$ data数组合并到数据数组中。

如果您碰巧获得了重复值,则不需要或只需要注释$data = array_unique($data);,它会为您删除重复的条目。

请澄清您的问题,如果我不解决您的问题,我会更新我的答案。

玩得开心,可能有消息来源。

答案 2 :(得分:0)

我在这篇文章combine-results-from-two-pdo-queries

的帮助下解决了这个问题
$id = '1';
$results = array();
$sql = 'select * from category where id = ?';
    $q = $db->prepare($sql);
    $q->bindParam(1, $id);
    $q->execute();
    while($rows = $q->fetch(PDO::FETCH_ASSOC)){
        $results[] = $rows['id'];
    } 
    $s = 'select * from category where category_id = ?';
    $q = $db->prepare($s);
    $q->bindParam(1, $id);
    $q->execute();
    while($row = $q->fetch(PDO::FETCH_ASSOC)){
    $results[] = $row['id'];
    }

    var_dump($results);