【问题标题】:Mysql Function within a function what am I missingMysql 函数中的函数我缺少什么
【发布时间】:2014-02-26 23:08:32
【问题描述】:

即使在 phpMyAdmin 中它运行良好并且给我平均水平,也可以让它显示,但是当我在网页上运行它时它不显示表格

<?php
 echo "<table border='1' style='border-collapse: collapse;border-color: silver;'>";
 echo "<tr style='font-weight: bold;'>";
 echo "<td width='200' align='center'>Avrage Age*</td>";
 echo "</tr>";
include("dbopen.php");
$result = mysql_query("

 SELECT AVG(Age) 
 FROM(
 SELECT N, Dob, Age
 FROM (
 SELECT N, Dob, CURDATE( ) , (
 YEAR( CURDATE( ) ) - YEAR( F ) 
 ) - ( RIGHT( CURDATE( ) , 5 ) < RIGHT( F, 5 ) ) AS Age
 FROM tableages_)alias
 WHERE Age BETWEEN 18 AND 65) As agea ");

 while($row=mysql_fetch_array($result))

  {  
 echo "<tr>";  
 echo "<td align='center' width='200'>" . $row['agea'] . "</td>";  
  echo "</tr>";  
   }  
 echo "</table>";  
 ?>

【问题讨论】:

  • 运行该函数时标记是什么样子的?您是否选择了正确的数据库?
  • 是的,我选择了正确的数据库我有另一个 PHP 脚本运行相同的 dbopen.php 行并且运行良好,你要问什么标记? phpmyadmin 运行良好并在 php 页面上显示此结果 AVG(Age) 33.0347 它不显示表格

标签: php mysql arrays function row


【解决方案1】:

您可以在 sql 中稍作修改使其工作:

SELECT
    AVG(Age) as agea
FROM 
    (
        SELECT
            N,
            Dob,
            CURDATE( ) ,
            (YEAR( CURDATE( ) ) - YEAR( F )) - ( RIGHT( CURDATE( ) , 5 ) < RIGHT( F, 5 ) ) AS Age
        FROM tableages_
    ) alias
WHERE Age BETWEEN 18 AND 65

您应该使用mysql_fetch_assoc 来获得$row['agea'] 的结果。哦,只有一行,所以不要使用while循环,没有必要。

顺便说一句,我不建议您使用 mysql 驱动程序,它很旧并且存在安全问题。您应该改用PDO driver。在这种情况下,您应该在语句中使用 fetch 列。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-06-23
    • 1970-01-01
    • 1970-01-01
    • 2011-10-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多