我在stackoverflow上创建了这个SQL查询并调整以满足我的需求,这在phpMyAdmin中有效:
$queryClassifica = "SELECT Squadra,
SUM( CASE WHEN PuntiCasa > PuntiTrasferta THEN 2 ELSE 0 END ) punti,
COUNT( CASE WHEN PuntiCasa >0 AND PuntiTrasferta >0 THEN 1 END ) giocate,
COUNT( CASE WHEN PuntiCasa > PuntiTrasferta THEN 1 END ) vinte,
COUNT( CASE WHEN PuntiTrasferta > PuntiCasa THEN 1 END ) perse,
SUM( PuntiCasa ) PuntiCasa,
SUM( PuntiTrasferta ) PuntiTrasferta,
SUM( PuntiCasa ) - SUM( PuntiTrasferta ) diff_canestri
FROM (
SELECT SquadraCasa Squadra, PuntiCasa, PuntiTrasferta
FROM calendario
UNION ALL
SELECT SquadraTrasferta, PuntiTrasferta, PuntiCasa
FROM calendario
)a
GROUP BY Squadra
ORDER BY Punti DESC , diff_canestri DESC";
在我的PHP页面中,我提交相同的查询,但它不起作用,如果我检查行号,它总是为0。
$result = mysqli_query($con, $queryClassifica);
$row_cnt = $result->num_rows;
当然,如果我获取查询结果,则数组为空。 哪里出错了?
答案 0 :(得分:0)
看起来您正在结合面向对象的风格和程序风格。如果您的代码是以面向对象的样式编写的:
$result = $mysqli->query($queryClassifica);
$row_cnt = $result->num_rows;
$result->close();
$mysqli->close();
或程序风格:
$result = mysqli_query($link,$queryClassifica);
$row_cnt = mysqli_num_rows($result);
mysqli_free_result($result);
mysqli_close($link);
我说你最有可能把它写成程序但是试试两者。