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

Posted

技术标签:

【中文标题】使用来自 mySQL 数据库的数据填充引导卡【英文标题】:Filling boostrap cards with data from a mySQL database 【发布时间】:2021-08-03 02:30:04 【问题描述】:

我正在尝试用数据库中的数据填充引导卡。 我非常接近。 我有名为 project.php 的 mainphp 文件

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

还有一个 connectDB.php 文件,用于连接数据库并从表中提取信息。

我知道这是很多代码,所以我强调了问题肯定出在的 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 很陌生,并且已经很长时间了,我将不胜感激!

【问题讨论】:

您确实需要缩小问题范围。您遇到的确切问题是什么?您是否收到任何错误?它只是不像你期望的那样格式化吗? 是的,很抱歉,我在不断调整代码时遇到了多个错误。我很累。我知道 slack 并不是要让人们编写代码,我只知道我非常接近。 【参考方案1】:

您有一个具有“$this->table”的函数 getData()。不要复制粘贴代码而不了解它的作用......清理你的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>

【讨论】:

你是说在那里结束 php 脚本吗?当我没有这样做时,我得到了一个无法通过 sql 连接错误。然后我这样做了,我通过得到了列表中的一项 好的 经过一些调整,您以非常简单的方式解决了我的问题。谢谢!

以上是关于使用来自 mySQL 数据库的数据填充引导卡的主要内容,如果未能解决你的问题,请参考以下文章

实时更新引导卡数据

根据以前的表单输入和来自 MySQL 的数据填充下拉列表

使用 NSDictionary 填充 UITableView,其中包含来自 mysql db 的已解析 JSON 数据

无法使用引导模式从 MySQL 中删除数据

用来自 php 的数据填充 flash 中的数组

使用带有引导选项卡的固定列的数据表问题