2013-07-30 6 views
0

У меня есть запрос mysql, который возвращает 5 строк через PHP myadmin, но когда я пытаюсь загрузить его через php-страницу, я ничего не получаю.PHP-страница, не отображающая mysqli fetch

Здесь оператор выбора:

$result = mysqli_query($con,"select ID, MatchWon, MatchLost, MatchTied, ((MatchWon + (.5 * MatchTied))/(MatchWon + MatchLost + MatchTied)) as WinPCT 
FROM 
(
SELECT ID, 
SUM (CASE WHEN MatchResult = 'Won' THEN 1 ELSE 0 END) MatchWon, 
SUM (CASE WHEN MatchResult = 'Lost' THEN 1 ELSE 0 END) MatchLost, 
SUM (CASE WHEN MatchResult = 'Tied' THEN 1 ELSE 0 END) MatchTied 
FROM 
(
    SELECT hometeam AS ID, 
    CASE WHEN homescore > visitorscore THEN 'Won' 
    WHEN homescore < visitorscore THEN 'Lost' 
    WHEN homescore = visitorscore THEN 'Tied' 
    END AS MatchResult 
    FROM scores 

    UNION ALL 
    SELECT visitingteam AS ID, 
    CASE WHEN homescore < visitorscore THEN 'Won' 
    WHEN homescore > visitorscore THEN 'Lost' 
    WHEN homescore = visitorscore THEN 'Tied' 
    END AS MatchResult 
    FROM scores 
) as wonlosttable 
GROUP BY ID) as countwinlosstable 
ORDER BY WinPCT desc, MatchWon desc, MatchLost asc, MatchTied asc 
"); 

Вот код PHP Я использую для отображения:

while($row = mysqli_fetch_array($result)) 
    { 
    echo "<tr>"; 
    echo "<td align=center>" . $row['ID'] . "</td>"; 
    echo "<td align=center>" . $row['MatchWon'] . "</td>"; 
    echo "<td align=center>" . $row['MatchLost'] . "</td>"; 
    echo "<td align=center>" . $row['MatchTied'] . "</td>"; 
    echo "</tr>"; 
    } 

Вот простой код создания таблицы, если это необходимо для тестирования:

CREATE TABLE `scores` (
    `gameid` int(11) NOT NULL auto_increment, 
    `datesubmitted` varchar(50) NOT NULL, 
    `gamedate` varchar(11) NOT NULL, 
    `gametime` time NOT NULL, 
    `visitingteam` varchar(50) NOT NULL, 
    `visitorscore` int(11) NOT NULL, 
    `hometeam` varchar(50) NOT NULL, 
    `homescore` int(11) NOT NULL, 
    `submitter` varchar(50) NOT NULL, 
    PRIMARY KEY (`gameid`) 
) ENGINE=MyISAM AUTO_INCREMENT=27 DEFAULT CHARSET=latin1 AUTO_INCREMENT=27 ; 

-- 
-- Dumping data for table `scores` 
-- 

INSERT INTO `scores` VALUES (23, '7/30/2013 9:33:01 AM', '7/24/2013', '17:00:00', 'Culvers', 8, 'Siebe Studios', 2, 'MAXWELL'); 
INSERT INTO `scores` VALUES (26, '7/30/2013 9:58:37 AM', '7/24/2013', '18:00:00', 'Jimmy Johns', 10, 'Home Technology Systems', 3, 'MAXWELL'); 
INSERT INTO `scores` VALUES (25, '7/30/2013 9:47:52 AM', '7/29/2013', '15:00:00', 'Jimmy Johns', 10, 'Home Technology Systems', 3, 'MAXWELL'); 
INSERT INTO `scores` VALUES (24, '7/30/2013 9:46:34 AM', '7/26/2013', '10:30:00', 'Ellis', 5, 'Happy Joes', 13, 'MAXWELL'); 
+2

Определение * Я не получаю ничего назад. * Пустая страница? Любые ошибки? –

+1

Проверьте [Как включить отчет об ошибках] (http://stackoverflow.com/questions/6575482/php-how-do-i-enable-error-reporting) и вернитесь сюда после проверки. Ваш формат mysql запросил точно так же в вашем файле? –

+0

'printf (" Ошибка:% s \ n ", mysqli_error ($ con));' =? – Prix

ответ

1

Ваш SUM у них есть пробелы.

изменить это

 SUM (CASE WHEN MatchResult = 'Won' THEN 1 ELSE 0 END) MatchWon, 
    SUM (CASE WHEN MatchResult = 'Lost' THEN 1 ELSE 0 END) MatchLost, 
    SUM (CASE WHEN MatchResult = 'Tied' THEN 1 ELSE 0 END) MatchTied 
     ^^-----//--spaces here 

в

 SUM(CASE WHEN MatchResult = 'Won' THEN 1 ELSE 0 END) MatchWon, 
    SUM(CASE WHEN MatchResult = 'Lost' THEN 1 ELSE 0 END) MatchLost, 
    SUM(CASE WHEN MatchResult = 'Tied' THEN 1 ELSE 0 END) MatchTied 
+0

+1 - Вот что я вижу в этом sqlFiddle - http://sqlfiddle.com/#!2/96b1f/3 – Sean

+0

Вот и все! 3 простых пространства - спасибо за то, что заметили, что - высоко ценится !! – homermac

Смежные вопросы