Ну, у меня было так много одинаковых результатов в stackoverflow, но этого не было в php и mysqli. Я пытаюсь подсчитать, сколько пользователей оценили, указав c item. Как 10 пользователей оценили item_id 21. Фактически Я могу показать, сколько пользовательских оцененных c элементов, используя счетчик в select * на веб-странице, но мне также нужно сохранить их в моей базе данных. Таким образом, я могу предложить другим пользователям наиболее оцененный продукт. это мне нужно сохранить, сколько пользователей, которые оценили, чтобы указать элемент c. Но я не знаю. Мой код находится в pdo.plz, помогите мне.
В этом коде я могу показать их на веб-странице, используя счетчик, но я тоже хочу сохранить их в базе данных. Я не знаю, где мне поместить запрос на вставку. потому что в моем коде $ output используется только для отображения вывода не для вставки ..
<?php
$connect = new PDO('mysql:host=localhost;dbname=final', 'root', '');
$id=$_GET['id'];
$query = "SELECT p.*,COUNT(r.rating) as rating_num FROM search
as p LEFT JOIN rating as r ON r.business_id = p.id WHERE p.id = $id";
$statement = $connect->prepare($query);
$statement->execute();
$result = $statement->fetchAll();
$output = '';
foreach($result as $row)
{
$rating = count_rating($row['id'],$connect);
$color = '';
$count='';
$output .= '
<h1 class="text-center mt-1 mb-2 p-2" style="text-transform:capitalize;background-color:white;color:black;text-align:center;">Brand_Name:'. $row["brand"].'</h1>
';
$output .= '
<div class="columnhead" style="padding-left:140px;text-align:left;background-color:white;">
<p style="font-size:30px;"><b>Name:</b>'.$row["name"].'</p>
<p style="font-size:30px;"><b> Brand_name:</b>'.$row["brand"].'</p>
<p style="font-size:30px;"><b>Code:</b>'.$row['code'].'</p>
<p style="font-size:30px;"><b>Color:</b>'.$row['color'].'</p>
<p style="font-size:30px;"><b>Size:</b>'.$row['size'].'</p>
<p style="font-size:30px;"><b>Price:</b>'.$row['price'].'</p>
';
for($count=1; $count<=5; $count++)
{
if($count <= $rating)
{
$color = 'color:#ffcc00;';
}
else
{
$color = 'color:#ccc;';
}
$output .= '
<ul class="inline-list title="Average Rating - '.$rating.'" style="display:inline-block;list-style-type: none; padding: 0;"">
<li title="'.$count.'" name="'.$row['name'].'" id="'.$row['id'].'-'.$count.'" data-index="'.$count.'" data-business_id="'.$row['id'].'" data-rating="'.$rating.'" class="rating" style="cursor:pointer; '.$color.' font-size:16px;">★</li>
</ul>
';
}
$output .= '
<p>('.$row["rating_num"].' users voted)</p>
';
$output .= '
<form method="post" action="mycart.php?action=add&id='.$row['id'].'">
<p style="font-size:30px;"><b>Quantity:</b></p><input type="text" name="quantity" class="button1" value="1" width="15px">
<input type="hidden" name="name" value="'.$row['name'].'">
<input type="hidden" name="price" value="'.$row['price'].'">
<br/>
<input type="submit" class="a" name="add_to_cart" value="Add to Cart">
</form>
</div>
';
}
echo $output;
function count_rating($business_id,$connect)
{
$output = 0;
$query = "SELECT AVG(rating) as rating FROM rating WHERE business_id = '".$business_id."'";
$statement = $connect->prepare($query);
$statement->execute();
$result = $statement->fetchAll();
$total_row = $statement->rowCount();
if($total_row > 0)
{
foreach($result as $row)
{
$output = round($row["rating"]);
}
}
return $output;
}
?>