循环通过php数组问题

时间:2017-03-30 03:12:22

标签: php mysql arrays

我确信我一直盯着这个方式,所以要求一条生命线。

我从MySQL数据库中提取数据。特别是:

$category[] = "$row->category";
$issue[] = "$row->issue";

我需要循环访问数据。共有6个类别,每个类别可以有任意数量的问题。

我想按如下方式回显每行的数据:

Category 1
Issue 1a
Issue 1b
Issue 1c

Category 2
Issue 2a
Issue 2b

Category 3
Issue 3a
Issue 3b
Issue 3c
Issue 3d
Issue 3e

我可能需要更多的睡眠,但我似乎无法正确地循环。任何帮助将不胜感激。

$stmt = $pdo->prepare("SELECT * FROM project INNER JOIN data1 ON project.p_key = data1.p_key_project WHERE data1.p_key_project=? AND data1.archived=? ORDER BY data1.category, data1.updated DESC");
$stmt->execute(array($passed_key,'n'));

while ($row = $stmt->fetchObject()) {
$cust[] = "$row->cust_name";
$p_key[] = "$row->p_key";
$pid[] = "$row->pid";
$account_key[] = "$row->account_key";
$p_key_data1[] = "$row->p_key_data1";
$date[] = "$row->date";
$updated[] = "$row->updated";
$category[] = "$row->category";
$ryg[] = "$row->ryg";
$issue[] = "$row->issue";
$proposed_resolution[] = "$row->proposed_resolution";
$action_items[] = "$row->action_items";
$owner[] = "$row->owner";
$status[] = "$row->status";
}

1 个答案:

答案 0 :(得分:0)

PDO版本基于我们一直在谈论的更新:

假设$ issues是您可以执行的多维问题和类别数组。即$numOfItems = count($issue); //counts number of times for should be run for ($row = 0; $row < $numofItems; $row++) { echo $issues[$row][$row] . "</br>"; $i=0; while ($issues[$i][$row] == $issues[$row][$row]) { echo $issues[$i][$row] . "</br>"; $i++; } }

$category[] = "$row->category";

这是徒手的 - 但应该有效

以下的老答案

如果您复制并粘贴数据库架构(或其中的一部分),这将有助于查看类别和问题的相关性。没有看到确切的关系,我认为这可能是你的数据库的结构

所以让ID | Category | Issue 1 | Pizza | Bad 2 | Pizza | Good 填充类别;现在你必须将问题与每个类别相匹配。我假设数据库中的一行有一个分配给每个问题的类别。即您的数据库看起来像

foreach ($category as $key => $value) {
    $query = mysqli_query($con,"SELECT * FROM project INNER JOIN data1 ON project.p_key = data1.p_key_project WHERE data1.p_key_project=? AND data1.archived=? AND data1.category='$value' ORDER BY data1.category, data1.updated DESC"); //value is the individual category
    echo $value . "</br>";
        while($row = mysqli_fetch_array($query)) {
            echo $row['issue'] . '</br>';
        }
    echo "</br>"; //adds an extra space between categories
}

如果是这种情况,那么下面应该有效

mysql_update

已更新,以包含您的特定查询