[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Не могу найти ошибку
Xes
Кусок кода делаем запрос к базе данных выбераем 3 последних обнавления, вывод по 3 элемента.
Почемуто цикл прохходит 2 раза причем первй элемент массива $newhotels нормальная запись из БД второй элемент во всех масивах null.
Запрос в ПМА проходит нормально выводит 3 записи.
Уже голову сломал в поиске ошибки.

$p = !empty($_POST['p']) ? htmlspecialchars($_POST['p'],ENT_QUOTES) : 1;
//Количество выводимых блоков
$num = 3;
//Запросы для вывода $num гостиниц на странице и сортировки
$query = "SELECT hotels.idhotel, hotels.namelong, hotels.folder, hotels.goroden, goroda.gorodru, goroda.gorodrod FROM `hotels` LEFT JOIN `goroda` ON hotels.goroden=goroda.goroden WHERE `adminok`='1' AND `dview`>='".date("Y-m-d")."' ORDER BY `dupdate` DESC LIMIT ".($p-1)*$num.", ".$num;
$sql = @mysql_query($query);
if(@mysql_num_rows($sql)>0)
{
$newhotels = array('idhotel'=>array(), 'namelong'=>array(), 'imgurl'=>array(), 'goroden'=>array(), 'gorodru'=>array(), 'gorodrod'=>array());
$k = 0;
while($sqlrow = @mysql_fetch_array($sql))
{
$k++;
$sqlrow = @mysql_fetch_array($sql);
if(file_exists(ROOT.'/foto/'.$sqlrow['folder'].'/0.jpg'))
$imgurl = URLSITE.'/foto/'.$sqlrow['folder'].'/0.jpg';
else
$imgurl = URLSITE.'/images/nofoto.gif';
$newhotels['idhotel'][] = $sqlrow['idhotel'];
$newhotels['namelong'][] = $sqlrow['namelong'];
$newhotels['imgurl'][] = $imgurl;
$newhotels['goroden'][] = $sqlrow['goroden'];
$newhotels['gorodru'][] = $sqlrow['gorodru'];
$newhotels['gorodrod'][] = $sqlrow['gorodrod'];
}
$response_json = array("gotofunction" => "ShowNewHotels", "p" => $p, "pl" => $pl, "pr" => $pr, "k" => $k, "newhotels" => $newhotels);
echo json_encode($response_json);
}




Спустя 3 минуты, 24 секунды (20.08.2011 - 10:09) alex12060 написал(а):

Спустя 3 минуты, 31 секунда (20.08.2011 - 10:12) alex12060 написал(а):
А если передам так -

/test/index.php?p=sdgsetzf

Сделай лучше так:


$p = !empty($_POST['p']) ? (int)$_POST['p'] : 1;

Спустя 3 минуты, 10 секунд (20.08.2011 - 10:16) Xes написал(а):
Причем тот элемент масива что в $newhotels является первым . При запросе в ПМА является вторым.
Тоесть почемуто первый элемент кудата вылетает, второй читается, а третий превращается в null

Цитата
А если передам так -

/test/index.php?p=sdgsetzf

Это GET, а у меня PJST.
Пока я просто пишу чтобы работало для себя, отлаживаю, безопасностью не озадачен, это будет потом.

Спустя 5 минут, 53 секунды (20.08.2011 - 10:22) Xes написал(а):
)))) Реально дурь написал забыл строчку $sqlrow = @mysql_fetch_array($sql); удалить
Спасибо.

Спустя 20 секунд (20.08.2011 - 10:22) alex12060 написал(а):
Ты прочел то, что я тебе кинул?
У тебя тут фиг пойми что и как, но ошибку видно невооруженным взглядом:


while($sqlrow = @mysql_fetch_array($sql))
{
$k++;
$sqlrow = @mysql_fetch_array($sql);


Сначала вытащилась первая запись здесь: while($sqlrow = @mysql_fetch_array($sql))
Далее, она перезаписалась здесь: $k++; $sqlrow = @mysql_fetch_array($sql); и вытащилась запись 2. Потом снова пришла в цикл, вытащилась 3-я запись здесь: while($sqlrow = @mysql_fetch_array($sql))
Потом здесь была произведена попытка вытащить 4-ю запись: $k++; $sqlrow = @mysql_fetch_array($sql); и она вернула NULL. Далее выход из цикла. Итак, итог - у тебя потерялась 1-я запись, вторая записалась, 3-я потерялась и вернула NULL.

Ясно?

Спустя 42 минуты, 54 секунды (20.08.2011 - 11:05) YVSIK написал(а):
alex12060ВОТ НА ЭТО МНЕ НЕ УДАЛОСЬ НАТКНУТЬСЯ ВСЕГДА ТАК И ДЕЛАЛ тфужтыж(извин за регистр ) как надо ))
как у тебя написано в блоге но
подумал так а если переделать так
$row = mysql_fetch_assoc($query);

while ($row)) {
echo $row['am_id'];
}

что тоже не будет первого вывода ?
просто голова забита своим вот и не ахота пробовать
пож.. плиз скажи А!

Спустя 23 минуты, 28 секунд (20.08.2011 - 11:28) alex12060 написал(а):
YVSIK

Вообще то, что ты показал, приведет к бесконечному циклу.

Спустя 30 минут, 43 секунды (20.08.2011 - 11:59) YVSIK написал(а):
biggrin.gif а мИ ему не дадим!! mad.gif возьиеи в руки главный исрумент и будем щаманить blink.gif

Спустя 2 часа, 55 минут, 13 секунд (20.08.2011 - 14:54) Michael написал(а):

 ! 

М
Давайте своим темам вменяемое название
Michael
Быстрый ответ:

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