Создание запроса к базе данных

  • 4 Ответов
  • 463 Просмотров

0 Пользователей и 1 Гость просматривают эту тему.

Код
[code]
Здравствуйте изучаю Joomla 2.5 и пишу компонент по примеру в учебнике и вот какая то проблема при обращении к базе данных, я получаю эти ошибки

[code]Warning: Invalid argument supplied for foreach() in /home/p313923/public_html/dom2/libraries/joomla/database/database/mysql.php on line 383

Warning: Invalid argument supplied for foreach() in /home/p313923/public_html/dom2/libraries/joomla/database/database/mysql.php on line 383

Warning: Invalid argument supplied for foreach() in /home/p313923/public_html/dom2/libraries/joomla/database/table.php on line 409
вот собственно функция обращения
Код
<?php defined('_JEXEC') or die('Restricted access');
$option = JRequest::getVar('option');
$task = JRequest::getVar('task');
require_once (JApplicationHelper::getPath('admin_html'));
JTable::addIncludePath(JPATH_COMPONENT.DS.'tables') ;
switch($task) {
    case 'reply':
        replyToQuestion($option);
        break;
    default:
        break; }
function replyToQuestion($option)
{
    $row =& JTable::getInstance('Question','Table');
    $cid = JRequest::getVar('cid', array(0), '',
            'array');
    $id = $cid[0];
    $row->load($id);
    print_r($row);
    HTML_questions::replyToQuestion($row, $option); } ?>
обращаюсь по этому адресу index.php?option=com_myquestions&task=reply&cid[]=1
следовательно работает функция replyToQuestion
если сделать print_r($row) то получаю масив не с данными в таблице а обращения к разным функциям.
Это функция модели
[/code]
<?php
defined('_JEXEC') or die('Restricted access');
class TableQuestion extends JTable
{
    var $id = null;
    var $name = null;
    var $date = null;
    var $question = null;
    var $city = null;
    var $email = null;
    var $IP = null;
    var $id_cat = null;
    var $published = null;
    var $expiration_date = null;
    var $senttoexpert = null;
    var $answer = null;
    var $senttoauthor = null;
    function __construct(& $db)
    {
        parent::__construct('#__myquestions', 'id', $db);
    }
}
?>
[/code]
Что я мог напутать?

*

Aleks.Denezh

  • *******
  • 2785
  • 376
Re: Создание запроса к базе данных
« Ответ #1 : 15.09.2015, 17:07:15 »
1. Вы напутали с версией Joomla у вас Joomla 1.5 стиль кода, а юзаете 2.5..
2. Посмотрите что у вас в $cid
Мой  блог по разработке на Joomla CMS!
Хотите отблагодарить материально? Мой WMR: R861060179016

Re: Создание запроса к базе данных
« Ответ #2 : 15.09.2015, 18:18:00 »
Код
[code]
Array (
  • => 1 )
  • [/code]

Re: Создание запроса к базе данных
« Ответ #3 : 15.09.2015, 18:19:11 »
Код
Array ( [0] => 1 )

*

Aleks.Denezh

  • *******
  • 2785
  • 376
Re: Создание запроса к базе данных
« Ответ #4 : 16.09.2015, 15:06:54 »
Попробуйте так:
Код: php
<?php
defined( '_JEXEC' ) or die( 'Restricted access' );
$option = JRequest::getVar( 'option' );
$task = JRequest::getVar( 'task' );
require_once( JApplicationHelper::getPath( 'admin_html' ) );

class TableQuestion extends JTable
{
public function __construct( & $db )
{
parent::__construct( '#__myquestions', 'id', $db );
}
}

switch ( $task ) {
case 'reply':
replyToQuestion( $option );
break;
default:
break;
}
function replyToQuestion( $option )
{
$db = JFactory::getDbo();
$table = new TableQuestion($db);
$cid = JRequest::getVar( 'cid', array( 0 ), '', 'array' );
$table->load( $cid[0] );
print_r( $table);
HTML_questions::replyToQuestion( $table, $option );
}

?>
Мой  блог по разработке на Joomla CMS!
Хотите отблагодарить материально? Мой WMR: R861060179016