Помогите с SQL-запросом на обновление данных

Тема в разделе "Базы данных", создана пользователем pierrevk, 6 фев 2010.

Статус темы:
Закрыта.
Модераторы: latteo
  1. pierrevk

    pierrevk Постоялец

    Регистр.:
    22 сен 2009
    Сообщения:
    59
    Симпатии:
    5
    Приветствую!
    Помогите решить простую задачу откровенному нубу в SQL!
    Задача такая:
    Есть таблица следующей структуры:
    PHP:
    -- Структура таблицы `jos_vm_category`
    -- 
    CREATE TABLE `jos_vm_category` (
      `
    category_idint(11NOT NULL auto_increment,
      `
    vendor_idint(11NOT NULL default '0',
      `
    category_namevarchar(128NOT NULL default '',
      `
    category_descriptiontext,
      `
    category_thumb_imagevarchar(255) default NULL,
      `
    category_full_imagevarchar(255) default NULL,
      `
    category_publishchar(1) default NULL,
      `
    cdateint(11) default NULL,
      `
    mdateint(11) default NULL,
      `
    category_browsepagevarchar(255NOT NULL default 'browse_1',
      `
    products_per_rowtinyint(2NOT NULL default '1',
      `
    category_flypagevarchar(255NOT NULL,
      `
    list_orderint(11NOT NULL,
      
    PRIMARY KEY  (`category_id`),
      
    KEY `idx_category_vendor_id` (`vendor_id`),
      
    KEY `idx_category_name` (`category_name`)
    ENGINE=MyISAM AUTO_INCREMENT=482 DEFAULT CHARSET=cp1251 COMMENT='Категории товаров хранятся здес' AUTO_INCREMENT=482 ;
    -- 
    Помогите пожалуйста запрос к мускуле составить, который при условии WHERE `category_name` = '$category_name' ЗАМЕНИТ существующие записи в полях category_thumb_image, category_browsepage, category_flypage на новые значения.
    Спасибо!
     
  2. EnGeLs

    EnGeLs Постоялец

    Регистр.:
    30 апр 2008
    Сообщения:
    87
    Симпатии:
    21
    Код:
    update `jos_vm_category` set `category_thumb_image`='$category_thumb_image', `category_browsepage`='$category_browsepage', `category_flypage`='$category_flypage', WHERE `category_name` = '$category_name'
     
  3. pierrevk

    pierrevk Постоялец

    Регистр.:
    22 сен 2009
    Сообщения:
    59
    Симпатии:
    5

    Спасибо EnGeLs!
    Однако я неверно построил вопрос... Дело в том, что WHERE `category_name` = '$category_name' в таком виде не будет у меня работать, так как я еще эту самую категорию не выбрал, если я правильно понимаю...

    По шагам:
    1. я подключаюсь к бд - подключение установлено.
    2. далее я беру из файла csv $category_name, $category_flypage ....
    3. я так понимаю, я сначала должен обратиться к БД и выбрать категорию... (Здесь затык?!)
    4. сделать апдейт.

    Добьем?
     
  4. EnGeLs

    EnGeLs Постоялец

    Регистр.:
    30 апр 2008
    Сообщения:
    87
    Симпатии:
    21
    Да.
    PHP:
    <?php 
    $row 
    1
    $handle fopen ("test.csv","r"); 
    while (
    $data fgetcsv ($handle1000",")) 

        
    $num count ($data); 
        print 
    "<p> $num полей в строке $row: <br>\n"
        
    $row++; 
        for (
    $c=0$c $num$c++) 
        { 
            print 
    $data[$c] . "<br>\n"
        } 

    fclose ($handle); 
    ?>
    Зачем и какую категорию выбирать?
    Или имеется в виду выбор базы данных?
    Подсоедиться можно вот так
    PHP:
    <?php

    mysql_connect
    ("mysql_host""mysql_login""mysql_password")
      or die (
    "Could not connect to MySQL");

    mysql_select_db ("my_database")
      or die (
    "Could not select database");

    ?>
    Этот пример считывает из файла с разделителями "," например, и затем сразу mysql_query запрос на апдейт.
     
    pierrevk нравится это.
  5. pierrevk

    pierrevk Постоялец

    Регистр.:
    22 сен 2009
    Сообщения:
    59
    Симпатии:
    5
    Низкий поклон тебе, EnGeLs!
    Несколько часов мучал пхп.
    делал строчку апдейта в конструкторе PMA - работает.
    Делаю через пхп - не работает - пишет мол, незнакомый апачу синтаксис.
    А оказалось... там, черт побери, кавычки разные ))
    На мониторе в дримвивере все мелко - не видно разницы, и в PMA не видно. На форуме разница четко видна - буквы крупные!
    И если бы я разницу эту почуял сразу! Твой самый первый ответ решает все проблемы без заморочек, не надо никакого выбора итп.
    ПС: а как такую косую кавычку ставить, кроме как не копировать из ПМА - я не понял - может в дримвивере можно?
    Код:
    [COLOR="Red"]`[B][/COLOR]category_flypage[COLOR="Red"]`[/COLOR]='$category_flypage'[/B]
     
  6. Sanuch

    Sanuch

    Регистр.:
    25 май 2009
    Сообщения:
    207
    Симпатии:
    70
    данная кавычка не обязательна, если только поле не содержит разделительных символов, как пример тире "-".
    находится в стандартной раскладке на клавише с тильдой "~"
     
  7. EnGeLs

    EnGeLs Постоялец

    Регистр.:
    30 апр 2008
    Сообщения:
    87
    Симпатии:
    21
    Sanuch уже ответил. В PMA поля уже и так идут с кавычками, во вкладке "SQL" конструктора запросов слева есть колонка со всеми полями, и при выборе нужного название вставляется с кавычками уже.
     
Статус темы:
Закрыта.