如何在MySQL查询中使用PHP变量来获取行?
我已经成功地完成了连接到数据库并返回所需数据的php脚本。但是我需要扩展这个脚本以插入一个变量,该变量将通过一些计算(税、无税、保证金等)显示价格 此脚本仅显示所有获取行中第一个数据库行0.00的价格值,它不正确-因为第一个数据库行是ok的,因为产品的价格为0.0000,但其他行填充了正确的值。while循环似乎不喜欢我的$styledprice变量。我不知道如何在所有行中显示正确的字段值。有什么好主意吗?我是一个PHP初学者如何在MySQL查询中使用PHP变量来获取行?,php,mysql,Php,Mysql,我已经成功地完成了连接到数据库并返回所需数据的php脚本。但是我需要扩展这个脚本以插入一个变量,该变量将通过一些计算(税、无税、保证金等)显示价格 此脚本仅显示所有获取行中第一个数据库行0.00的价格值,它不正确-因为第一个数据库行是ok的,因为产品的价格为0.0000,但其他行填充了正确的值。while循环似乎不喜欢我的$styledprice变量。我不知道如何在所有行中显示正确的字段值。有什么好主意吗?我是一个PHP初学者 $pricequery = "SELECT rrp FROM my_
$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>";
$pricequery=“从my_产品中选择rrp”;
$b2bprice=mysql\u查询($pricequery);
$rrps=mysql\u fetch\u数组($b2bprice);
$price=$rrps['rrp'];
$styledprice=number_格式($price,2,'.','');
$query=mysql\u查询(“
挑选
CONCAT(“”,p.id,“”,p.manufacturer,“”,p.reference,“”,p.name,“”,p.quantity,“”,“$styledprice.”,“”)作为行
从我的产品p
");
回声“
身份证件
制造商
PN
名称
量
价格
";
while($row=mysql\u fetch\u array($query))
{
回显“$row['row']”;
}
回声“
";
是的,我知道有些mysql函数不推荐使用。类似的功能应该可以更好地工作。 它通过HTML将结果集与数据库和输出分离
// Get the Result Set
$result = mysql_query("SELECT p.id, p.manufacturer, p.reference, p.name, p.quantity FROM my_products p");
// Convert the rows and columns from the Result Set to a PHP Array
$data = array(); // empty array
while ($row = mysql_fetch_assoc($result)) {
$data[] = $row;
}
// Now you have access any row or column
echo "<table>";
foreach($data as $row){
// prepare the data
$formatttedQuantity = number_format($row['quantity'], 2, '.', '');
// show each Table Row
echo "<tr>";
echo "<td>" . $row['id'] . "</td>";
echo "<td>" . $row['manufacturer'] . "</td>";
echo "<td>" . $row['reference'] . "</td>";
echo "<td>" . $row['name'] . "</td>";
echo "<td>" . $formatttedQuantity . "</td>";
echo "</tr>";
}
echo "</table>";
//获取结果集
$result=mysql_query(“从我的_产品p中选择p.id、p.manufacturer、p.reference、p.name、p.quantity”);
//将结果集中的行和列转换为PHP数组
$data=array();//空数组
while($row=mysql\u fetch\u assoc($result)){
$data[]=$row;
}
//现在您可以访问任何行或列
回声“;
foreach($行数据){
//准备数据
$formattedquantity=number_格式($row['quantity',2',','');
//显示每个表行
回声“;
回显“$row['id']”;
回显“$行[“制造商]”;
回显“$row['reference']”;
回显“$row['name']”;
回显“$FormattedQuantity.”;
回声“;
}
回声“;
看起来您可以在一个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>";
?>
将html混合到sql语句中并不常见,我很惊讶地看到这样的查询包含在html标记中。@RamRaider,但它可以工作;)是的,不要在SQL查询中使用HTML。只需使用SQL检索列值,然后在PHP中添加HTML。您需要在从MySQL检索到的价格上使用number\u format()
内部的循环?真的吗?它能获取/应该获取多少结果?您可以通过一个sql命令而不是两个sql命令来实现这一点感谢您的努力@Cagy79!我会在几分钟内检查它!一流!这正是我需要的,有了这个,我可以做很多灵活的修改+1和回答谢谢@RamRaider!看起来很简单!我会检查的!:)