Я работаю над небольшим университетским заданием, чтобы создать простой механизм электронной коммерции, используя PHP для веб-сайта.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 Injection. никогда не показывайте свой код и сайт, на котором он работает. Даже если вы хотите изменить его позже. –
просто совет. Не строите мышление, я сделаю это позже с безопасностью. Это может оказаться дорогостоящим. – SchautDollar
Вы можете легко получить обходное решение с помощью 'mysql_real_escape_string', хотя оно разрознено, вы можете быстро решить свой недостаток в инъекции. –