Почему не удаляются элементы массива?

Discussion in 'PHP' started by vorona, 5 Sep 2010.

  1. vorona

    vorona Member

    Joined:
    7 Sep 2009
    Messages:
    392
    Likes Received:
    7
    Reputations:
    1
    PHP:
    $dels1=array();
    $dels2=array();
    $r=rand(1,2);
    for (
    $y=0;$y<$r;$y++)
    {
        
    $ran=rand(1,5);
        for (
    $t=0;$t<$ran;$t++)
        {
            
    $rrr=rand(1,10);
            if (!
    in_array($gamers1[$rrr],$dels1))
            {
                
    $array[]=genres(6,$ix,$gamers1[$rrr]);  $yel1=$yel1+1;
                
    $rz mysql_query("SELECT `sum` FROM `".$ix."_yellow` WHERE `pl`=".$gamers1[$rrr]);
                
    $rowz=mysql_fetch_row($rz);
                if (isset(
    $rowz[0]) && $rowz[0]!=="")
                {
                    
    $new=$rowz[0]+1;
                    
    $sql 'UPDATE `'.$ix.'_yellow` SET `sum`="'.$new.'"  WHERE `pl`='.$gamers1[$rrr];
                    
    $r=mysql_query($sql);
                }else{
                    
    $sql "INSERT INTO `".$ix."_yellow` (`id`, `pl`, `sum`, `cou`, `last1`, `last2`) VALUES ('''','".$gamers1[$rrr]."','1', '".$ix."', '0', '0')";
                    
    $r=mysql_query($sql);
                }
                
    $dels1[]=$gamers1[$rrr];
            }
        }
    }
    Суть такова: существует два массива с id'ами футболистов ($gamers1 и $gamers2). Существует 2 пустых массива ($dels1 и $dels2) для занисения в них id'ов игроков, которые получили желтую карточку.
    Если игрок получил желтую, он заносится в массив $dels1 или $dels2 (первая и вторая команды соперники). При цикле, если игрок не найден в массиве $dels1, то выполняеться дествие (запись в таблицу), если найден, то пропуск.

    Почему, если игрок найден в массиве $dels1, то всеравно выполняются действия с его id'ом?

    Ведь стоит:

    if (!in_array($gamers1[$rrr],$dels1))
    {
    .......................................
    $dels1[]=$gamers1[$rrr];
    }

    т.е. если игрока нету в $dels1, то выполняем действие и добавляем его в $dels1 чтобы при втором проходе уже не выполнять действие с этим id'ом.

    Привел только часть скрипта.
     
    #1 vorona, 5 Sep 2010
    Last edited by a moderator: 5 Sep 2010
  2. Gifts

    Gifts Green member

    Joined:
    25 Apr 2008
    Messages:
    2,494
    Likes Received:
    807
    Reputations:
    614
    vorona внутри второго цикла пропишите var_dump($dels1); и посмотрите, добавляется ли то что вы хотите. Возможно в функции genres() меняется третий параметр, проследите за этим. А так ошибка либо в функции, либо операторные скобки стоят не как в примере, потому что у меня скрипт работает
     
    _________________________
  3. vorona

    vorona Member

    Joined:
    7 Sep 2009
    Messages:
    392
    Likes Received:
    7
    Reputations:
    1
    Спасибо. Попробую. // Ф-я genres() никак не влияет на вышеуказанный код.
     
  4. gudri

    gudri New Member

    Joined:
    3 Sep 2010
    Messages:
    2
    Likes Received:
    0
    Reputations:
    0
    Code:
    $sql = "INSERT INTO `".$ix."_yellow` (`id`, `pl`, `sum`, `cou`, `last1`, `last2`) VALUES ('''','".$gamers1[$rrr]."','1', '".$ix."', '0', '0')";
    Мне тут почему-то 4 одинарных кавычки не нравятся... Может вообще убрать id, если он автоинкрементный?
     
  5. b3

    b3 Moderator

    Joined:
    5 Dec 2004
    Messages:
    2,041
    Likes Received:
    933
    Reputations:
    199
    Вас предупреждали раз 100 уже, и я тоже предупреждал когда был модером в данном разделе, но вы видимо ни капли не уважаете правила форума. Это я по поводу дибильных вопросов которые вы задаете в Новых топиках а не в прикрепленной теме.
    Горбатого могила исправит!

    ЗЫ сори за оффтоп.
     
    _________________________