За последние 24 часа нас посетили 50850 программистов и 1747 роботов. Сейчас ищут 875 программистов ...

всё в массив

Тема в разделе "PHP для новичков", создана пользователем rs_ssh, 11 фев 2016.

  1. rs_ssh

    rs_ssh Активный пользователь

    С нами с:
    18 янв 2014
    Сообщения:
    220
    Симпатии:
    0
    Есть такой запрос:
    $result = mysql_query("SELECT id FROM `users`",$db);
    ...
    while($myrow = mysql_fetch_array($result));

    Как лучше сделать чтобы все выбранные $myrow["id"] записать в массив, а потом, отсеять дубликаты и каждый раз сверять есть ли конкретный $myrow["id"] в массиве или нет.
    Всё это дело происходит в цикле вывода из БД.
     
  2. Ganzal

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

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    если строки помимо айдишника имеют вообще идентичные значения полей то можно в процессе итерации делать просто так:
    Код (PHP):
    1. $data=[];
    2. while($row = mysql_fetch_array($result)){
    3. $data[$row['id']] = $row;
    4. } 
    два замечания по увиденному коду:
    1. точка с запятой в строке while отсекает возможное тело цикла
    2. mysql уже удален и нужно переходить на mysqli или PDO
     
  3. p@R@dox 55RU

    p@R@dox 55RU Зэк
    [ БАН ]

    С нами с:
    21 май 2014
    Сообщения:
    1.358
    Симпатии:
    7
    Адрес:
    с планеты Ялмез
    думаю, можно поступить еще проще, добавить одно слово к запросу, и не нужно будет собирать массив в цикле (:)
     
  4. Ganzal

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

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    а, я что-то и не обратил внимания что там только айдишник-то и выбирается
     
  5. rs_ssh

    rs_ssh Активный пользователь

    С нами с:
    18 янв 2014
    Сообщения:
    220
    Симпатии:
    0
    Как? :)
     
  6. p@R@dox 55RU

    p@R@dox 55RU Зэк
    [ БАН ]

    С нами с:
    21 май 2014
    Сообщения:
    1.358
    Симпатии:
    7
    Адрес:
    с планеты Ялмез
  7. Ganzal

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

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    я сильно извиняюсь, но как в таблице пользователей может быть повтор айдишников? сама суть УНИКАЛЬНОГО ИДЕНТИФИКАТОРА в том что он УНИКАЛЬНО ИДЕНТИФИЦИРУЕТ запись. что-то тут говнокодом каким-то попахивает.
     
  8. p@R@dox 55RU

    p@R@dox 55RU Зэк
    [ БАН ]

    С нами с:
    21 май 2014
    Сообщения:
    1.358
    Симпатии:
    7
    Адрес:
    с планеты Ялмез
    офф-топ
    хорошо развито обоняние на кодинг :D :D
     
  9. rs_ssh

    rs_ssh Активный пользователь

    С нами с:
    18 янв 2014
    Сообщения:
    220
    Симпатии:
    0
    Сорри, не id, userid!
    Сделал так:
    $data[$myrow["userid"]] = $myrow["userid"];
    В цикле в print_r($data) вижу:
    Array ( [1] => 1 )
    Array ( [1] => 1 [2] => 2 )
    Array ( [1] => 1 [2] => 2 )
    Array ( [1] => 1 [2] => 2 )

    Делаю поиск:
    Код (Text):
    1. if(in_array($myrow["userid"], $data[$myrow["userid"]]))
    2. {
    3.      echo "found";
    4. }
    5. else
    6. {
    7.      echo "not found";
    8. }
    И всегда выводит not found
    Как так?
     
  10. mahmuzar

    mahmuzar Старожил

    С нами с:
    6 апр 2012
    Сообщения:
    4.631
    Симпатии:
    425
    Адрес:
    РД, г. Махачкала.
    ты где кодишь?
     
  11. igordata

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

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    А в случае обнаружения дубликата, по какому правилу принимать решение, какую запись оставить, а какую удалить?
     
  12. Abyss

    Abyss Старожил

    С нами с:
    12 дек 2015
    Сообщения:
    1.298
    Симпатии:
    218
    Адрес:
    Default city
    Я так и не понял пока.