使用来自 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 数据库的数据填充引导卡的主要内容,如果未能解决你的问题,请参考以下文章