Правильные SQL-запросы, дающие разные результаты в статьях Joomla - PullRequest
0 голосов
/ 16 марта 2012

У меня есть несколько модулей, но я остановлюсь именно на одном.Этот модуль работал нормально, и он появляется в двух статьях.Одна статья доступна для просмотра зарегистрированным пользователям, а другая - для общественности.

Я запрашиваю свою базу данных из обеих этих статей.Тем не менее, в публичной статье модуль делает то, что должен, а в зарегистрированной статье - нет.

Перед публикацией кода и примеров, есть ли что-то очевидное, чего мне не хватает, что я могу попробоватьчтобы преодолеть это?

РЕДАКТИРОВАТЬ

Вот результаты режима отладки:

Рабочая статья:

SELECT name, specialty, location
  FROM people
  WHERE name = 'larry' OR specialty = 'testing' OR location = 'seattle'

Нерабочая статья:

SELECT name, specialty, location
  FROM people
  WHERE name = '' OR specialty = '' OR location = ''

В обоих случаях должен работать один и тот же запрос:

SELECT name, specialty, location, description
  FROM people 
  WHERE name = '$name' OR specialty = '$specialty' OR location = '$location'

, где эти переменные являются данными POST, например, $name = cleaned_up($_POST['name']);

Таким образом, версия формы для «зарегистрированных» пользователей не публикует данные в запросе, а версия для «гостевых» пользователей.

РЕДАКТИРОВАТЬ 2

Я обнаружил, что когда я удаляю модуль в левой части моей страницы (у меня есть два модуля в div s, бок о бок, которые совместно используют переменные POST - что, вероятно, является частью моей проблемы), форма, котораяне работает, начинает работать правильно.

Итак, я построил идентичный модуль, думая, еслиЯ вытащил эту форму и передал код другому модулю, он будет работать, но он дал те же результаты, что и выше.

Любая помощь очень ценится.

РЕДАКТИРОВАТЬ 3

Я бросил туда var_dump($_POST); в нескольких местах, по одному, и это дало ожидаемые данные POST.Так что теперь я действительно сбит с толку, потому что SQL-запрос правильный и данные POST попадают в файл, который нуждается в них.

Ответы [ 2 ]

2 голосов
/ 16 марта 2012

Несмотря на то, что вопрос немного неопределенный, я бы предложил включить профилирование отладки в Joomla. Если вы включите это, вы сможете увидеть точные запросы SQL, выполняемые модулем. Найдите запросы, используемые вашим модулем, запустите их через phpMyAdmin или MySQL Workbench и убедитесь, что вы получите ожидаемый результат.

Если проблема не связана с SQL, вам может потребоваться предоставить более конкретные примеры.

0 голосов
/ 18 марта 2012

Я нашел решение, которое, похоже, решило мою проблему. Оригинальная странная проблема все еще существует, но эта работа заставляет мой сайт работать и дает мне возможность продолжить.

Я создал отдельный файл переменной для каждого состояния доступа, зарегистрированного и общедоступного. Очевидно, в зарегистрированном состоянии переменные конфликтовали, и данные POST не попадали в запрос SQL и, следовательно, не отображались в моей таблице результатов.

Я думаю, что это может быть ошибка в Joomla, но я хотел бы получить отзыв кого-то еще, прежде чем сообщать об этом. НО ... Я отправил на forum.joomla.org несколько недель назад без ответа, поэтому я вообще мало верю в этот сайт поддержки. На самом деле, если это так же хорошо, как их форумы поддержки, то я думаю, что я мог бы посмотреть на другую CMS.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...