[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: объемный php mysql запрос
Миха
задавал вопрос на нескольких форумах но ответа пока нет.
даже картинку нарисовал чтобы понятнее было
user posted image
суть вопроса
имеем $x=57 $y=14 ,нужно выбрать 25 значений


$y=14; $x=57;
$mapa = mysql_query("SELECT pole.'$x-2',pole.'$x-2',pole.'$x',pole.'$x+1',pole.'$+2',
FROM map001
WHERE id = '
$y-2'&&'$y-1'&&'$y'&&'$y+1'&&'$y+2' ",$db);
$mapkl = mysql_fetch_array($mapa);

а как потом извлекать . извлекается 1я строка и всё.
учился по Попову, местные поймут)).
Надеюсь на помощь, зараннее спасибо



Спустя 2 минуты, 47 секунд (22.05.2012 - 14:02) TranceIT написал(а):

$y=14; $x=57;
$mapa = mysql_query("SELECT pole.'$x-2',pole.'$x-2',pole.'$x',pole.'$x+1',pole.'$+2',
FROM map001
WHERE id = '
$y-2'&&'$y-1'&&'$y'&&'$y+1'&&'$y+2' ",$db);
while ($row = mysql_fetch_assoc($mapa))
$mapkl[] = $row;

print_r($mapkl);

Спустя 18 минут, 9 секунд (22.05.2012 - 14:20) Миха написал(а):
ругается

Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in Z ...

мне необходимы точечные запросы например на 7ю, потом 4ю ячейку таблицы
мне кажется ошибка где-то здесь

WHERE id = '$y-2'&&'$y-1'&&'$y'&&'$y+1'&&'$y+2' ",$db);

Спустя 3 минуты, 17 секунд (22.05.2012 - 14:23) Kuliev написал(а):
Цитата (Миха @ 22.05.2012 - 14:20)
ругается

Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in Z ...

мне необходимы точечные запросы например на 7ю, потом 4ю ячейку таблицы
мне кажется ошибка где-то здесь

WHERE id = '$y-2'&&'$y-1'&&'$y'&&'$y+1'&&'$y+2' ",$db);

Ошибка в запросе, лишняя запятая!!! Отлавливайте ошибки после запроса!

Спустя 7 минут, 24 секунды (22.05.2012 - 14:31) Миха написал(а):
запятую я здесь ошибочно поставил когда код переписывал(переменные упрощал).


Спустя 6 минут, 3 секунды (22.05.2012 - 14:37) Kuliev написал(а):
Цитата (Миха @ 22.05.2012 - 14:31)
запятую я здесь ошибочно поставил когда код переписывал(переменные упрощал).

Я имел ввиду в САМОМ ЗАПРОСЕ, смотрите внимательней!

Спустя 1 минута, 44 секунды (22.05.2012 - 14:39) TranceIT написал(а):
В запросе значит ошибка. Перед mysql_fetch_assoc() сделайте echo $mapa; и внимательно изучите.

Спустя 16 минут, 24 секунды (22.05.2012 - 14:55) Миха написал(а):
возможно я сам вас путаю пытаясь упростить переменные.
выкладываю оригинал кода

$result = mysql_query("SELECT * FROM uzers WHERE id = 1 ",$db);
$myarr = mysql_fetch_array($result);
$xx=$myarr[xx];$yy=$myarr[yy];$ttt=$yy-1;$ddd=$yy+1;$lll=$xx-1;$rrr=$xx+1;

$mapa = mysql_query("SELECT * FROM map001 WHERE id = $yy-2 ",$db);
$mapkl = mysql_fetch_array($mapa);
$aa='zzz'.$mapkl['xx'.($xx-2)];$ab='zzz'.$mapkl['xx'.($xx-1)];$ac='zzz'.$mapkl['xx'.($xx)];$ad='zzz'.$mapkl['xx'.($xx+1)];$ae='zzz'.$mapkl['xx'.($xx+2)];

$mapa = mysql_query("SELECT * FROM map001 WHERE id = $yy-1 ",$db);
$mapkl = mysql_fetch_array($mapa);
$ba='zzz'.$mapkl['xx'.($xx-2)];$bb='zzz'.$mapkl['xx'.($xx-1)];$bc='zzz'.$mapkl['xx'.($xx)];$bd='zzz'.$mapkl['xx'.($xx+1)];$be='zzz'.$mapkl['xx'.($xx+2)];

$mapa = mysql_query("SELECT * FROM map001 WHERE id = $yy ",$db);
$mapkl = mysql_fetch_array($mapa);
$ca='zzz'.$mapkl['xx'.($xx-2)];$cb='zzz'.$mapkl['xx'.($xx-1)];$cc='zzz'.$mapkl['xx'.($xx)];$cd='zzz'.$mapkl['xx'.($xx+1)];$ce='zzz'.$mapkl['xx'.($xx+2)];

$mapa = mysql_query("SELECT * FROM map001 WHERE id = $yy+1 ",$db);
$mapkl = mysql_fetch_array($mapa);
$da='zzz'.$mapkl['xx'.($xx-2)];$d1='zzz'.$mapkl['xx'.($xx-1)];$dc='zzz'.$mapkl['xx'.($xx)];$dd='zzz'.$mapkl['xx'.($xx+1)];$de='zzz'.$mapkl['xx'.($xx+2)];

$mapa = mysql_query("SELECT * FROM map001 WHERE id = $yy+2 ",$db);
$mapkl = mysql_fetch_array($mapa);
$ea='zzz'.$mapkl['xx'.($xx-2)];$eb='zzz'.$mapkl['xx'.($xx-1)];$ec='zzz'.$mapkl['xx'.($xx)];$ed='zzz'.$mapkl['xx'.($xx+1)];$ee='zzz'.$mapkl['xx'.($xx+2)];

этот код работает, но хотелось сформировать 1 запрос вместо 5и

Спустя 29 минут, 29 секунд (22.05.2012 - 15:25) Renden написал(а):
Миха

$y = 14; $x = 57;
$array_x = range($x-2, $x+2);
$array_y = range($y-2, $y+2);
$query = mysql_query("SELECT pole".implode(',pole', $array_x)." FROM `map001`
WHERE `id` IN("
.implode(',',$array_y).")");
$result = array();
while ($row = mysql_fetch_assoc($query))
$result[] = $row;

print_r($result);

Спустя 11 минут, 53 секунды (22.05.2012 - 15:36) Миха написал(а):
большое спасибо то, что искал
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.