php stmt показ похожих товаров - PullRequest
0 голосов
/ 07 марта 2019

Я создаю сценарий отображения похожих продуктов PHP stmt, этот сценарий работает, но не показывает похожие продукты. Я хочу отобразить название похожих продуктов

Вот мой код

<?php 
$id=$row['id'];
if($stmt = $con->prepare("SELECT title
FROM products order by rand() limit 3
")){
$stmt->execute();
}
$result = $stmt->get_result();
if($result->num_rows > 0){
while($row = $result->fetch_array(MYSQLI_ASSOC)){
    //results
}}
?>  

view.php

    <?php
    if(isset($_GET['id'])) {
    include("config.php");
    $id = $_GET['id'];
    $sql = "select * from products where id = '$id'";
         $result = $con->query($sql); 
           if($result->num_rows > 0){           
                    while($row = $result->fetch_assoc()){
                    //results
              }}}
           ?>

1 Ответ

0 голосов
/ 07 марта 2019

Убедитесь, что учетные данные базы данных в порядке.

Попробуйте код ниже и дайте мне знать

1) Запрос с использованием метода rand () (это то, что вы хотите)

<?php
         $dbhost = 'localhost:3306';
         $dbuser = 'root';
         $dbpass = 'your password goes here';
         $dbname = 'your database goes here';
         $conn = mysqli_connect($dbhost, $dbuser, $dbpass,$dbname);

         if(! $conn ) {
            die('Could not connect: ' . mysqli_error());
         }
         echo 'Connected successfully<br>';
         $sql = 'SELECT title FROM products order by rand() limit 3';
         $result = mysqli_query($conn, $sql);

         if (mysqli_num_rows($result) > 0) {
            while($row = mysqli_fetch_assoc($result)) {
               echo "Title: " . $row["title"]. "<br>";
            }
         } else {
            echo "0 results";
         }
         mysqli_close($conn);
      ?>

2.) Запрос Использование оператора where в этом случае id (1) для отображения названия продукта, где id 1 соответствует ему в базе данных

<?php


         $dbhost = 'localhost:3306';
         $dbuser = 'root';
         $dbpass = 'your password goes here';
         $dbname = 'your database goes here';
         $conn = mysqli_connect($dbhost, $dbuser, $dbpass,$dbname);

         if(! $conn ) {
            die('Could not connect: ' . mysqli_error());
         }
         echo 'Connected successfully<br>';
         $sql = "SELECT id,title FROM products where id='1'";
         $result = mysqli_query($conn, $sql);

         if (mysqli_num_rows($result) > 0) {
            while($row = mysqli_fetch_assoc($result)) {
               echo "Title: " . $row["title"]. "<br>";
            }
         } else {
            echo "0 results";
         }
         mysqli_close($conn);
      ?>

Обновлен раздел

Сначала создайте таблицу ниже и вставьте в нее

create table products(id int(11) primary key auto_increment,title varchar(30),description varchar(30),image varchar(30),cat_id int(11));

Вы вставите хотя бы одну запись

insert into products (id,title,description,image,cat_id) values(1,'product title','product details','product.png',100);

Для тестирования запросите таблицу продуктов, чтобы получить подробную информацию, где id равен 1

<?php

         $dbhost = 'localhost';
         $dbuser = 'root';
         $dbpass = '';
         $dbname = 'anglejs';
         $conn = mysqli_connect($dbhost, $dbuser, $dbpass,$dbname);

         if(! $conn ) {
            die('Could not connect: ' . mysqli_error());
         }
         echo 'Connected successfully<br>';
         $sql = "SELECT id,title,description,image,cat_id FROM products where id='1'";
         $result = mysqli_query($conn, $sql);

         if (mysqli_num_rows($result) > 0) {
            while($row = mysqli_fetch_assoc($result)) {
               echo "Id: " . $row["id"]. "<br>";
               echo "Title: " . $row["title"]. "<br>";
                 echo "description: " . $row["description"]. "<br>";
            }
         } else {
            echo "0 results";
         }
         mysqli_close($conn);
      ?>

Теперь, так как идентификатор идет от url

Для целей тестирования:

Вы можете сохранить код как view.php , как вы это сделали Откройте браузер и введите что-то вроде

http://localhost/-----yourfolder директория идет сюда ----- / view.php? Id = 1 Вы можете видеть Id of 1 , исходящий из URL-адреса, добавленный в файлы view.php. так как мы вставили запись с идентификатором 1, код ниже будет отображать записи только для строк, где id = 1 и т. д.

<?php

         $dbhost = 'localhost';
         $dbuser = 'root';
         $dbpass = '';
         $dbname = 'anglejs';
         $conn = mysqli_connect($dbhost, $dbuser, $dbpass,$dbname);

         if(! $conn ) {
            die('Could not connect: ' . mysqli_error());
         }
         echo 'Connected successfully<br>';


$id = $_GET['id'];
//check if id is empty
if($id==''){
echo "Id is empty";
exit;
}

         $sql = "SELECT id,title,description,image,cat_id FROM products where id='$id'";
         $result = mysqli_query($conn, $sql);

         if (mysqli_num_rows($result) > 0) {
            while($row = mysqli_fetch_assoc($result)) {
               echo "Id: " . $row["id"]. "<br>";
               echo "Title: " . $row["title"]. "<br>";
                 echo "description: " . $row["description"]. "<br>";
            }
         } else {
            echo "0 results";
         }
         mysqli_close($conn);
      ?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...