Друзья. Требуется помощь с 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);
}