Как выводить содержание таблицы при условии >= 0?

Друзья. Требуется помощь с MySQL:

Помочь найти строку, в которой прописано условие (видимо в mySql это Select где прописано что выборку делать если игр > 0 или очков > 0. Нужно чтобы выборка делалась при условии >=0.

К сожалению знаний не хватает чтобы разобраться самостоятельно, надеялся что здесь помогут...
Представлена функция формирующая на сайте турнирную таблицу. Вопрос вот в чем: она не заполняется при условии если у команд нет очков и сыгранных матчей. Нужно чтобы при 0 очков и нуле матчей она заполнялась с нулями. по всем ячейкам:

function tour_table($sn) {

    global $wpdb;
    $tpl_dir = WP_CONTENT_DIR . '/uploads/templates/';

    $query = "SELECT * FROM season AS s, rule AS r WHERE s.sid = ".$sn." AND s.rid = r.rid";
    $rule = $wpdb->get_row($query, ARRAY_A);

    $query = "SELECT *, ta.tname AS taname, tb.tname AS tbname, ta.tmid AS atmid, tb.tmid AS btmid FROM game AS g, season AS s, team AS ta, team AS tb  WHERE g.sid = ".$sn." AND g.sid = s.sid AND g.ateam = ta.tmid AND g.bteam = tb.tmid AND g.status <> 0 ";
    $res = $wpdb->get_results($query, ARRAY_A);

    $sum = array();
    $teams = array();
    $tmids = array();
    $i = 0;
    //echo $wpdb->num_rows;
    foreach ($res as $row)
    {

        $ta = array_search($row['atmid'], $tmids);
        $tb = array_search($row['btmid'], $tmids);

        if($ta === false) {
            $ta = $i;  $teams[$i] = $row['taname']; $tmids[$i] = $row['atmid']; $sum[$ta][7] = $i;
            for($k=0;$k<7;$k++) $sum[$ta][$k] = 0; $i++;
        }
        if($tb === false) {
            $tb = $i;  $teams[$i] = $row['tbname']; $tmids[$i] = $row['btmid']; $sum[$tb][7] = $i;
            for($k=0;$k<7;$k++) $sum[$tb][$k] = 0; $i++;
        }

        $sum[$ta][4] += $row['agoals'];
        $sum[$ta][5] += $row['bgoals'];
        $sum[$tb][4] += $row['bgoals'];
        $sum[$tb][5] += $row['agoals'];

        // победа в осн время
        if($row['win'] == 0 ) {

            // победил А
            if($row['agoals'] > $row['bgoals']) {
                $sum[$ta][0] ++; $sum[$ta][6] += $rule['wosn'];
                $sum[$tb][3] ++; $sum[$tb][6] += $rule['fosn'];
            }
            // подбедил Б
            elseif($row['agoals'] < $row['bgoals']) {
                $sum[$tb][0] ++; $sum[$tb][6] += $rule['wosn'];
                $sum[$ta][3] ++; $sum[$ta][6] += $rule['fosn'];
            }
            else {
                $sum[$tb][1] ++; $sum[$tb][6] += $rule['non'];
                $sum[$ta][1] ++; $sum[$ta][6] += $rule['non'];
            }
        }
        else {

            if($row['agoals'] > $row['bgoals']) {
                $sum[$ta][1] ++; $sum[$ta][6] += $rule['wot'];
                $sum[$tb][2] ++; $sum[$tb][6] += $rule['fot'];
            }
            else {
                $sum[$tb][1] ++; $sum[$tb][6] += $rule['wot'];
                $sum[$ta][2] ++; $sum[$ta][6] += $rule['fot'];
            }

        }

    }


    $sum2 = multisort($sum, 6);


    // проверяем на совпадение очков
    $point = -1;
    $arr_team_eq = array();
    $k = 0;
    for($i=0; $i < count($sum2); $i++) {

        if($point == $sum2[$i][6]) {
            $arr_team_eq[$k][0] = $tmids[$sum2[$i][7]]; $arr_team_eq[$k][1] = $point; $arr_team_eq[$k][2] = $i; $k++;
            $arr_team_eq[$k][0] = $tmids[$sum2[$i-1][7]]; $arr_team_eq[$k][1] = $point; $arr_team_eq[$k][2] = $i-1; $k++;
        }

        $point = $sum2[$i][6];
    }
    // выясняем кто круче
    if(count($arr_team_eq) > 0) {

        // вопрос: если более чем две команды с одинак очками и две и более коллизии
        // определить сортировку
        // произвести расчет
        // поменять местами строки

        // очки в личных встречах
        $aid = $arr_team_eq[0][0];
        $bid = $arr_team_eq[1][0];

        $ap = $arr_team_eq[0][2];
        $bp = $arr_team_eq[1][2];

        //echo $arr_team_eq[0][2]."(".$a.")  ".$arr_team_eq[1][2]."(".$b.")";
        $apoint = 0;
        $bpoint = 1;
        $query = "SELECT *, ta.tmid AS atmid, tb.tmid AS btmid FROM game AS g, season AS s, team AS ta, team AS tb "
                . "WHERE g.sid = ".$sn." AND g.sid = s.sid AND g.ateam = ta.tmid AND g.bteam = tb.tmid AND g.status > 0 AND (((g.ateam = ".$aid.") OR (g.ateam = ".$bid."))"
                . "AND ((g.bteam = ".$aid.") OR (g.bteam = ".$bid.")))";
        $res = $wpdb->get_results($query, ARRAY_A);
        foreach ($res as $row) {

            if($row['win'] == 0 ) {
                //echo 'win';
                // победил А
                if($row['agoals'] > $row['bgoals']) {
                    //echo 'ag';
                    if($row['atmid'] == $aid) { $apoint += $rule['wosn']; $bpoint += $rule['fosn']; }
                    else { $bpoint += $rule['wosn']; $apoint += $rule['fosn']; }
                }
                // победил Б
                elseif($row['agoals'] < $row['bgoals']) {
                    //echo 'bg';
                    if($row['btmid'] == $bid) { $bpoint += $rule['wosn']; $apoint += $rule['fosn']; }
                    else { $apoint += $rule['wosn']; $bpoint += $rule['fosn']; }
                }
                else {
                    $apoint += $rule['non']; $bpoint += $rule['non'];
                }
            }
            else {
                if($row['agoals'] > $row['bgoals']) {
                    if($row['atmid'] == $aid) { $apoint += $rule['wot']; $bpoint += $rule['fot']; }
                    else { $bpoint += $rule['wot']; $apoint += $rule['fot']; }
                }
                else {
                    if($row['btmid'] == $bid) { $bpoint += $rule['wot']; $apoint += $rule['fot']; }
                    else { $apoint += $rule['wot']; $bpoint += $rule['fot']; }
                }

            }
        }

        //echo "a=".$apoint.",  b=".$bpoint;

        // меняем местами позиции в отсортированном массиве
        if($apoint != $bpoint) {
            //echo 'sort';
            if($bpoint > $apoint) $sum2 = change_arr($sum2, $bp, $ap);

        }


    }

    $out = '';
    $out .= '<div class="bheader"><h3 id="tourney">Турнирная таблица</h3></div>';
    $out .= '<table class="stable"><tr><th width="7%">М</th><th align="left">Команда</th><th width="7%">И</th><th width="7%">В</th>';
    if($rule['non'] > 0) $out .= '<th width="7%">Н</th><th width="7%">П</th>';
    else $out .= '<th width="7%">П</th><th width="7%">ВО</th><th width="7%">ПО</th>';
    $out .= '<th width="10%">Ш</th><th width="7%">O</th></tr>';
    $chet = 0;
    for($i=count($sum2)-1; $i >=0 ; $i--) {

        $ed = (($chet+1)%2 == 0)? 'class="ed"' : '';
        $out .= '<tr '.$ed.'><td align="center">'.(count($sum2)-$i).'</td>';
        $out .= '<td>'.$teams[$sum2[$i][7]].'</td>';
        $out .= '<td align="center">'.($sum2[$i][0] + $sum2[$i][1] + $sum2[$i][2] + $sum2[$i][3]).'</td>';
        $out .= '<td align="center">'.$sum2[$i][0].'</td>';


        if($rule['non'] > 0) { $out .= '<td align="center">'.$sum2[$i][1].'</td>'; $out .= '<td align="center">'.$sum2[$i][3].'</td>';}
        else {
            $out .= '<td align="center">'.$sum2[$i][3].'</td>';
            $out .= '<td align="center">'.$sum2[$i][1].'</td>';
            $out .= '<td align="center">'.$sum2[$i][2].'</td>';
        }


        $out .= '<td align="center">'.$sum2[$i][4].':'.$sum2[$i][5].'</td>';
        //echo '<td>'.($sum2[$i][4] - $sum2[$i][5]).'</td>';
        $out .= '<td align="center">'.$sum2[$i][6].'</td></tr>';
        $chet++;
    }


	 // если не четное число команд в турнире
	 // ещем кто еще не сыграл в первом туре
/*
	 $teams_count = $wpdb->get_var("SELECT COUNT(*) FROM rival AS r WHERE r.sid = ".$sn);
	 if($teams_count%2 != 0) {
		 $query = "SELECT * FROM rival AS r, team AS t WHERE r.sid = ".$sn." AND r.tmid = t.tmid";
		 $res = $wpdb->get_results($query, ARRAY_A);
		 foreach ($res as $row) {
			 $is_played = $wpdb->get_var("SELECT COUNT(*) FROM game AS g WHERE g.sid = ".$sn." AND g.tour = 1 AND (g.ateam = ".$row['tmid']. " OR g.bteam = ".$row['tmid'].")");
			 $ed = (($chet+1)%2 == 0)? 'class="ed"' : '';
			 if($is_played == 0) $out .= '<tr '.$ed.'><td align="center">'.($chet+1).'</td><td>'.$row['tname'].'</td><td align="center">0</td><td align="center">0</td><td align="center">0</td><td align="center">0</td><td align="center">0</td><td align="center">-</td><td align="center">0</td></tr>';
		 }
	 }
*/



   $out .= '</table><br><br>';


   // запись в файл
   $file = $sn."_season.tpl"; // Некоторый файл
   $fh = fopen($tpl_dir.$file, "w");
   fwrite($fh, $out);
   fclose($fh);



}
  • Вопрос задан
  • 74 просмотра
Пригласить эксперта
Ответы на вопрос 1
@fridriekh
Фулл-тайм эникей
SQL coalesce()
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы