Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何在循环内部循环?_Php_Mysql - Fatal编程技术网

Php 如何在循环内部循环?

Php 如何在循环内部循环?,php,mysql,Php,Mysql,我有两张桌子 Table1 "Order" orderid - customer_id 1001 - 1234 Table2 "Items" no - orderid - items_code 1 - 1001 - 100 2 - 1001 - 200 3 - 1001 - 300 如何获得以下结果(在php中): 这是我以前的编码: <? include("cat-config.php"); $resultdata=mysql_query(" (SELECT

我有两张桌子

Table1 "Order"
orderid - customer_id
1001    - 1234

Table2 "Items"
no - orderid - items_code
1  - 1001 - 100
2  - 1001 - 200
3  - 1001 - 300
如何获得以下结果(在php中):

这是我以前的编码:

    <?

include("cat-config.php");

$resultdata=mysql_query("
(SELECT * FROM Order LIMIT 10)
");
echo "<table width=\"100%\" border=\"0\">
  <tr>
    <td>Order #</td>
    <td>Items</td>
    <td>Customer ID</td>
  </tr>";
while($row=mysql_fetch_assoc($resultdata)){
  echo "
  <tr>
    <td>$row[OrderID]</td>
<td>
**(I want loops items data on table "items": 100, 200,300 here)
</td>
    <td>$row[CustomerID</td>
  </tr>
";
}
mysql_close();
?>

最简单的方法是将其作为两个独立的查询运行:

SELECT * FROM Order
在循环浏览结果时:

X = OrderID
SELECT * FROM Items WHERE OrderId = X
$orders=array(100110003);
对于($i=0;$i
格式化为所需的输出,并进行调整以正确获取数据

根据更改的问题进行更新: 这可能是一种方法:

<?php
include 'cat-config.php';

$resultdata = mysql_query( 'SELECT * FROM Order LIMIT 10' );

echo "<table width=\"100%\" border=\"0\">
  <tr>
    <td>Order #</td>
    <td>Items</td>
    <td>Customer ID</td>
  </tr>";

while ( $orderRow = mysql_fetch_assoc( $resultData ) )
{
    echo "  <tr>\n    <td>" . $orderRow['orderid'] . "</td>\n";
    echo "    <td>";

    $itemData = mysql_query( 'SELECT * FROM Items WHERE orderid = ' . $orderRow['orderid'] );

    while ( $itemRow = mysql_fetch_assoc( $itemData ) )
    {
        echo $itemRow['items_code'] . ', ';
    }

    echo "</td>\n    <td>" . $orderRow['customer_id'] . "</td>\n  </tr>\n";
}

您能为我以前的编码实现您的解决方案吗,请参见上面我的previos编码。如果我有更多的数据,请参见上面我以前的编码。谢谢为什么会有人投反对票?除非我缺席,否则我会投票something@Ziplin:否决票可能是指问题的初始状态。如果有人否决我的问题,也许是我对问题的解释。因为我的英语不好,而且我对软件还不熟悉。但是谢谢你,你是我的英雄,,,,@ziplin:谢谢你,所以我可以继续学习编码。和所有的大师在一起。谢谢:)
$orders = array( 1001, 1002, 1003 );

for ( $i = 0; $i < count( $orders ); $i++ )
{
    $items = getItemsForOrderId( $orders[$i] ); // SQL query or something

    for ( $j = 0; $j < count( $items ); $j++ )
    {
        echo 'Order #' . $orders[$i] . ', Item ' . $items[$j];
    }
 }
<?php
include 'cat-config.php';

$resultdata = mysql_query( 'SELECT * FROM Order LIMIT 10' );

echo "<table width=\"100%\" border=\"0\">
  <tr>
    <td>Order #</td>
    <td>Items</td>
    <td>Customer ID</td>
  </tr>";

while ( $orderRow = mysql_fetch_assoc( $resultData ) )
{
    echo "  <tr>\n    <td>" . $orderRow['orderid'] . "</td>\n";
    echo "    <td>";

    $itemData = mysql_query( 'SELECT * FROM Items WHERE orderid = ' . $orderRow['orderid'] );

    while ( $itemRow = mysql_fetch_assoc( $itemData ) )
    {
        echo $itemRow['items_code'] . ', ';
    }

    echo "</td>\n    <td>" . $orderRow['customer_id'] . "</td>\n  </tr>\n";
}