#php
#php
Вопрос:
у меня есть этот код:
<div class="row mt-2">
<?php
include 'config.php';
$stmt = $conn->prepare("SELECT * FROM product");
$stmt->execute();
$result = $stmt->get_result();
while($row = $result->fetch_assoc()):
?>
<div class="col-lg-3">
<div class="card-deck">
<div class="card p-2 border-secondary mb-2">
<a href="link'.$row['zdjecie_produktu']/'"><img style="margin-left:30px;" src="<?= $row['zdjecie_produktu'] ?>" class="card-img-top" height="250"></a>
<div style="margin-left: 30px; margin-right: 30px;" class="card-body p-1">
<h4 class="card-title text-center text-info"><?= $row['nazwa_produktu'] ?> </h4>
<h5 style="color:#fff;" class="card-text text-center text-danger"><?= number_format($row['cena_produktu'],2) ?>zł</h5>
</div>
<div class="card-footer p-1">
<form action="" class="form-submit">
<input type="hidden" class="pid" value="<?= $row['id'] ?>">
<input type="hidden" class="pname" value="<?= $row['nazwa_produktu'] ?>">
<input type="hidden" class="pprice" value="<?= $row['cena_produktu'] ?>">
<input type="hidden" class="pimage" value="<?= $row['zdjecie_produktu'] ?>">
<input type="hidden" class="pcode" value="<?= $row['kod_produktu'] ?>">
<button style="margin-left:300px;" class="btn btn-info btn-block addItemBtn"><img src="cart.png" width="20px;"></button>
<style>
.btn:hover {
background: #F5E595;
}
</style>
</form>
</div>
</div>
</div>
</div>
<?php endwhile; ?>
</div>
</div>
Но я хочу, чтобы каждая картинка была связана с другим HTML (в данном случае с изображением продукта с его описанием)… есть ли какой-нибудь код для этого?
Комментарии:
1. Итак, вы спрашиваете, есть ли способ динамического изменения
href
?2. просто используйте другую цель в вашем [теге], например <a href=product.php?serial=1234>
3. @El_Vanja Да, я так думаю
4. Затем создайте
href
способ, которым вы создаетеsrc
свойimg
тег — на основе переменной.
Ответ №1:
Ключевым компонентом является наличие уникального идентификатора в качестве ссылки.
Если у вас есть массив данных products (из базы данных или где угодно), скажите, как:
// products.php
// $products Array // Multiple products from database
$products = [
[
"id" => 101,
"img" => "101.jpg",
"name" => "foo",
"desc" => "bar",
"price" => 123.45,
],
// [ ...another one here
];
Все, что вам нужно, это повторить их:
// products.php foreach ($products as $pr): echo "<a href="product.php?id={$pr['id']}"><img src="products/{$pr['img']}" alt="{$pr['desc']}"> {$pr['name']} - {$pr['price']}
lt;/a>";
endforeach;
Обратите внимание на параметр поискового запросаproduct.php?id=101
— получите его значение внутриproduct.php
страницы из HTTP-запроса с помощью GET .
Все, что вам нужно, это запросить базу данных для этого отдельного продукта по его идентификатору:// product.php $productId = $_GET['id']; // @TODO: check if isset and validate echo $productId; // 101 // Go query database, get single product by ID and display it // Don't forget to use PDO Prepared Statements when querying the DB
Комментарии:
1. я получаю это на своей странице: foreach ($product как $pr): echo » {$pr[‘nazwa_produktu’]} — {$pr[‘cena_produktu’]} $»; endforeach; … вместо картинок
2. @OmegaMarcinek это, скорее всего, потому, что вы не используете PHP-файл (вероятно, a
.html
?). Пожалуйста, просмотрите еще раз приведенный пример кода и убедитесь, что вы находитесь в среде PHP.3. нет .. я использую php-файл … я не знаю, что не так
4. @OmegaMarcinek смотрите этот пример: phpsandbox.io/n/blue-frost-0xlb
5. я использую это: drive.google.com/file/d/1MyoNm3NSuPftxHiqS77UO6lOEbHED2Nx /…
Ответ №2:
По сути, все, что вам нужно сделать, это создать php-файл, называемый product.php и снабдите его параметром GET или строкой запроса.
Шаги будут примерно такими:
- создайте php-файл:
product.php
- внутри вы должны выбрать информацию о своем продукте и отобразить ее:
$id = isset($_GET['id']) ? $_GET['id'] : '' if($id == '') { die('Invalid product id.'); } $sql = "SELECT * FROM product WHERE id = :id"; //process this query using your database method of choices //if product found, display the detail HTML: <div class="product-name"><?php echo $row['product_name']; ?></div> <img src="<?php echo $row['product_image']; ?>"><br>
- Теперь вернемся к вашему списку продуктов, измените его
<a>
href
наproduct.php?id=$id
<a href="product.php?id=<?php echo $row['product_id']; ?>"> <img style="margin-left:30px;" src="<?= $row['zdjecie_produktu'] ?>" class="card-img-top" height="250"> </a>