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