HTML/PHP/SQL-将值从数据库匹配到网站

HTML/PHP/SQL-将值从数据库匹配到网站,php,html,sql,Php,Html,Sql,我在一个网站上工作,它有一个付款计划,每个计划有不同的价格。有了这个,我用SQL创建了一个数据库,所以如果需要,我可以更改计划的价格,这样它就会自动更新到网站上 使用W3Schools上给出的一个示例,我创建了一个基本文件,该文件应该能够获取产品名称和价格。然而,由于有三种不同的计划类型,我不确定如何定义(在index.php中)每种产品和价格。每个产品都有一个主键,我没有将它添加到PHP文件中,因此如果有人能给我一些关于如何实现这一点的建议,我将不胜感激 这样做的目的是更改一行,例如 <

我在一个网站上工作,它有一个付款计划,每个计划有不同的价格。有了这个,我用SQL创建了一个数据库,所以如果需要,我可以更改计划的价格,这样它就会自动更新到网站上

使用W3Schools上给出的一个示例,我创建了一个基本文件,该文件应该能够获取产品名称和价格。然而,由于有三种不同的计划类型,我不确定如何定义(在index.php中)每种产品和价格。每个产品都有一个主键,我没有将它添加到PHP文件中,因此如果有人能给我一些关于如何实现这一点的建议,我将不胜感激

这样做的目的是更改一行,例如

<p class="plan-price">&pound;14.95 <span>

£;14.95

变成

<p class="plan-price">&pound;'.$SESSION_PRICE['price'].' <span>

£$会话价格[“价格”]。'

普莱斯公司

<?php
include '../dbh.php';

$sql2    = "SELECT * FROM products";
$result2 = mysqli_query($conn, $sql2);

if(mysqli_num_rows($result2) > 0) {
    while($row = mysqli_fetch_assoc($result)) {
        $_SESSION_PRICE['productTitle'] = $row['productTitle'];
        $_SESSION_PRICE['price'] = $row['price'];
    }   
}
?>

index.php(只是必需的部分)


今天点菜。
保险费

£;14.95/月

  • 优先访问
  • 全天候在线支持
  • 随时随地访问
  • 无限速度
赞成

£;9.95/月

  • 全球访问
  • 全天候在线支持
  • 随时随地访问
  • 无限速度
清淡的

£;4.95/月

  • 全球访问
  • 全天候在线支持
  • 随时随地访问
  • 无限速度

我不确定您是否应该命名一个变量$\u SESSION\u PRICE,因为它看起来应该是一个超全局变量。也许可以试试这样:

if(mysqli_num_rows($result2) > 0) {
    while($row = mysqli_fetch_assoc($result)) {
        $session_price['productTitle'] = $row['productTitle'];
        $session_price['price'] = $row['price'];
    }   
}
include 'price.inc.php';
然后,为了将该PHP值放入HTML中,在PHP块中回显它。试试这个:

<p class="plan-price">&pound; <?php echo $session_price['price']; ?><span>
现在,所有这些的问题是,您正在循环抛出SQL查询返回的结果,并在同一索引上重复赋值:

while($row = mysqli_fetch_assoc($result)) {
        $session_price['productTitle'] = $row['productTitle'];
        $session_price['price'] = $row['price'];
} 
如果要获取多个产品,则需要按如下方式存储它们:

在循环时编辑

然后,您需要动态创建HTML以在循环中显示每个产品,如下所示:

<?php 

  foreach ($session_price as $individual_item) {
    $item_name = $individual_item['productTitle'];
    $price = $individual_item['price'];
?>

  <div class="col span-1-of-3">
    <div class="plan-box">
        <div>
          <h4><?php echo $item_name; ?> </h4>
          <p class="plan-price">&pound;<?php echo $price; ?><span> / Month </span></p>
        </div>
        <div>
            <ul>

              <?php 

                if ($individual_item['productTitle'] == 'Premium') {
                  $access = 'Priority Access';
                } else {
                  $access = 'Worldwide Access';
                }

              ?>

                <li><i class="ion-ios-checkmark icon-small"></i><?php echo $access; ?></li>
                <li><i class="ion-ios-checkmark icon-small"></i>24/7 Online Support</li>
                <li><i class="ion-ios-checkmark icon-small"></i>Access Anywhere</li>
                <li><i class="ion-ios-checkmark icon-small"></i>Unlimited Speed</li>
            </ul>
        </div>
        <div>
            <a href="#" class="btn btn-full">Sign Up Now</a>
        </div>
    </div>
  </div>

<?php 

} // end foreach loop

