Выбор

Тема в разделе "Общие вопросы", создана пользователем Alexygen, 3 авг 2006.

Статус темы:
Закрыта.
  1. Alexygen

    Alexygen Гость

    Поодскажите пожалуйста как отфильтровать результат который занесен в переменную $temp_value и уже имеется в таблице emails и emails_sender и потом занести в таблицу emails? Вот код:

    while(count($explode_filtered_result) > 0)
    {
    $temp_value = array_pop($explode_filtered_result);

    $email_search = mysql_query("select email from emails where email='$temp_value' ");

    if(!$email_search){
    $insert_email = mysql_query("insert into emails (email,user) values ('$temp_value','$user_id') ");
    }

    if(!$insert_email)
    {
    $error = 1;
    echo "$email_search<br><font color=red>Ошибка при попытки записи в БД адреса $temp_value.</font>";
    }
    }
     
  2. Gisma

    Gisma Гость

    может просто проверить кол-во возвращенных рядов?:)
     
  3. Alexygen

    Alexygen Гость

  4. Gisma

    Gisma Гость

    :) ну тогда расскажи смысл слова "отфильтровать"
    Оно для меня слишком умное и непонятное.
    Ну а потом объясни для чего ты привел этот код
     
  5. Alexygen

    Alexygen Гость

    Я заношу запись в таблицу и мне надо проверить имеется ли такая запись в таблице emails и в таблице emails_send, если нет то выставить ее в таблицу emails
     
  6. Gisma

    Gisma Гость

    Да, кул
    Теперь смотрим твои строки
    if(!$email_search){
    $insert_email = mysql_query("insert into emails (email,user) values ('$temp_value','$user_id') ");
    }
    Перевожу если $email_search равен FALSE то вставляем, так?
    Лезем в мануал читаем строки
    Это означает, что возникает ситуация, когда рядов нет, но запрос правилен, а следовательно у тебя вставка не проходит. И я тебе говорю вставь дополнительно проверку на количество возвращенных рядов.
     
  7. Alexygen

    Alexygen Гость

  8. Gisma

    Gisma Гость

    лезем в мануал и подбираем :
     
  9. Alexygen

    Alexygen Гость

    Я изменил код на:
    while(count($explode_filtered_result) > 0)
    {
    $temp_value = array_pop($explode_filtered_result);

    $email_search = mysql_query("select email from emails where email='$temp_value'");
    $email_search_step_2=mysql_num_rows($email_search);
    if(!$email_search_step_2){
    $insert_email = mysql_query("insert into emails (email,user) values ('$temp_value','$user_id') ");
    }
    if(!$insert_email)
    {
    $error = 1;
    echo "$email_search<br><font color=red>Îøèáêà ïðè ïîïûòêè çàïèñè â ÁÄ àäðåñà $temp_value.</font>";
    }
    }

    Теперь если в переменной находиться один email, который уже есть в базе emails, то он его не пропускает, а вот если в переменной содержуться два, то он пропускает их обоих!
     
  10. Gisma

    Gisma Гость

    как в это переменной хранятся два емейла?!
    твой SQL такой
    "select email from emails where email='$temp_value'"
    ты понимаешь что сам творишь?:)
     
  11. Alexygen

    Alexygen Гость

    В этой переменной может храниться сколько угодно мыл. Мне надо чтобы они не повторялись в базе. Вот и надо запрос который будет проверять!!! Это и был мой вопрос!!!
     
  12. Gisma

    Gisma Гость

    Это не было ясно с самого начала. И заметь как отличается твой конечный вопрос от первого. Как хранятся емейлы в твоей переменной? через запятую?
     
  13. s10

    s10 Гость

    знал я одного человека который записывал в одно поле много значений через ",".
    судьба у него была тяжелая.
    :)
     
  14. Alexygen

    Alexygen Гость

    Для: s10
    Знаю много людей которые ОЧЕНЬ МНОГО ВЫЁ..., а сами ни хрена не могут!!! :)
     
  15. Andrew Stephanoff

    Andrew Stephanoff Гость

    Alexygen, ты не прав. Хоть я и не знаю лично s10, но могу сделать вывод, что что-то он сделать может. А тебе лучше выбирать выражения, если тебя подкололи, не обязательно так хамить.
     
  16. Alexygen

    Alexygen Гость

    Я пришел сюда за помощью, а не за ехидством и подколами! Нашел над кем стебаться, над новичком, как буд-то бы сам родился со знаниями языков программирования! А о его знаниях я сделал вывод из того, что человек который отвечат не по теме сам ничего не знает!

    А нормальные люди с незнакомыми людми общаются уважительно, а кто этого не понимает сам заслуживает такого же отношения!
     
  17. Gisma

    Gisma Гость

    вот на это и будем считать конфликт закрытым;)
    а теперь продолжение дискуссии : разрезай свою переменную по запятым и проводи несколько запросов в цикле, другие вариации на тему вполне могут оказаться неэффективными ввиду того что я элементарно не вижу все картины что творится у тебя в программе, а это простое как лопата решение, решит твою проблему
     
  18. s10

    s10 Гость

    2 : Alexygen
    Прости меня пожалуйста - я действительно не со зла.
    А подкалывать или ( упоси гсподи ) оскорблять тебя у меня мыслей и близко не было.
    все люди равны в своих правах (до тех пор пока они не оказались лошьём). это первое.

    второе. если тебе не нравиться копаться с запятыми, то почему бы не изменить структуру базы, и добавить таблицу в которой пишутся твои емэйлы, и соответствующие id их пользователей.
    Код (Text):
    id_user email
    45          vasia@mail.ru
    45          vas_1@tut.by
    ...
    а в первой хранить чисто имя пользователя и его id
    Код (Text):
    id_user name
    45       vasiliy
    ну как ? чем не вариант ? и будешь тогда нормально все искать.

    и наконец третье. <!--QuoteBegin-Alexygen+4:08:2006, 18:14 -->
    <span class="vbquote">(Alexygen @ 4:08:2006, 18:14 )</span><!--QuoteEBegin-->Знаю много людей которые ОЧЕНЬ МНОГО ВЫЁ..., а сами ни хрена не могут!!!
    [snapback]41709" rel="nofollow" target="_blank[/snapback]​
    [/quote]
    я тоже очень много таких знаю. но если вдруг тебе показалось, хотя бы чуть чуть, что я из таких
    прошу тебя быть по конкретней в своих предъявах, при этом следя за словами.

    ещё раз прошу извинить. я просто шутил.
     
Загрузка...
Статус темы:
Закрыта.

Поделиться этой страницей