На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! ПРАВИЛА РАЗДЕЛА
Прежде чем задать вопрос, зайдите в раздел FAQ, возможно там уже есть ответ на него.
Если вы хотите вставить код в сообщение, то пожалуйста выделяйте его тегом [code=dfp] ... [/сode].
Для этого используйте кнопку [code=dfp] в форме ответа или комбобокс, если нужно вставить код на языке, отличном от Delphi for PHP.
Модераторы: ViktorXP, vicis
  
> Как присвоить переменной результат SQL запроса , Как присвоить переменной результат SQL запроса
    Добрый день!
    Есть SQL запрос на подсчет строк в таблтце:
    ExpandedWrap disabled
      $this->OracleQuery1->SQL = "select.........";


    Как присвоить результат этого запоса переменной?
    Сообщение отредактировано: ViktorXP -
      как вариант то
      ExpandedWrap disabled
        $this->OracleQuery1->SQL = "select count(*) as \"count\" ...";
        $count = $this->OracleQuery1->count;

      а так то как в делфи есть свойство fields где можно получить колонку по позиции.
        Что-то не то:

        Application raised an exception class EPropertyNotFound with message 'Trying to access non-existant property OracleQuery->count in oracle.inc.php, line 1161.'
        Click for detailed informationCallstack #0 File: C:\Program Files\CodeGear\Delphi for PHP\2.0\Projects\UVD_24.09.2010_new++\unit1.php Line: 315
        |_Callstack #1 File: C:\Program Files\CodeGear\Delphi for PHP\2.0\vcl\classes.inc.php Line: 1925
        |_Callstack #2 File: C:\Program Files\CodeGear\Delphi for PHP\2.0\vcl\classes.inc.php Line: 1999
        |_Callstack #3 File: C:\Program Files\CodeGear\Delphi for PHP\2.0\vcl\controls.inc.php Line: 1988
        |_Callstack #4 File: C:\Program Files\CodeGear\Delphi for PHP\2.0\vcl\classes.inc.php Line: 1564
        |_Callstack #5 File: C:\Program Files\CodeGear\Delphi for PHP\2.0\vcl\stdctrls.inc.php Line: 3832
        |_Callstack #6 File: C:\Program Files\CodeGear\Delphi for PHP\2.0\vcl\classes.inc.php Line: 1456
        |_Callstack #7 File: C:\Program Files\CodeGear\Delphi for PHP\2.0\Projects\UVD_24.09.2010_new++\unit1.php Line: 161
        |_Callstack #8 File: C:\Program Files\CodeGear\Delphi for PHP\2.0\vcl\oracle.inc.php Line: 1161
          попробуй второй вариант. хотя я точно помню что и первый работает, но перепроверить в данное время не могу.

          Добавлено
          я конечно извиняюсь, а открытие дата сета было произведено? а то всякое бывает. я не написал строчки открытия так как посчитал что это и так понятно
            Цитата ViktorXP @
            как вариант то

            $this->OracleQuery1->SQL = "select count(*) as \"count\" ...";
            $count = $this->OracleQuery1->count;


            а так то как в делфи есть свойство fields где можно получить колонку по позиции.

            ну ребята :wub:
            может код и рабочий, но крайне нежелательно использовать зарезервированные названия в переменных и функциях
            лучше назови xcount иначе будеш искать ошибку до новых веников (тем более в open source проектах...)
            да и кавычки можно опустить
            ExpandedWrap disabled
              $this->OracleQuery1->SQL = "select count(*) as xcount ...";
              $xcount = $this->OracleQuery1->xcount;

            кстати - в кавычках этих скорее всего и проблема

            Добавлено
            Цитата Prosto_Coder @
            Click for detailed informationCallstack #0 File: C:\Program Files\CodeGear\Delphi for PHP\2.0\Projects\UVD_24.09.2010_new++\unit1.php Line: 315

            я бы ещё плюсы из пути убрал...
            Сообщение отредактировано: vicis -
              Забейте на подсчет строк.
              Появилась новая проблемма:

              ExpandedWrap disabled
                $this->New_Query->SQL = "какой-то запрос";
                 
                $this->New_Query->close();
                $this->New_Query->open();
                $this->New_Query->first();
                 
                while($this->New_Query->eof)
                {
                     ?> <tr> <?php
                     for($j=0;j<27;j++)
                     {
                        ?><td>echo"Здесь должен вывадится результат SQL запроса (Кто-нибудь знает как это сделать? )"</td><?php
                     }
                     $this->New_Query->next();
                    ?></tr><?php
                }


              Я пробовал ф-ии getSQL и readSQL, но комптлятор говорит, что неможет приобразовать Object в string.
              M
              не забываем о подстветке
              Сообщение отредактировано: ViktorXP -
                Prosto_Coder у тебя опыт работы с базой данных есть? (имеется ввиду вообще не обязательно php или Delphi)
                просто результат ты получаешь в виде колонок. посему и работать с им нужно поколоночно (хотя в php можно взять массив и вывести его одним махом, например через print_r(...))
                  Как понять "нуно работать поколоночно"? Результат запроса выводит значения для одного поля. Их мене надо записать в одну колонку таблтцы.
                    Цитата Prosto_Coder @
                    Как понять "нуно работать поколоночно"? Результат запроса выводит значения для одного поля. Их мене надо записать в одну колонку таблтцы.
                    Результат тебе возвращается в виде таблици. которая состоит со строк и колонок.
                    даже если ты запросишь одно единственное значение то результат тебе все равно вернется в виде таблицы, но она будет состоять с одной строки и одной колонки
                      closed
                        поставь на форму компонент Query (например назовём его TempQuery)
                        тогда смотрим пример:
                        ExpandedWrap disabled
                                          $querystr = 'select id_order,sum_order from orders';
                                          $this->TempQuery->close();
                                          $this->TempQuery->SQL = $querystr;
                                          $this->TempQuery->open();
                                          // здесь ещё можго было бы проверить на наличие записей...
                                          $this->TempQuery->first();
                                          $xtable = '<table>';
                                          while (!$this->TempQuery->eof)
                                            {
                                            $xtable = $xtable.'<tr><td>'.$this->TempQuery->id_order.'</td><td>'.$this->TempQuery->sum_order.'</td></tr>';
                                            $this->TempQuery->next();
                                            }
                                          $xtable = $xtable.'</table>';
                           
                                          $this->TempQuery->close();
                                          echo $xtable;
                        Сообщение отредактировано: vicis -
                        1 пользователей читают эту тему (1 гостей и 0 скрытых пользователей)
                        0 пользователей:


                        Рейтинг@Mail.ru
                        [ Script execution time: 0,0313 ]   [ 14 queries used ]   [ Generated: 18.05.24, 06:06 GMT ]