来自数组位置的回显值


Echo Value From Array Where

我可能以完全错误的方式处理这个问题,但我让它工作了一半!

我有一个表格(价格),其中包含每个包装的"包装"参考编号和"价格"。

我试图在同一页面上为每个包呼应不同的价格,但似乎有点迷路了!

例如。包 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,我需要价格出现在页面上。

希望这一切都有意义,有人可以指出我正确的方向。

干杯布鲁斯

我建议使用 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'];
}

然后,$prices[1] 将包含包=1 的价格,$prices[2] 将包含包=2 的价格;

如果您需要超过包装 1 和 2,请使用 IN 子句:

$query = "SELECT * FROM prices WHERE pack IN (1, 2, 5, 7) ORDER BY pack ASC";

你应该把价格放在页面中的任何位置,但在里面,而循环而不是在外面,而循环

<?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 } ?>
您应该

使用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>"; 
 }