Как запустить этот запрос MySQL - PullRequest
0 голосов
/ 22 декабря 2011

Я пытаюсь загрузить все записи из базы данных, которые были созданы текущим вошедшим в систему пользователем в Joomla, но я не уверен, возможно ли иметь php внутри запроса mysql?, Если нет, то как мне поступить? это иначе?

SELECT
  leadname,
  businessname,
  postcode,
  gasoiluser,
  dervuser,
  kerouser,
  cf_uid,
  cf_id
FROM
  #__chronoforms_data_addupdatelead
WHERE createdby = '<?php
  $user =& JFactory::getUser(); echo $user->get('name') ; ?>'
ORDER BY cf_created DESC

Ответы [ 2 ]

2 голосов
/ 22 декабря 2011

Конечно, вы можете получить доступ к переменным PHP для создания запроса - как предполагает префикс #__, вы уже запускаете запрос из "внутри Joomla".Это означает, что - это в php, и что-то вроде этого должно делать то, что вы хотите:

$user =& JFactory::getUser();
$db =& JFactory::getDBO();
if (!$user->guest) {
    $query = 'SELECT leadname, businessname, postcode, gasoiluser, '.
        ' dervuser, kerouser, cf_uid, cf_id '.
        ' FROM #__chronoforms_data_addupdatelead '.
        ' WHERE createdby = '.$db->Quote($user->name)).
        ' ORDER BY cf_created DESC';
    $db->setQuery($query);
}

Но немного больше контекста поможет нам увидеть, что вам нужно делать точно -что за код вокруг SQL-запроса - находится ли он в php-файле?

Помните, echo печатает в Response , что в данном случае вам не нужно, выхотите изменить запрос;поэтому просто объедините содержимое переменной с вашим запросом, как показано выше;и вы уже должны быть в режиме php, где этот запрос определен, поэтому тег <?php бесполезен (но опять же, слишком мало контекста, чтобы быть уверенным в этом)!

0 голосов
/ 22 декабря 2011

mysql - это сервер базы данных, который принимает строку и возвращает либо набор результатов , либо ошибка

строка переданный в mysql должен быть правильным SQL-оператором

то, что у вас есть в вашем вопросе, не является правильным SQL-оператором, это строка, ожидающая синтаксического анализа PHP, и кто знает, кто еще

часть, конечно, PHP:

<?php $user =& JFactory::getUser(); echo $user->get('name') ; ?>

эта часть является чем-то вроде заполнителя для правильного имени таблицы, которое заменяется во время выполнения того, из чего вы получили этот запрос (предположительно joomla):

#__chronoforms_data_addupdatelead

если вы хотите выполнить этот запрос, вы должны выяснить, что заменить вышеупомянутыми блоками

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