Php 回声变量一次

Php 回声变量一次,php,mysql,sql,Php,Mysql,Sql,如何在表中仅显示一次变量 <?php $sql = mysql_query("SELECT * FROM babydata"); while ($row = mysql_fetch_array($sql)) { for ($i = 1; $i <= 72; $i++) { if ($i == $weeknumber) { echo "<tr><td width='40'>Week $i</td>";

如何在表中仅显示一次变量

<?php
$sql = mysql_query("SELECT * FROM babydata");
while ($row = mysql_fetch_array($sql)) {
    for ($i = 1; $i <= 72; $i++) {
        if ($i == $weeknumber) {
            echo "<tr><td width='40'>Week $i</td>";
            echo "<td width='500' >" . count($row[$menucompare]) . "</td></tr>";
        }
    }
}
?>
但是我只想显示一次weeknumber,
count($row[$menucompare])
将在第4周计数为2。不是1和1

像这样:

--------------
week4 | 2
---------------

您可以直接在SQL中执行此操作。警告:我实际上没有测试这个

SELECT week, count(week) FROM babydata GROUP BY week;
这将直接返回如下结果

--------------
week4 | 2
week5 | 3
--------------
只需将
week
替换为week字段的实际名称,并调整PHP以处理新的结果结构。大致如下:

$sql= mysql_query("SELECT * FROM babydata");    
while($row = mysql_fetch_array($sql))
{
    echo "<tr><td width='40'>Week ".$row[0]."</td>" ;
    echo "<td width='500' >".$row[1]."</td></tr>";
}
$sql=mysql\u查询(“从babydata中选择*);
while($row=mysql\u fetch\u数组($sql))
{
回显“周”。$行[0]。”;
回显“$行[1]”;
}

您可以直接在SQL中执行此操作。警告:我实际上没有测试这个

SELECT week, count(week) FROM babydata GROUP BY week;
这将直接返回如下结果

--------------
week4 | 2
week5 | 3
--------------
只需将
week
替换为week字段的实际名称,并调整PHP以处理新的结果结构。大致如下:

$sql= mysql_query("SELECT * FROM babydata");    
while($row = mysql_fetch_array($sql))
{
    echo "<tr><td width='40'>Week ".$row[0]."</td>" ;
    echo "<td width='500' >".$row[1]."</td></tr>";
}
$sql=mysql\u查询(“从babydata中选择*);
while($row=mysql\u fetch\u数组($sql))
{
回显“周”。$行[0]。”;
回显“$行[1]”;
}

似乎您希望在特定的一周内输出babydata中的元组数量。您可以过滤掉查询中不属于
$weeknumber
的任何元组

// TODO: Assert, that $weeknumber is an integer, to not be prune to SQL injection.
$weeknumber = (int)(($currentdate - $birthday) / (7 * 24 * 60 * 60)) + 1;

// Select the amount of tuples in babydata for the desired $weeknumber.
$result = mysql_query("SELECT count(*) FROM babydata ".
    "WHERE week = $weeknumber");

// There is only one tuple with one column that contains the amount as number. 
$row = mysql_fetch_row($result);

// Output the week and the amount of data.
echo "<tr><td width='40'>Week $weeknumber</td>" ;
echo "<td width='500' >".$row[0]."</td></tr>";
//TODO:Assert,该$weeknumber是一个整数,不能删减到SQL注入。
$weeknumber=(int)($currentdate-$birth)/(7*24*60*60))+1;
//为所需的$weeknumber选择babydata中的元组数量。
$result=mysql\u查询(“从babydata中选择count(*)”。
“其中周=周数”);
//只有一个元组和一列包含数量作为数字。
$row=mysql\u fetch\u row($result);
//输出一周和数据量。
回显“周$weeknumber”;
回显“$行[0]”;
不需要循环

要输出所有周及其各自的数据量,请执行以下操作:

// Select the amount of tuples in babydata for all weeks.
$result = mysql_query("SELECT week, count(*) FROM babydata ".
    "GROUP BY week");

// For all weeks:
while ($row = mysql_fetch_row($result))
{
    // Output the week and the amount of data.
    echo "<tr><td width='40'>Week ".$row[0]."</td>" ;
    echo "<td width='500' >".$row[1]."</td></tr>";
}
//选择babydata中所有周的元组数量。
$result=mysql\u查询(“从babydata中选择周,计数(*)”。
“每周分组”);
//所有星期:
while($row=mysql\u fetch\u row($result))
{
//输出一周和数据量。
回显“周”。$行[0]。”;
回显“$行[1]”;
}

这假设您的表
babydata
中有一列
week
,其中只包含一个数字。这只输出至少有一个元组的周数

似乎您希望在特定的一周内输出babydata中的元组数量。您可以过滤掉查询中不属于
$weeknumber
的任何元组

// TODO: Assert, that $weeknumber is an integer, to not be prune to SQL injection.
$weeknumber = (int)(($currentdate - $birthday) / (7 * 24 * 60 * 60)) + 1;

// Select the amount of tuples in babydata for the desired $weeknumber.
$result = mysql_query("SELECT count(*) FROM babydata ".
    "WHERE week = $weeknumber");

// There is only one tuple with one column that contains the amount as number. 
$row = mysql_fetch_row($result);

// Output the week and the amount of data.
echo "<tr><td width='40'>Week $weeknumber</td>" ;
echo "<td width='500' >".$row[0]."</td></tr>";
//TODO:Assert,该$weeknumber是一个整数,不能删减到SQL注入。
$weeknumber=(int)($currentdate-$birth)/(7*24*60*60))+1;
//为所需的$weeknumber选择babydata中的元组数量。
$result=mysql\u查询(“从babydata中选择count(*)”。
“其中周=周数”);
//只有一个元组和一列包含数量作为数字。
$row=mysql\u fetch\u row($result);
//输出一周和数据量。
回显“周$weeknumber”;
回显“$行[0]”;
不需要循环

要输出所有周及其各自的数据量,请执行以下操作:

// Select the amount of tuples in babydata for all weeks.
$result = mysql_query("SELECT week, count(*) FROM babydata ".
    "GROUP BY week");

// For all weeks:
while ($row = mysql_fetch_row($result))
{
    // Output the week and the amount of data.
    echo "<tr><td width='40'>Week ".$row[0]."</td>" ;
    echo "<td width='500' >".$row[1]."</td></tr>";
}
//选择babydata中所有周的元组数量。
$result=mysql\u查询(“从babydata中选择周,计数(*)”。
“每周分组”);
//所有星期:
while($row=mysql\u fetch\u row($result))
{
//输出一周和数据量。
回显“周”。$行[0]。”;
回显“$行[1]”;
}


这假设您的表
babydata
中有一列
week
,其中只包含一个数字。这只输出至少有一个元组的周数

一年只有52周?不是吗?它怎么能回响两次???条件永远不会满足如果您可以在数组中提供值,它会有所帮助。添加了sql,而且它从不抱怨我想要超过1年的koz的周数为什么不在sql语句中添加一个
GROUP BY
?一年只有52周?不是吗?它怎么能回响两次???条件永远不会满足如果您可以在数组中提供值,它会有所帮助。添加了sql,而且它从不抱怨我想要超过1年的周数koz为什么不在sql语句中添加一个
GROUP BY
?您的意思是我将创建一行周数???@user1295,这不是你要找的吗?我不需要在mysql中创建周行,每次都要在那里计算周数:(在任何情况下,您都需要知道
babydata
的元组属于哪个
$weeknumber
$weeknumber我用php计算周数。我在注释中给了您变量。表中只有日期,没有周。您的意思是我将创建一行周???@user1291295,这不是您要找的吗?我不需要。)要在mysql中创建周行并在其中每次计数周,请执行以下操作:(在任何情况下,你都需要知道
babydata
的元组属于哪个
$weeknumber
$weeknumber我用php计算周数。我在注释中给了你这个变量。表中只有日期,没有周。不是这样,周是可变的,它可以是4,可以是什么。这是关于出生日期的将计入周数。您的意思是
$weeknumber
可以在循环期间更改吗?您可以在第一个示例中将
$weeknumber
设置为您喜欢的任何值。然后请修改您的问题。此功能不在您的代码示例中。您很清楚我的问题,周数可以根据日期更改。似乎我为变量
$weeknumber
分配的调试任务让您感到困惑。我删除了它。这解决了您的问题吗?不是这样,周是可变的,可以是4周,也可以是4周。出生日期将计入周数。您的意思是
$weeknumber
可以在循环期间更改吗?您可以设置
 $weeknumber
发送给任何人