как переделать sql запрос от Joomla в обычный?

Тема в разделе "Программирование", создана пользователем Николай, 05.02.2010.

  1. Offline

    Николай Недавно здесь

    Регистрация:
    22.10.2007
    Сообщения:
    5
    Симпатии:
    0
    Пол:
    Мужской
    как переделать sql запрос от Joomla в обычный? то есть без использывания database.php
    есть это:
    Код (CODE):
    1. $database->setQuery("SELECT a.id,a.views, a.ad_headline, a.category, a.date_created,p.id as parentid,p.name as parent,c.id as catid, c.name as cat ".
    2.                     "FROM #__adsmanager_ads as a ".
    3.                     "LEFT JOIN #__adsmanager_adcat as adcat ON adcat.adid = a.id ".
    4.                     "LEFT JOIN #__users as u ON a.userid = u.id ".
    5.                     "LEFT JOIN #__adsmanager_categories as c ON adcat.catid = c.id ".
    6.                     "LEFT JOIN #__adsmanager_categories as p ON c.parent = p.id ".
    7.                     "WHERE $cat_query c.published = 1 and a.published = 1 GROUP BY a.id $order_sql LIMIT 0, $nb_ads");
    8. $ads = $database->loadObjectList();

    смотрим содержимое этим: echo var_dump($ads[0]);
    получается:
    object(stdClass)#222 (9) { ["id"]=> string(2) "22" ["views"]=> string(1) "0" ["ad_headline"]=> string(16) "HTC Touch Cruise" ["category"]=> string(1) "0" ["date_created"]=> string(10) "2010-02-05" ["parentid"]=> NULL ["parent"]=> NULL ["catid"]=> string(1) "7" ["cat"]=> string(30) "Телефоны и связь" }

    пробую переделать:
    Код (CODE):
    1. $ads = mysql_query("SELECT a.id,a.views, a.ad_headline, a.category, a.date_created,p.id as parentid,p.name as parent,c.id as catid, c.name as cat ".
    2.                     "FROM ros_adsmanager_ads as a ".
    3.                     "LEFT JOIN ros_adsmanager_adcat as adcat ON adcat.adid = a.id ".
    4.                     "LEFT JOIN ros_users as u ON a.userid = u.id ".
    5.                     "LEFT JOIN ros_adsmanager_categories as c ON adcat.catid = c.id ".
    6.                     "LEFT JOIN ros_adsmanager_categories as p ON c.parent = p.id ".
    7.                     "WHERE $cat_query c.published = 1 and a.published = 1 GROUP BY a.id $order_sql LIMIT 0, $nb_ads");

    смотрим содержимое этим: echo var_dump($ads[0]);
    получается:
    NULL
    как бать с этим $ads = $database->loadObjectList();? чем это заменить?
    Заранее спасибо!
     
  2.  
  3. Dead Krolik
    Offline

    Dead Krolik Недавно здесь => Cпециалист <=

    Регистрация:
    13.04.2007
    Сообщения:
    3 685
    Симпатии:
    101
    Пол:
    Мужской
  4. Offline

    botanist Активист => Cпециалист <=

    Регистрация:
    15.02.2009
    Сообщения:
    461
    Симпатии:
    49
    Пол:
    Мужской
    libraries/joomla/database/database/mysql.php
     
  5. Tureckiy
    Offline

    Tureckiy Недавно здесь => Cпециалист <=

    Регистрация:
    11.04.2009
    Сообщения:
    423
    Симпатии:
    30
    Пол:
    Мужской
    а причем сдесь этот класс? ....
    "SELECT..." - это и есть обычный SQL запрос (проверь в phpmyadmin), другое дело ты сам mysql не знаешь как подключить с помощью php! .. хотя это и прописано в mysql.php!
     
  6. Offline

    Николай Недавно здесь

    Регистрация:
    22.10.2007
    Сообщения:
    5
    Симпатии:
    0
    Пол:
    Мужской
    У меня есть проблема, я не умею объяснять. попробую по другому.
    Я пытаюсь модуль Joomla запустить без самой Joomla. Всё получилось. Но есть строка:
    $ads = $database->loadObjectList();
    то есть $database->setQuery("SELECT a.id,a.views.... пишем по обычному так: $database = mysql_query("SELECT a.id,a.views...
    А как прописать это: $ads = $database->loadObjectList(); без использывания объекта класса database.php
     
  7. Offline

    Николай Недавно здесь

    Регистрация:
    22.10.2007
    Сообщения:
    5
    Симпатии:
    0
    Пол:
    Мужской
    Попробую еще так объяснить:
    При помощи joomla можно так:
    $database->setQuery("SELECT a.id,a.views....
    по обычному так:
    $database = mysql_query("SELECT a.id,a.views...

    При помощи joomla можно так:
    $ads = $database->loadObjectList();
    по обычному так:
    ??????????
     
  8. Offline

    atapin Недавно здесь

    Регистрация:
    16.02.2008
    Сообщения:
    2
    Симпатии:
    1
    Пол:
    Мужской
    Код (PHP):
    1. <?php
    2. mysql_connect("localhost", "mysql_user", "mysql_password")
    3.     or die("Keine Verbindung möglich: " . mysql_error());
    4. mysql_select_db("mydb");
    5.  
    6. $result = mysql_query("SELECT id, name FROM mytable");
    7.  
    8. while ($row = mysql_fetch_array($result, MYSQL_NUM)) {
    9.     printf ("ID: %s  Name: %s", $row[0], $row[1]);  
    10. }
    11.  
    12. mysql_free_result($result);
    13. ?>


    смотри тут http://www.php.net/manual/en/function.mysql-fetch-array.php

    Тоесть фактически вот это кусок
    Код (PHP):
    1. while ($row = mysql_fetch_array($result)) {
    2.     printf ( $row[0], $row[1]);  
    3. }
     
  9. Offline

    Николай Недавно здесь

    Регистрация:
    22.10.2007
    Сообщения:
    5
    Симпатии:
    0
    Пол:
    Мужской
    чтоб хоть как-то достучатся до массива сделал так:
    Код (PHP):
    1. while ($line = mysql_fetch_array($ads, MYSQL_ASSOC)) {
    2.         foreach ($line as $col_value) {
    3.            $v[] = $col_value;
    4.         }
    5. }

    но чот как-то не то

    может проще прикрутить к скрипту функции joomla? Тока как?
    думал поставлю в самое начало это и будет у меня счастье:
    Код (PHP):
    1. require_once 'http://www.example.com/includes/joomla.php';

    но не тут то было. пустой экран
     
  10. OlegM
    Offline

    OlegM Russian Joomla! Team Команда форума

    Регистрация:
    12.04.2007
    Сообщения:
    4 310
    Симпатии:
    375
    Пол:
    Мужской
    Николай, забей пока на PHP и выполняй запрос в phpmyadmin. Как только получится - переходи к PHP с var_dump

    Оффтопик (не в тему) - жми сюда!
     

Поделиться этой страницей

Загрузка...