Перевожу сайт с подключения mysqli на pdo. Как заменить данный запрос и цикл на pdo?
Разрабатываю интернет-магазин на OpenServer.
Вот таблица из базы данных https://i.imgur.com/vP3t8gK.png
Вот код из файла с подключением к базе данных:
$host = 'localhost';
$user = 'root';
$pass = '';
$db_name = 'shop';
$conn = new mysqli($host, $user, $pass, $db_name);
if ($conn->connect_error) {
die('Database connection error: ' . $conn->connect_error);
}
Вот цикл вывода товара:
$result = mysqli_query($conn, "SELECT * FROM `products` WHERE `visible`='1' ORDER BY $sorting $qury_start_num");
if (mysqli_num_rows($result) > 0) {
$row = mysqli_fetch_array($result);
do {
if ($row["image"] != "" && file_exists("./upload_images/" . $row["image"])) {
$img_path = './upload_images/' . $row["image"];
$max_width = 150;
$max_height = 150;
list($width, $height) = getimagesize($img_path);
$ratioh = $max_height / $height;
$ratiow = $max_width / $width;
$ratio = min($ratioh, $ratiow);
$width = intval($ratio * $width);
$height = intval($ratio * $height);
} else {
$img_path = "/images/no-image.png";
$width = 200;
$height = 200;
}
echo ('
<li>
<div class="block-images-grid">
<img src ="' . $img_path . '" width="' . $width . '" height="' . $height . '" />
</div>
<p class="style-title-grid"><a href="view_content.php?id='.$row["products_id"].'">' . $row["title"] . '</a></p>
<ul class="revievs-and-counts-grid">
<li><img src="/images/eye-icon.png" /><p>0</p></li>
<li><img src="/images/comment-icon.png" /><p>0</p></li>
</ul>
<a class="add-cart-style-grid" tid="'.$row["products_id"].'"></a>
<p class="style-price-grid"><strong>' . group_numerals($row["price"]) . '</strong> руб.</p>
<div class="mini-features">
' . $row["mini_features"] . '
</div>
</li>
');
} while ($row = mysqli_fetch_array($result));
}
Вот так товар выводится на странице https://i.imgur.com/xyjb6Wp.png
Вот, что я пытался реализовать через pdo:
Вот код из файла с подключением к базе данных:
$host = 'localhost';
$user = 'root';
$pass = '';
$db_name = 'shop';
$conn = new PDO("mysql:host=$host;dbname=$db_name", $user, $pass);
Вот цикл:
$result = $conn->query("SELECT * FROM `products` WHERE `visible`=1");
while($row = $result->fetch()) {
do {
if ($row["image"] != "" && file_exists("./upload_images/" . $row["image"])) {
$img_path = './upload_images/' . $row["image"];
$max_width = 150;
$max_height = 150;
list($width, $height) = getimagesize($img_path);
$ratioh = $max_height / $height;
$ratiow = $max_width / $width;
$ratio = min($ratioh, $ratiow);
$width = intval($ratio * $width);
$height = intval($ratio * $height);
} else {
$img_path = "/images/no-image.png";
$width = 200;
$height = 200;
}
echo ('
<li>
<div class="block-images-grid">
<img src ="' . $img_path . '" width="' . $width . '" height="' . $height . '" />
</div>
<p class="style-title-grid"><a href="view_content.php?id='.$row["products_id"].'">' . $row["title"] . '</a></p>
<ul class="revievs-and-counts-grid">
<li><img src="/images/eye-icon.png" /><p>0</p></li>
<li><img src="/images/comment-icon.png" /><p>0</p></li>
</ul>
<a class="add-cart-style-grid" tid="'.$row["products_id"].'"></a>
<p class="style-price-grid"><strong>' . group_numerals($row["price"]) . '</strong> руб.</p>
<div class="mini-features">
' . $row["mini_features"] . '
</div>
</li>
');
} while($row = $result->fetch());
}