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'ом. Привел только часть скрипта.
vorona внутри второго цикла пропишите var_dump($dels1); и посмотрите, добавляется ли то что вы хотите. Возможно в функции genres() меняется третий параметр, проследите за этим. А так ошибка либо в функции, либо операторные скобки стоят не как в примере, потому что у меня скрипт работает
Code: $sql = "INSERT INTO `".$ix."_yellow` (`id`, `pl`, `sum`, `cou`, `last1`, `last2`) VALUES ('''','".$gamers1[$rrr]."','1', '".$ix."', '0', '0')"; Мне тут почему-то 4 одинарных кавычки не нравятся... Может вообще убрать id, если он автоинкрементный?
Вас предупреждали раз 100 уже, и я тоже предупреждал когда был модером в данном разделе, но вы видимо ни капли не уважаете правила форума. Это я по поводу дибильных вопросов которые вы задаете в Новых топиках а не в прикрепленной теме. Горбатого могила исправит! ЗЫ сори за оффтоп.