Php 如何生成一个结果和一行来查找两列的sql和?

Php 如何生成一个结果和一行来查找两列的sql和?,php,sql,Php,Sql,我希望结果是柯克,33岁,总费用为30英镑,总约会时间为2天 等(顺便说一句,他们输入自己的名字,所有这些都会出现) sql语句应该是这样的? Table 1 Table 2 _________________ ____________________ | ID| Name |Age | | ID| Cost | Date | |---|-------|----| |---|-------|-------| | 1 | Kirk | 33

我希望结果是柯克,33岁,总费用为30英镑,总约会时间为2天 等(顺便说一句,他们输入自己的名字,所有这些都会出现)

sql语句应该是这样的?

Table 1               Table 2
_________________     ____________________
| ID| Name  |Age |    | ID| Cost  | Date  |
|---|-------|----|    |---|-------|-------|
| 1 | Kirk  | 33 |    | 1 |   10  |  9/10 |
| 2 | Lonzo | 55 |    | 1 |   20  |  7/8  |
| 3 | Dave  | 44 |    | 2 |   12  |  25/7 |
                      | 3 |   5   |  30/4 |
                      | 3 |   5   |  4/10 |
echo“$Name,年龄为$Age岁,总成本为$cost,总日期为$Date”

我出错了,说我的变量没有定义 那么我该如何将它们放入变量中呢

编辑固定的
我没有使用sql来查找它,而是使用while循环的结果,该循环不断地将一个变量添加到另一个变量(以计算日期)。成本在sql(sum)和result中都可以实现。

您缺少一个group子句。我还将其放在子查询中,并使用了
内部联接

$sql= "SELECT Table1.Name, Table1.ID, Table2.ID, Table1.Age, SUM(Table2.Cost), SUM(Table2.Date)
AS count from Table1, Table2
WHERE Table1.ID = Table2.ID and Table1.Name = (my example here)"
$result = $conn->query($sql);
$Cost = 0;
$Date= 0;
$rec = $result->fetch_assoc();
$Date= $rec{'count'};
$Cost= $rec{'count'};
$Age = $rec{'Age'}
您还应该将其中一条php语句更改为

SELECT Id, Name, Age, Cost, Dates
FROM Table1 
INNER JOIN ( 
  SELECT Id i, SUM(Cost) Cost,
  COUNT(Date) Dates 
  from Table2 
  GROUP BY Id) t
ON i=Id
WHERE Name = 'Kirk'

我没有使用sql来查找它,而是使用while循环的结果,该循环不断地将一个变量添加到另一个变量(以计算日期)。成本可以在sql(求和)和结果中实现。

只需使用join即可

$Cost= $rec{'Cost'};

SUM(表2.Date)
不起作用。那么你又期望它是什么呢?我认为你需要研究
分组方式
仔细检查你的
$sql
变量你甚至没有包括引号
$sql=“sql statement here”那么你会用什么语句来表示日期呢?它还出现了一个错误-->“致命错误:未捕获错误:调用布尔函数上的成员函数fetch_assoc()…堆栈跟踪:#0{main}”这是我的$rec=$result->fetch_assoc();
SELECT table2.date ,SUM(cost) AS tatol FROM table1 
JOIN table2 ON table2.id = table1.id
WHERE table1.id = 1