使用 mySQL 数据库中的数据填充引导卡

Filling boostrap cards with data from a mySQL database

我正在尝试用数据库中的数据填充 bootstrap 卡片。 我很亲近。 我有一个名为 project.php

的主 php 文件

一个名为组件的文件来填充它们,称为component.php。

还有一个 connectDB.php 文件,它连接数据库并从 table.

中提取信息

我知道这是很多代码,所以我强调了 2 个方面,问题肯定出在...抱歉,如果太多,我可以在需要时删除该功能,因为它可以工作..

这里摘自 project.php

<?php
require_once('connect/connectDB.php');
require_once('component.php');




?>
<!doctype html>
<html lang="en">
  <head>

   <title>The Wild Music Shop</title>
   
    <!-- Required meta tags -->
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
    <!--Font awesome-->
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.3/css/all.min.css" integrity="sha512-iBBXm8fW90+nuLcSKlbmrPcLa0OT92xO1BIsZ+ywDWZCvqsWgccV3gFoRBv0z+8dLJgyAHIhR35VZc2oM/gI1w==" crossorigin="anonymous" />
    <!-- Bootstrap CSS -->
    <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.6.0/dist/css/bootstrap.min.css" integrity="sha384-B0vP5xmATw1+K9KRQjQERJvTumQW0nPEzvF6L/Z6nronJ3oUOFUFpCjEUQouq2+l" crossorigin="anonymous">
    
    <!-- i have no idea why it won't link -->
    <!-- <link type="text/css" rel="stylesheet" href="myCSS/somecss.css"> -->
    <link rel="stylesheet" href="myCSS/somecss.css">

</head>
<body>

    <!-- the cards -->
    <div class = "container" id="thecards">
        <div class = "row text-center py-5">

//Definite problem here
             <?php
             $result = getData();
             while ($row = mysqli_fetch_assoc($result)){
                 component($row['InstName'], $row['Price'], $row['ProductImg'], $row['description']);
             }
            ?>  
            

        </div>

    </div>
</html>

这个组件在我测试时确实有效

<?php

function component($pInstName, $pPrice, $pProductImg, $pdescription){
    $element = "
    
    <div class=\"col-md-3 col-sm-6 my-3 my-md-0\">
                <form action=\"index.php\" method=\"post\">
                    <div class=\"card shadow\">
                        <div>
                            <img src=\ $pProductImg\" alt=\"Image1\" class=\"img-fluid card-img-top\">
                        </div>
                        <div class=\"card-body\">
                            <h5 class=\"card-title\">Our $pInstName</h5>
                            <h6>
                                <i class=\"fas fa-star\"></i>
                                <i class=\"fas fa-star\"></i>
                                <i class=\"fas fa-star\"></i>
                                <i class=\"fas fa-star\"></i>
                                <i class=\"far fa-star\"></i>
                            </h6>
                            <p class=\"card-text\">
                            $pdescription
                            </p>
                            <h5>
                               
                                <span class=\"price\">$$pPrice</span>
                            </h5>
                            <button type=\"submit\" class=\"btn btn-warning my-3\" name=\"add\">Add to Cart </button>
                             
                        </div>
                    </div>
                </form>
            </div>
    ";
    echo $element;
}
?>

最后是 connectDB.php

<?php


        //Create a database connection
        $dbhost = "localhost";
        $dbuser = "root";
        $dbpassword = "";
        $dbname = "g00398295";

        $connection = mysqli_connect($dbhost,$dbuser,$dbpassword,$dbname);
        
        //Test if connection occoured
        if(mysqli_connect_errno()){
            die("DB connection failed: " .
                mysqli_connect_error() .
                    " (" . mysqli_connect_errno() . ")"
                    );
        }

        if (!$connection)
            {
                die('Could not connect: ' . mysqli_error());
            }
            
            $sql = "select * from Instruments where itemno = 1; ";
            
            $result = mysqli_query($connection,$sql);
            $row=mysqli_fetch_assoc($result);
            
            echo "Pls work".$row['InstName'];
            
            mysqli_close($connection);
            //get product from Database
//Definite problem here
        function getData(){
            $sql = "select * from $this->tablename";

            $result = mysqli_query($this->con,$sql);
            if(mysqli_num_rows($result) > 0){
                return $result;
            }

        }

?>

我知道问题出在连接步骤中。总的来说,我是 php 的新手,已经工作了很长时间,非常感谢您的帮助!

您的函数 getData() 具有 "$this->table"。不要在不理解它的作用的情况下复制粘贴代码。

清理你的 connectDB.php:

<?php
    //Create a database connection
    $dbhost     = "localhost";
    $dbuser     = "root";
    $dbpassword = "";
    $dbname     = "g00398295";

    $connection = mysqli_connect($dbhost, $dbuser, $dbpassword, $dbname);
        
    //Test if connection occoured
    if(mysqli_connect_errno()){
        die("DB connection failed: " .
            mysqli_connect_error() .
            " (" . mysqli_connect_errno() . ")"
        );
    }
?>

project.php中:

<div class = "row text-center py-5">
    //Definite problem here
    <?php
        $sql = "select * from Instruments where itemno = 1; ";
 
        $result = mysqli_query($connection,$sql);
        while ($row = mysqli_fetch_assoc($result)){
            component($row['InstName'], $row['Price'], $row['ProductImg'], $row['description']);
        }
    ?>  
</div>