0

下面的代码在一行中显示了客户的姓名,他/她在姓名行下方的行中显示了他/她购买的所有物品。

正如您将看到的,在购买的商品行中,我还打印了从 getPrice 函数获得的商品价格。

这就是问题所在,第一个查询,也就是客户查询,检索了几行数据,但只要我调用 getPrice 函数,我就只得到第一行。

如果我不调用该函数,而是只给价格一个值,那么一切正常。

考虑到这一点,我更改了 getPrice 函数查询,认为它可能是错误的,但问题仍然存在.. while 循环只打印一行。

关于出了什么问题的任何想法?我可以尝试什么?我被困住了:(

谢谢 !!

<?php

$query1  = "SELECT * FROM Customers"; //this retrieves several rows of data
$result1 = mysql_query($query1) or die(mysql_error());

$flag = -999;
while($row = mysql_fetch_array($result1))
{

    if ($row["id"] != $flag) 
    {

        $content .="<span>".$row["lastName"].", ".$row["Name"]." </span><br />";
        $flag = $row["id"];
    }

    $content .=("Item purchased: " .$row["item"]."Price: ".getPrice($row["ItemID"])."<br />");


    $content .="</br></br>";
}                


function getPrice ($itemID)
{

    $query2  = "SELECT Price FROM Items WHERE ItemID= '".$itemID."'";
    $result2 = mysql_query($query2) or die(mysql_error());

    if($row2 = mysql_fetch_array($result2))
    {
        return $row2[0];
    } 
}

echo $content;
?>
4

2 回答 2

0

在 getPrice 函数中使用 while 而不是 if

function getPrice ($itemID)
{
//Changed this line
$query2="SELECT Price FROM Items WHERE ItemID= '".$itemID."'";
$result2 = mysql_query($query2) or die(mysql_error());

while($row2 = mysql_fetch_array($result2))
{
    return $row2[0];
} 
}
于 2013-06-26T10:55:32.503 回答
0
function getPrice ($itemID)
{
    //Changed this line
    $query2="SELECT Price FROM Items WHERE ItemID= '".$itemID."'";//;was missing
    $result2 = mysql_query($query2) or die(mysql_error());

    if($row2 = mysql_fetch_array($result2))
    {
        return $row2[0];
    } 
}
于 2013-06-26T10:38:45.740 回答