@syeta_126r

Как реализовать data_seek?

Здравствуйте, нашел код, который по всей видимости реализован на mysqli, но я особо не разбираюсь
При попытке реализовать это на моем сайте где PDO подключение, у меня выходит ошибка
Fatal error: Uncaught Error: Call to undefined method PDOStatement::data_seek()


Так как моих сил не хватает, обрыл интернет и не нашел PDO data_seek, видел разные вариации и ничего не подошло, так сказать методом тыка, так-как не понимаю, есть ли какое то решение?
Полный код:
<?	
	global $connect, $user;
 
	$sql = "SELECT * FROM businesses";
	$result = $connect->query($sql);
	$rows = $result->fetch();	
	
	if($rows != 0)
	{
		for ($i = 0;$i < $rows;$i ++)
		{
			$result->data_seek($i);
			$map = $result->fetch_assoc();
			
			$name = $map['Name'];
			$x = $map['Enter_X'];
			$y = $map['Enter_Y'];
		    $owner = $map['Owner'];
			$cost = $map['Cost'];
			$state = $map['State'];
			
			if($x > 0) $left = (3000 + abs($x))/5.3;
			else $left = (3000 - abs($x))/5.3;
			if($y > 0) $top = (3000 - abs($y))/5.3;
			else $top = (3000 + abs($y))/5.3;
			if($owner == 'The State')
			{
			    $content .= '
		     		<div class="map-icon business-state-'.$state.' business-for-sale" style="top:'.$top.'px; left:'.$left.'px;background:url(public/images/design/business_1.gif)" data-original-title="'.$name.'<br><br>Стоимость: '.$cost.'$" data-toggle="tooltip" data-html="true"></div>
	    		';
			}
			else
			{
				$content .= '
		     		<div class="map-icon business-state-'.$state.' business-not-sale" style="top:'.$top.'px; left:'.$left.'px;background:url(public/images/design/business_0.gif)" data-original-title="'.$name.'<br><br>Владелец: '.$owner.'" data-toggle="tooltip" data-html="true"></div>
	    		';
			}
		};
	}
	$result->close();
    
	$sql = "SELECT * FROM houses";
	$result = $mysqli->query($sql);
	$rows = $result->num_rows;

	if($rows != 0)
	{	
		for ($i = 0;$i < $rows;$i ++)
		{
			$fix = $i;
			
			$result->data_seek($i);
			$map = $result->fetch_assoc();
			
			$id = $fix;
			$x = $map['Enter_X'];
			$y = $map['Enter_Y'];
		    $owner = $map['Owner'];
			$cost = $map['Cost'];
			
			if($x > 0) $left = (3000 + abs($x))/5.3;
			else $left = (3000 - abs($x))/5.3;
			if($y > 0) $top = (3000 - abs($y))/5.3;
			else $top = (3000 + abs($y))/5.3;
			if($owner == 'The State')
			{
			    $content .= '
		     		<div class="map-icon house-for-sale" style="top:'.$top.'px; left:'.$left.'px;background:url(public/images/design/house_1.gif)" data-original-title="№ '.$id.'<br><br>Стоимость: '.$cost.'$" data-toggle="tooltip" data-html="true"></div>
	    		';
			}
			else
			{
				$content .= '
		     		<div class="map-icon house-not-sale" style="top:'.$top.'px; left:'.$left.'px;background:url(public/images/design/house_0.gif)" data-original-title="№ '.$id.'<br><br>Владелец: '.$owner.'" data-toggle="tooltip" data-html="true"></div>
	    		';
			}
		};
	}
?>


Суть самого скрипта в том, что он должен на изображение(игровую карту) вывести иконки домов и бизнесов игроков
  • Вопрос задан
  • 54 просмотра
Решения вопроса 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
- $result = $connect->query($sql);
- $rows = $result->fetch();	
- if($rows != 0)
- {
-   for ($i = 0;$i < $rows;$i ++)
-   {
-     $result->data_seek($i);
-     $map = $result->fetch_assoc();
+ foreach ($connect->query($sql) as $map) {
- }
- $result->close();

- if($x > 0) $left = (3000 + abs($x))/5.3;
- else $left = (3000 - abs($x))/5.3;
+ $left = (3000 + $x)/5.3;
- if($y > 0) $top = (3000 - abs($y))/5.3;
- else $top = (3000 + abs($y))/5.3;
+ $top = (3000 - $y)/5.3;
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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