Внесение измененных значений в БД

Discussion in 'Создание расширений для Joomla' started by DieseL, Dec 16, 2010.

  1. Offline

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

    Joined:
    Oct 25, 2010
    Messages:
    19
    Likes Received:
    0
    Gender:
    Male
    Всем привет, подскажите, пожалуйста как сделать следующее...

    есть таблица к примеру jos_test

    3 поля

    id(int)
    name(mediumtext)
    desc(mediumtext)

    В таблице есть значения, вывести их я могу, делаю вот примерно так:

    Код (PHP):
    1. $db = $database;
    2.         $query = "SELECT * FROM #__test where id = $id";
    3.         $db->setQuery( $query );
    4.         $result = $db->loadObjectList();


    Вопрос, как я могу их изменить? Как должен выглядеть запрос и его исполнение?
     
  2.  
  3. igorrt
    Offline

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

    Joined:
    Jul 31, 2007
    Messages:
    146
    Likes Received:
    9
    Gender:
    Male
    если не ошибаюсь в phpmyadmin есть возможность писать запросы на sql, используй оператор update
     
  4. Offline

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

    Joined:
    Oct 25, 2010
    Messages:
    19
    Likes Received:
    0
    Gender:
    Male

    :) Спасибо :) Это я знаю :) Я даже знаю как запрос будет выглядеть) но как он исполняется joomla?

    я вот составил его примерно вот так:

    Код (PHP):
    1. $db = $database;
    2.         $query = "UPDATE #__test where id = $id SET name=что_угодно ";
    3.         $db->setQuery( $query );


    но при этом изменений не происходит, что делаю нетак?
     
  5. Offline

    ---Zak--- Недавно здесь

    Joined:
    Nov 20, 2009
    Messages:
    14
    Likes Received:
    0
    Gender:
    Male
    Делал на Joomla 1.5
    Код (PHP):
    1. <?php
    2. // no direct access
    3. defined('_JEXEC') or die('Restricted access');
    4.     //Подключаемся к БД
    5.     $db =& JFactory::getDBO();
    6.         //Делаем запрос в БД, чтобы вывести все данные
    7.         $query = 'SELECT * FROM #__test';
    8.         $db->setQuery( $query );
    9.         $result = $db->loadObjectList();
    10.  
    11.     //выводим все данные
    12.     $k = 0;
    13.     for ($i=0, $n=count( $result ); $i < $n; $i++)  {
    14.         $row = $result[$i];
    15.             echo $row->id ." - ". $row->name ." - ". $row->desc ."<br>";
    16.         $k = 1 - $k;
    17.     }
    18.     //У кого будем делать изменения
    19.     $id = '1';
    20.         //Обновляем поле
    21.             $query = "UPDATE  #__test SET  `name` =  '4' WHERE  `id` = ".$id;
    22.             $db->setQuery( $query );
    23.         if ($db->query())  {  }
    24.  
    25.     echo '<br><br><br><br>';
    26.  
    27.     //выводим все данные
    28.         $query = 'SELECT * FROM #__test';
    29.         $db->setQuery( $query );
    30.         $result = $db->loadObjectList();
    31.  
    32.     $k = 0;
    33.     for ($i=0, $n=count( $result ); $i < $n; $i++)  {
    34.         $row = $result[$i];
    35.             echo $row->id ." - ". $row->name ." - ". $row->desc ."<br>";
    36.         $k = 1 - $k;
    37.     }  
    38. ?>
     
    Last edited: Jan 14, 2011
  6. vesy
    Offline

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

    Joined:
    Jul 2, 2010
    Messages:
    263
    Likes Received:
    53
    Gender:
    Male
    При обновлении/вставки зписей, после setQuery используйте query()
    Код (CODE):
    1. $db = & JFactory::getDBO(); ;
    2. $query = "UPDATE `#__test` SET  `name`='John' where `id` = $id";
    3. $db->setQuery( $query );  
    4. if ($db->query()) echo "Запись обновлена";
    5. else echo "Ошибка в запросе к БД";
     

Share This Page

Loading...