如何在WHILE获取的行的MySQL查询中使用PHP变量?

时间:2016-08-12 08:15:05

标签: php mysql

我已成功完成连接到我的数据库并返回所需数据的php脚本。但我需要扩展此脚本以插入一个变量,该变量将通过一些计算(税,免税,保证金等)显示价格。

此脚本仅显示所有已获取行中第一个数据库行0.00的价格值且不正确 - 因为第一个数据库行正常,因为产品的价格为0.0000,但其他行填充了正确的值。似乎while循环不喜欢我的$ styledprice变量。我无法想象如何在所有行中显示正确的字段值。任何想法都很适用?我是PHP初学者!

$pricequery = "SELECT rrp FROM my_products";
$b2bprice = mysql_query($pricequery);
$rrps = mysql_fetch_array($b2bprice); 
$price = $rrps['rrp'];
$styledprice = number_format($price, 2, '.', '');

$query = mysql_query("
SELECT 
CONCAT(' <td> ',p.id,' </td><td> ',p.manufacturer,' </td><td> ',p.reference,' </td><td> ',p.name,' </td><td> ',p.quantity,' <td> ','".$styledprice."',' </td> ') AS row
FROM my_products p
");

echo "
<table>
    <tr>
        <td><h5>ID</h5></td>
        <td><h5>Manufacturer</h5></td>
        <td><h5>PN</h5></td>
        <td><h5>Name</h5></td>
        <td><h5>Quantity</h5></td>
        <td><h5>Price</h5></td>
    </tr>";

while($row=mysql_fetch_array($query))
    {
        echo "<tr>".$row['row']."</tr>";
    }

 echo "
 </table>";

是的,我知道不推荐使用的 mysql _ 函数。

2 个答案:

答案 0 :(得分:2)

这样的事情应该会更好。 它通过HTML从数据库和输出中分离结果集。

locations.txt

答案 1 :(得分:1)

看起来您可以在一个sql命令中执行此操作,如:

<?php

    $sql = "SELECT * FROM my_products";
    $result = mysql_query( $sql );

    echo "
    <table>
        <tr>
            <td><h5>ID</h5></td>
            <td><h5>Manufacturer</h5></td>
            <td><h5>PN</h5></td>
            <td><h5>Name</h5></td>
            <td><h5>Quantity</h5></td>
            <td><h5>Price</h5></td>
        </tr>";

    while( $row=mysql_fetch_array( $result ) ){

        $price=$row['rrp'];
        $styledprice = number_format( $price, 2, '.', '' );

        echo "
            <tr>
                <td>{$row['id']}</td>
                <td>{$row['manufacturer']}</td>
                <td>{$row['reference']}</td>
                <td>{$row['name']}</td>
                <td>{$row['quantity']}</td>
                <td>{$styledprice}</td>
            </tr>";
    }

     echo "
     </table>";

 ?>