@Broder

Не работает часть скрипта PHP при смены PHP 7 на 8?

Добрый день.

Есть скрипт, при смене PHP с 7 на 8 сайта работает корректно, кроме одной страницы, ее функционал не загружается до конца на PHP 8. Проблема именно в следующем кусочке кода, при его удалении, страница загружается ( но не весь функционал, без рейтинга отзыва):

<div class="reviews-statistics">
				<div class="reviews-statistics-rows">
					<?php
					$total=intval(mysql_result(mysql_query("SELECT COUNT(*) FROM `reviews` WHERE `good`='".$item['id']."' AND `accepted`='1';"), 0, 0));
					for($i=5;$i>=1;$i--){
					$count=intval(mysql_result(mysql_query("SELECT COUNT(*) FROM `reviews` WHERE `good`='".$item['id']."' AND `accepted`='1' AND `rating`='".$i."';"), 0, 0));
					?>
					<div class="reviews-statistics-row">
						<span class="current-ratings-stars current-ratings-<?php echo $i; ?>"></span>
						<span class="current-ratings-percent"><?php echo intval(ceil($count/$total*100)); ?>%</span>
						<span class="current-ratings-count<?php if($currentReviewsRatingFilter==$i){ ?> current<?php } ?>"><a href="/goods/<?php echo $item['id']; ?>/<?php if($currentReviewsRatingFilter!=$i){ ?>?rating=<?php echo $i; ?><?php } ?>#reviews"><?php echo declOfNum(array(), $count, array('отзыв', 'отзыва', 'отзывов')); ?></a></span>
						<script>
						$(function(){
							$('.current-ratings-<?php echo $i; ?>').starRating({
							starSize: 22,
							initialRating: <?php echo $i; ?>,
							readOnly: true,
							useFullStars: true,
							ratedColor: 'gold'
							});
						});
						</script>
					</div>
					<?php
					}
					?>
				</div>
			</div>
		</div>
		<?php
		$get_reviews=mysql_query("SELECT * FROM `reviews` WHERE `good`='".$item['id']."' AND `accepted`='1'".($currentReviewsRatingFilter>0?" AND `rating`='".$currentReviewsRatingFilter."'":'')." ORDER BY `id` DESC;");
		?>
		<hr id="reviews">
		<?php if(mysql_num_rows($get_reviews)){ ?>
			<div class="reviews-list">
			<?php while($review=mysql_fetch_assoc($get_reviews)){ ?>
				<div class="review">
					<div>
						<span class="review-author"><?php echo htmlspecialchars($review['name']); ?></span>
						<span class="review-rating my-rating-<?php echo $review['id']; ?>"></span>
						<script>
						$(function(){
							$('.my-rating-<?php echo $review['id']; ?>').starRating({
							starSize: 16,
							initialRating: <?php echo $review['rating']; ?>,
							readOnly: true,
							useFullStars: true,
							ratedColor: 'gold'
							});
						});
						</script>
					</div>
					<?php if($review['pros']!=''){ ?>
					<div class="review-row">
						<div class="review-row-title">
							Что понравилось:
						</div>
						<div class="review-row-value">
							<?php echo nl2br(htmlspecialchars($review['pros'])); ?>
						</div>
					</div>
					<?php } ?>
					<?php if($review['cons']!=''){ ?>
					<div class="review-row">
						<div class="review-row-title">
							Что не понравилось:
						</div>
						<div class="review-row-value">
							<?php echo nl2br(htmlspecialchars($review['cons'])); ?>
						</div>
					</div>
					<?php } ?>
					<div class="review-row">
						<div class="review-row-title">
							Отзыв:
						</div>
						<div class="review-row-value">
							<?php echo nl2br(htmlspecialchars($review['text'])); ?>
						</div>
					</div>
					<div class="review-row">
						<div class="review-row-title">
							Рекомендую:
						</div>
						<div class="review-row-value">
							<?php echo $review['recommend']=='1'?'Да':'Нет'; ?>
						</div>
					</div>
				</div>
			<?php } ?>
			</div>
		<?php } else { ?>
			<div class="notification is-warning">
			<?php if($currentReviewsRatingFilter>0){ ?>
			Отзывы с этим рейтингом не найдены.
			<?php } else { ?>
			Ещё никто не оставил отзывов. Будьте первым!
			<?php } ?>
			</div>
		<?php } ?>
	</div>
</div>


Подскажите, в чем может быть дело?
  • Вопрос задан
  • 222 просмотра
Решения вопроса 1
nokimaro
@nokimaro
Меня невозможно остановить, если я смогу начать.
надо переписывать код и выкидывать mysql_result, mysql_query, mysql_fetch_assoc, mysql_num_rows
https://www.php.net/manual/en/function.mysql-query.php

Warning
This extension was deprecated in PHP 5.5.0, and it was removed in PHP 7.0.0. Instead, the MySQLi or PDO_MySQL extension should be used. See also MySQL: choosing an API guide. Alternatives to this function include:


меняйте на mysqli или pdo
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
ipatiev
@ipatiev Куратор тега PHP
Потомок старинного рода Ипатьевых-Колотитьевых
В 7 версии этот код тоже не работает
Ответ написан
Комментировать
SagePtr
@SagePtr
Еда - это святое
Можно прослойку присобачить, к примеру, одну из этих:
https://github.com/dotpointer/mysql-shim
https://github.com/dshafik/php7-mysql-shim
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы