Помогите написать запрос

Тема в разделе "PHP", создана пользователем sigi, 13 дек 2010.

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

    sigi Постоялец

    Регистр.:
    17 дек 2006
    Сообщения:
    56
    Симпатии:
    1
    Есть переменная $1
    есть таблица Abc в ней поля id,name
    нужно что бы скрипт искал есть ли в таблице совпадение $1 == name
    если есть то выдавал бы мне в переменную скажем $2 значение id
    если же совпадений нету то скрипт добавляет рядок и тоже в переменную $2 дает мне значение id ... Надеюсь понятно обяснил :)) Заранее спасибо!!
     
  2. chang

    chang

    Регистр.:
    20 ноя 2009
    Сообщения:
    364
    Симпатии:
    117
    PHP:

     
    if($row mysql_fetch_array(mysql_query("SELECT id  FROM Abc where name = '".$_1."'"))){
         
    $_2 =   $row['id'];
     }else {
         
    mysql_query("INSERT INTO Abc (id, name) VALUES (NULL, 'xxxx'");
         
    $_2 mysql_insert_id();
     }


    наверно как-то так
     
    sigi нравится это.
  3. sigi

    sigi Постоялец

    Регистр.:
    17 дек 2006
    Сообщения:
    56
    Симпатии:
    1
    PHP:
     if($row mysql_fetch_array(mysql_query("SELECT cid  FROM " PREFIX "_mservice_category where name = '".$artist."'"))){ 
         
    $artid =   $row['cid']; 
     }else { 
         
    $db->query"INSERT INTO " PREFIX "_mservice_category (cid, name) VALUES (NULL, '$artist')"); 
         
    $artid mysql_insert_id(); 
     }
    На половину работает... Оно каждый раз добаляет строки.. даже если совпадение есть... id в переменную не кидает незнаю может это связанно с тем что у меня имя поля не id а cid ?! Еще этот код работает в dle.. при добавлении строки я вставил $db->query и норм заработало.. а вот куда и нужно ли вставлять такое в начале кода я незнаю...

    Добавлено через 38 минут
    Написал вот так
    PHP:
    if($row $db->super_query("SELECT cid  FROM " PREFIX "_mservice_category where name = '$artist'")){ 
         
    $artid $row['cid']; 
     }else { 
         
    $db->query"INSERT INTO " PREFIX "_mservice_category (cid, name) VALUES (NULL, '$artist')"); 
         
    $artid mysql_insert_id(); 
     }
    Теперь вроде как работает все норм.. только вот это мне не выдает :(
    $artid = mysql_insert_id();
    Подскажите как правильно написать ?!

    Добавлено через 59 минут
    Все... заменил
    $artid = mysql_insert_id();
    на
    $artid = mysql_last_insert_id();
    и заработало...
    Спасибо chang!
     
  4. sigi

    sigi Постоялец

    Регистр.:
    17 дек 2006
    Сообщения:
    56
    Симпатии:
    1
    Хммм не все так хорошо как казалось.. выскакивает иногда ошибка
    Fatal error: Call to undefined function mysql_last_insert_id() in D:\*** on line 151
    И непонятно зачем оно начало писать id после 27 сразу 5590 ... Кто знает в чем проблемка может быть ?
     
  5. saen

    saen

    Регистр.:
    6 авг 2006
    Сообщения:
    756
    Симпатии:
    129
    функции "mysql_last_insert_id()" в php-mysql не существует, только если ты ее сам не напишешь. Есть функция mysql_insert_id()
     
Статус темы:
Закрыта.