我可能完全以错误的方式解决这个问题,但我已经完成了一半工作!
我有一张桌子(价格),其中包含每个包装的“包装”参考编号和“价格”。
我试图在同一页面上回应每个包装的不同价格,但似乎有点丢失!
例如。第1组是12英镑,第2组是17英镑。我希望能够在同一页面的不同位置回显这些值。
到目前为止,我有......
<?php
$con = mysql_connect('*****');
mysql_select_db('****');
$query = "SELECT * FROM prices WHERE pack=2";
$result = mysql_query($query);
while($row = mysql_fetch_array($result)){
?>
然后我......
<?php echo $row['price'];}?>
在我希望价格出现的页面下方。
如果我只需要该页面上第2包的价格,这很好,但如果我想在同一页面上有不同的价格,那就不行了。
我意识到查询中的WHERE pack = 2正在控制回显的值,但我需要在同一页面上回显价格WHERE pack = 1和pack = 2。
有什么方法可以从查询中删除WHERE,并且有一些ECHO WHERE我需要在页面上显示价格。
希望这一切都有意义,有人可以指出我正确的方向。
干杯, 布鲁斯
答案 0 :(得分:0)
我建议使用PDO,但你可以这样做:
$query = "SELECT * FROM prices WHERE pack=1 OR pack=2 ORDER BY pack ASC";
$result = mysql_query($query);
$prices = array();
while($row = mysql_fetch_array($result)){
$prices[$row['pack']] = $row['price'];
}
然后,$ price [1]将包含pack = 1的价格,$ price [2]将包含pack = 2的价格;
如果您需要的不仅仅是包1和2,请使用IN子句:
$query = "SELECT * FROM prices WHERE pack IN (1, 2, 5, 7) ORDER BY pack ASC";
答案 1 :(得分:0)
您应该将价格放在页面内的任何位置,而不是在循环中将循环放在外面
<?php
$con = mysql_connect('*****');
mysql_select_db('****');
$query = "SELECT * FROM prices WHERE pack=2";
$result = mysql_query($query);
while($row = mysql_fetch_array($result))
{ ?>
// place your HTML
Price <input type="text" value="<?= $row['price'] ?>" />
<?php } ?>
答案 2 :(得分:0)
您应该使用mysqli_connect()
而不是旧版mysql_connect()
,因为函数已被弃用。
尝试这种方式: -
$link = mysqli_connect("host","username","password","db_name") or die("Error " . mysqli_error($link));
$query = "SELECT * FROM prices WHERE pack IN ( 1,2 )";
// If you want all pack prices then use below query
// $query = "SELECT * FROM prices";
//execute the query.
$result = $link->query($query);
//display information:
while($row = mysqli_fetch_array($result)) {
echo $row['pack'] .'='. $row['price'] . "<br>";
}