[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Цикл не отображает элементы массива
provizorokl
Долго Гуглил и попал сюда. Проблема... Есть файл пхп в котором перечень категорий и из него методом ГЕТ передается переменная
<?php 
$bada = mysql_connect("localhost","neofrontuser","152634");
mysql_select_db("neofront", $bada);
$result3 = mysql_query("SELECT * FROM categorias ORDER BY title", $bada);
$mifila3 = mysql_fetch_array($result3);
do
{printf ("| <a class='catlink' href='ex2.php?bid=%s'>%s</a> |",$mifila3["bid"],$mifila3["title"]);}
while ($mifila3 = mysql_fetch_array($result3));
?>

(она же создается запросом к таблице базы даных) - (первая таблица на рисунке)

, которую проверяет на наличие запросом к другой таблице (вторая таблица на рисунке) Базы даных другой файл.
<?php 
$bada = mysql_connect("localhost","neofrontuser","152634");
mysql_select_db("neofront", $bada);
if (!empty($_GET['bid'])) $bid = $_GET['bid'];
$result2 = mysql_query("SELECT id, cat, title, m_key, text, imagen_median FROM articulos WHERE MATCH(cat) AGAINST('$bid') ORDER BY fecha LIMIT 10", $bada);
$mifila2 = mysql_fetch_array($result2);
do
{printf("%s", $mifila2["title"]);}
while ($mifila2 = mysql_fetch_array($result2))

?>


И теперь проблема. Как результат выводит даные в нужном мне списке, НО.. если вторая таблица содержит больше, чем 2 результата для вывода, то цикл ничего не выводит. Тоесть, выводятся статьи со значением переменной (bbb2, bbb3, bbb6). bbb1 - НЕ ВЫВОДИТ НИЧЕГО. Если, же я из второй таблицы удалю bbb1 и оставлю только в двух строках, то это значения переменной (соответствующие ей статьи) выводятся без проблем. Прошу извинить и помочь.



Спустя 9 часов, 33 минуты, 18 секунд (5.08.2011 - 07:12) linker написал(а):
Жертвам Попова в очередной раз объясняю как ПРАВИЛЬНО это делается
if (!($resource = mysql_query('SELECT `id` FROM `table`')))
die(mysql_error());
while($data = mysql_fetch_assoc($resource))
{
echo $data['id'] . '<br />';
}
Здесь
if (!empty($_GET['bid'])) $bid   = $_GET['bid'];
нужно
$bid = !empty($_GET['bid']) ? (int)$_GET['bid'] : 0;
ну и т.д.

Спустя 4 часа, 26 минут, 31 секунда (5.08.2011 - 11:39) Winston написал(а):
И еще это читаем.

Спустя 1 день, 6 часов, 7 минут, 4 секунды (6.08.2011 - 17:46) provizorokl написал(а):
Извиняюсь, но Вашим вариантом ВООБЩЕ ничего не выводит.
О соединении с БД и о динамическом запросе, я почитал и почерпнул много интересного.
Итак, с вариантом аля-Попов, хоть что-то выводило.
$bid = !empty($_GET['bid']) ? (int)$_GET['bid'] : 0;

Если я правильно понимаю, то вы мне предлагаете обработать переменную-число. Обратите внимание, что она не является числом.
Если же я поменяю эту строку, на ту, что раньше, то скрипт срабатывает, как и раньше.
Оставим Попова в стороне, я делаю для себя выводы и премного благодарен за консультации, но...
Решение проблемы я для себя нашел в создании отдельной таблицы связей.
Здесь, же я хочу, разобратся, с этой проблемой, чтобы не сталкиватся с ней в будущем.
Интересные эксперименты провел с кодами.
1.Замена цикла на while(){} - эффект идентичен.
2.При выводе (точнее не выводе) ошибочного варианта в html-коде ламается все, что идет ниже скрипта на странице (осутствует футер и т. д.)
3. Я пробовал менять поле bid с типа varchar на тип text, потом первый скрипт переделывал на форму поиска и передавал переменную методом ПОСТ. Тоже самое в результате. Тоесть, если я попробую создать поиск на страничке, он не будет работать.
Ребята, я с php только год, но впервые обращаюсь на форумы. До теперь сам искал все решения проблем, нежалея времени. Но здесь не могу определить направление в котором надо искать решение проблемы. Заранее спасибо..

Спустя 3 минуты, 58 секунд (6.08.2011 - 17:50) provizorokl написал(а):
Если важно все провожу на Денвере

Спустя 1 день, 7 часов, 14 минут, 58 секунд (8.08.2011 - 01:05) provizorokl написал(а):
Проблема решена заменой LIKE вместо MATCH ... AGAINST. Тему можно закрыть.
PS. Ребята, спасибо за попытки помочь. Только, сначала попытайтесь помочь, а потом смотреть не Попов ли виноват.. Код заработал со всеми помарками Попова. Что интересно со всех форумов, куда обращался реальная и нацеленая помощь была оказана на форуме, где в топике НИ ЕДИНОГО раза не было использовано слово Попов. А я работаю над исправлением оплошностей Попова. Но здесь они как раз были НИПРИЧЕМ. А то как то некрасиво звучит "Жертвам Попова...", без реального вникновения в проблему.
И еще, спасибо..

Спустя 6 часов, 41 минута, 28 секунд (8.08.2011 - 07:46) linker написал(а):
provizorokl
Вот когда запрос вернёт пустой результат, ты поймешь что очень даже причём. А вообще, ещё лучше сразу в этом убедиться, включив отображение всех ошибок, ты будешь крайне удивлён.
Быстрый ответ:

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