За последние 24 часа нас посетил 17661 программист и 1721 робот. Сейчас ищут 876 программистов ...

Замена поля из условия

Тема в разделе "Прочие вопросы по PHP", создана пользователем Schokk, 31 мар 2015.

  1. Schokk

    Schokk Новичок

    С нами с:
    13 янв 2015
    Сообщения:
    46
    Симпатии:
    0
    Здравствуйте. Есть следующая проблема. Мне нужно поменять значение поля, но это же поле и есть условием для поиска. То есть, у нас колонка из бд выглядит так:
    1
    1
    1
    2
    3
    3
    4
    4
    Так вот мне нужно поменять все 4 на скажем 5.
    Я пробую это сделать так:
    $num1=(int)$_GET['num'];

    Yii::app()->db->createCommand()->update('tbl_gallery', array(
    'objects_id'=>$num1,
    ), 'objects_id=:id',array(':id'=>$num));
    $num - это старый идентификатор (исходя из примера выше это 4).
    $num1 - это новый идентификатор, тот на который нужно заменить (исходя из примера выше это 5).
    Поле objects_id не ключ.
    Этот запрос не меняет( помогите разобраться.
     
  2. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    А какой sql запрос уходит в базу?
     
  3. Schokk

    Schokk Новичок

    С нами с:
    13 янв 2015
    Сообщения:
    46
    Симпатии:
    0
    UPDATE 'tbl_gallery' SET 'objects_id'=$num1 WHERE objects_id=$num
     
  4. maxmuha

    maxmuha Новичок

    С нами с:
    11 янв 2015
    Сообщения:
    107
    Симпатии:
    0
    Адрес:
    Мурманск
  5. Schokk

    Schokk Новичок

    С нами с:
    13 янв 2015
    Сообщения:
    46
    Симпатии:
    0
    я нашел в чем проблема. $num из пред идущего if не передается. как его передать?
     
  6. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    где if?
     
  7. maxmuha

    maxmuha Новичок

    С нами с:
    11 янв 2015
    Сообщения:
    107
    Симпатии:
    0
    Адрес:
    Мурманск
    Какой if? Где это?
     
  8. Schokk

    Schokk Новичок

    С нами с:
    13 янв 2015
    Сообщения:
    46
    Симпатии:
    0
    выглядит все примерно так:
    Код (Text):
    1.  
    2. if(условие){
    3. $num=$_GET['num'];
    4. ...
    5. }
    6. if(($_GET['up_ph'])=="1"){
    7.             $num1=(int)$_GET['num1'];
    8.             $num=(int)$num;
    9.         Yii::app()->db->createCommand()->update('tbl_gallery', array(
    10. 'objects_id'=>$num1,
    11. ), 'objects_id=:id',array(':id'=>$num));
    12.         }
    Вот так. И $num во втором if равен 0.а нужно получить значение из пред идущего if.
     
  9. maxmuha

    maxmuha Новичок

    С нами с:
    11 янв 2015
    Сообщения:
    107
    Симпатии:
    0
    Адрес:
    Мурманск
    в первом он у Вас равен $_GET['num'] может Вы num не передаете?

    Добавлено спустя 1 минуту 20 секунд:
    А запрос к базе типа проходит?)

    Добавлено спустя 33 секунды:
    http://www.yiiframework.com/doc/api/1.1/CDbCommand
     
  10. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    Schokk в Yii можно включить отладку и посмотреть, доходит ли запрос до базы.
     
  11. Schokk

    Schokk Новичок

    С нами с:
    13 янв 2015
    Сообщения:
    46
    Симпатии:
    0
    num передаю. сначала нажимается одна кнопка и туда передается num. после чего нажимается другая кнопка и попадаем во второй if.
     
  12. maxmuha

    maxmuha Новичок

    С нами с:
    11 янв 2015
    Сообщения:
    107
    Симпатии:
    0
    Адрес:
    Мурманск
    Ну так а во втором откуда $num появился?
    Из предоставленного кода
    Сам по себе $num=(int)$num;
     
  13. Schokk

    Schokk Новичок

    С нами с:
    13 янв 2015
    Сообщения:
    46
    Симпатии:
    0
    в этом и проблема. нужно передать как то из одного if в другой.
     
  14. maxmuha

    maxmuha Новичок

    С нами с:
    11 янв 2015
    Сообщения:
    107
    Симпатии:
    0
    Адрес:
    Мурманск
    А там где другая кнопка num обрабатывается-передается?
    Если обрабатывается и передается, то может $num=(int)$num; заметить на
    $num=abs(intval($_GET['num']));
     
  15. Schokk

    Schokk Новичок

    С нами с:
    13 янв 2015
    Сообщения:
    46
    Симпатии:
    0
    решил проблему по другому. создал таблицу в бд, для хранения данной переменной. все работает.
    спасибо за уделенное внимание.