?>

£;/月

  • 全天候在线支持
  • 随时随地访问
  • 无限速度

我不确定您是否应该命名一个变量$\u SESSION\u PRICE,因为它看起来应该是一个超全局变量。也许可以试试这样:

if(mysqli_num_rows($result2) > 0) {
    while($row = mysqli_fetch_assoc($result)) {
        $session_price['productTitle'] = $row['productTitle'];
        $session_price['price'] = $row['price'];
    }   
}
include 'price.inc.php';
然后,为了将该PHP值放入HTML中,在PHP块中回显它。试试这个:

<p class="plan-price">&pound; <?php echo $session_price['price']; ?><span>
现在,所有这些的问题是,您正在循环抛出SQL查询返回的结果,并在同一索引上重复赋值:

while($row = mysqli_fetch_assoc($result)) {
        $session_price['productTitle'] = $row['productTitle'];
        $session_price['price'] = $row['price'];
} 
如果要获取多个产品,则需要按如下方式存储它们:

在循环时编辑

然后,您需要动态创建HTML以在循环中显示每个产品,如下所示:

<?php 

  foreach ($session_price as $individual_item) {
    $item_name = $individual_item['productTitle'];
    $price = $individual_item['price'];
?>

  <div class="col span-1-of-3">
    <div class="plan-box">
        <div>
          <h4><?php echo $item_name; ?> </h4>
          <p class="plan-price">&pound;<?php echo $price; ?><span> / Month </span></p>
        </div>
        <div>
            <ul>

              <?php 

                if ($individual_item['productTitle'] == 'Premium') {
                  $access = 'Priority Access';
                } else {
                  $access = 'Worldwide Access';
                }

              ?>

                <li><i class="ion-ios-checkmark icon-small"></i><?php echo $access; ?></li>
                <li><i class="ion-ios-checkmark icon-small"></i>24/7 Online Support</li>
                <li><i class="ion-ios-checkmark icon-small"></i>Access Anywhere</li>
                <li><i class="ion-ios-checkmark icon-small"></i>Unlimited Speed</li>
            </ul>
        </div>
        <div>
            <a href="#" class="btn btn-full">Sign Up Now</a>
        </div>
    </div>
  </div>

<?php 

} // end foreach loop

?>

£;/月

  • 全天候在线支持
  • 随时随地访问
  • 无限速度
您的

£$会话价格[‘价格’。

应该增加回声

£

您的

£$会话价格[‘价格’。

应该增加回声


£

好的,很好,我可以以14.95英镑的价格获得第一个正确显示的价格。但是,我将如何显示其他两种产品的价格,因为我将反复引用相同的价格?请参阅我的编辑,它涵盖了处理多个产品。只要尝试一下,它就会抛出“非法字符串偏移…”的警告然后提到productTitle和Price,这是因为我忘了在while循环中包含索引计数器,现在用带有$I计数器的调整while循环检查它。如果您需要我解释我很乐意解释的部分,请告诉我。它现在在index.php的第80行“Undefined variable:session_price”上抛出了一个错误,即“foreach($session_price as$individual_item)”。但它肯定可以访问它,因为我已经将price.inc.php包含在我的索引文件中,所以我不确定为什么会这样。好的,我可以以14.95英镑的价格获得第一个正确显示的价格。但是,我将如何显示其他两种产品的价格,因为我将一遍又一遍地引用相同的价格?请参见我的编辑,它涵盖了处理多个产品。只要尝试一下,它就会抛出一个w