【发布时间】:2013-02-28 03:13:51
【问题描述】:
我正在完成一项小型大学任务,即使用 PHP 为网站构建一个简单的电子商务引擎。
我目前有以下脚本设置来显示一个类别中的产品,所有这些都是从 MySQL 数据库中检索的。
http://example.com/category.php?id=2
我目前遇到的问题是,对于显示的每个产品,脚本只是简单地将每个产品并排回显到一个新的表格条目中。这导致他们跨越页面而不是垂直。
更改此代码以例如每行最多三个产品的最佳方法是什么? If循环或类似的东西?感谢您的支持!
<?php
//Create Session
session_start();
//Connect to database
include "conn.php";
//Retrieve Header
include "header.php";
//Get Category ID
if (isset($_GET['id'])){
$CategoryID = $_GET['id'];
//QUERY collects product name, and product ID.
$q="SELECT ProductID, ProductName, Price,img FROM Products WHERE CategoryID=$CategoryID";
//QUERY collects Product Category descriptions
$d="SELECT `Desc` FROM ProductCategories WHERE CategoryID=$CategoryID";
//retrive and execute SQL query results and save into a variable
$result = mysqli_query($_SESSION['conn'],$q);
$result2 = mysqli_query($_SESSION['conn'],$d) or die(mysql_error());
//Retrieve Product Category Description
echo "<div>";
while ($myResult = mysqli_fetch_row($result2)){ //Create an array
echo "<p>".$myResult[0]."</p>";
}
echo "</div>";
//Retrieve Products in category
echo "<div align='center'><table border='1px' bordercolor='#000000' width='200px'><tr>"; //Define table, row and div containing each product
while ($row = mysqli_fetch_row($result)){ //Create an array
echo "<td>"; //Create table cell
echo "<p><img src=".$row[3]."></p>"; //product image small (250x250 Pixels)
echo "<p align='center'><a href='product.php?id=".$row[0]."'>".$row[1]." </a></p>"; //Product ID Link and Name
echo "<p align='center'>£ ".$row[2]."</p>";
echo "</td>"; //Close table cell
}
echo "</tr></table></div>";//Close table, div and row
mysqli_free_result($result);
}
// Retireve Footer
include "footer.php";
?>
对于任何类型的编程,我都是新手,因此非常感谢您给予我的耐心/任何支持。我也知道 SQL 注入问题,并将在以后解决此问题。
【问题讨论】:
-
我删除了指向您页面的链接,因为您的代码存在一些 SQL 注入缺陷。永远不要显示您的代码及其运行的站点。即使您以后想更改它。
-
只是一个提示。不要建立我以后会安全地做这件事的心态。这最终可能代价高昂。
-
您可以使用
mysql_real_escape_string轻松获得解决方法,虽然它已被弃用,但您可以快速解决您的注入缺陷。 -
这是非常好的建议,非常感谢! :)
-
这是一个非常糟糕的建议,丽莎,因为这并不能解决他的任何问题。除非他也将 qoutes 放入
CategoryID='$CategoryID'。 mysql_real_escape_string on numbers 是获取安全漏洞和虚假安全感的最佳方式。
标签: php html if-statement html-table