php - 在同一个PHP网站中引用不同的MySQL查询

标签 php mysql

我开始在 PHP 网站上使用 MySQL...

我有 2 个 div,我正在将信息提取到其中,我将 serviceprice 提取到每个 div,其中 id 等于 0

我可以很好地做到这一点,但是我现在必须在另外 3 个容器 div 中执行此操作,每个容器有 2 个 div)。

我尝试将 SELECT 查询放在每个 div 的顶部,如下所示,但这不起作用。

我试图保持 MySQL 表干净,而不使用 service1service2service3 等,而是使用 id 来引用。

我需要在 echo 中引用 id 还是其他内容?

这是一些代码...

<?php
$sql = "SELECT service, price FROM Australia WHERE id = '0'";
$result = $conn->query($sql);

while($row = $result->fetch_assoc()) {

    ?>

   <div class="container-top">
    <div class="module-service"><span><?php echo $row['service']; ?></span></div>
    <div class="module-price">&pound;<?php echo $row['price']; ?><small> inc VAT </small></div>
   <div>
    <?php $conn->close(); } ?>

<?php
$sql = "SELECT service, price FROM Australia WHERE id = '1'";
$result = $conn->query($sql);

while($row = $result->fetch_assoc()) {

    ?>

   <div class="container-mid">
    <div class="module-service"><span><?php echo $row['service']; ?></span></div>
    <div class="module-price">&pound;<?php echo $row['price']; ?><small> inc VAT </small></div>
   <div>
    <?php $conn->close(); } ?>

<?php
$sql = "SELECT service, price FROM Australia WHERE id = '2'";
$result = $conn->query($sql);

while($row = $result->fetch_assoc()) {

    ?>

   <div class="container-mid">
    <div class="module-service"><span><?php echo $row['service']; ?></span></div>
    <div class="module-price">&pound;<?php echo $row['price']; ?><small> inc VAT </small></div>
   <div>
    <?php $conn->close(); } ?>

<?php
$sql = "SELECT service, price FROM Australia WHERE id = '3'";
$result = $conn->query($sql);

while($row = $result->fetch_assoc()) {

    ?>

   <div class="container-bottom">
    <div class="module-service"><span><?php echo $row['service']; ?></span></div>
    <div class="module-price">&pound;<?php echo $row['price']; ?><small> inc VAT </small></div>
   <div>
    <?php $conn->close(); } ?>

最佳答案

在脚本最后关闭连接,不要重复。第一次关闭后,其他查询将不起作用,因为连接将已关闭。这就像在别人买了东西之后走进一家刚刚关门的商店去买东西;)

此外,您无需创建所有这些循环,每个循环都有一个唯一的 ID,因此请使用它并按 ID 升序 (ASC) 进行排序。

获取 ID,以便您可以使用它。由于您似乎只是更改类,因此您可以在循环本身中更改它,从而减少代码重复。当您需要更改某些内容时,只需更新一处。

<?php
$sql = "SELECT service, price, id FROM Australia ORDER BY id ASC";
$result = $conn->query($sql);

while($row = $result->fetch_assoc()) {
if ($row['id'] == 1)
{
$container = 'top';
}
if ($row['id'] == 2)
{
$container = 'middle';
}
if ($row['id'] == 1)
{
$container = 'bottom';
}
    ?>

   <div class="container-<?php echo $container; ?>">
    <div class="module-service"><span><?php echo $row['service']; ?></span></div>
    <div class="module-price">&pound;<?php echo $row['price']; ?><small> inc VAT </small></div>
   <div>
<?php } ?>

关于php - 在同一个PHP网站中引用不同的MySQL查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41192954/

相关文章:

php - 具有多对多关系的Mysql group_concat

php - curdate() 查询在 laravel 5.2 中不起作用

php - 从具有 PHP 值的 html 表创建输入字段

mysql - 我应该根据事件拆分表格吗?

php - 用户主动检查

mysql - mysql中Query时间是否包括Lock时间?

php - 我不明白 PHP "Daily quote"教程

php - readfile() 由于 SSL 而失败

javascript - TinyMCE 5 file_picker_callback 使用自定义处理程序上传

php - 这段代码有什么错误?当我输入没有尺寸的内容时,没关系,但之后整个页面消失了