我的数据库中有以下3个表:


导体:id_conductor,nombre_conductor
Trayectos:id_trayecto,Trayecto,Origen,Destino,Horas_conduccion
Viajes:id_viaje,id_conductor,id_trayecto,Salida,Llegada,Horas_conduccion,Disco,Semana


“ Viajes”表是我每天都要插入卡车驾驶员(指挥)的日程的表,我想在这样的表中计算每个卡车驾驶员的行驶时间和休息时间:




  我必须建立该表的代码如下:


The connection to the data base obviously...
<?php
echo "<table border='1'>";
echo "<tr>";
echo "<td><b>Conductor</b></td>";
echo "<td><b>Posicion Actual</b></td>";
// (etc.........)
echo "<td><b>Descansos 11 H.</b></td>";
echo "</tr>";

$sql="SELECT * FROM conductores ";
$resultado=mysql_query($sql);
while($row=mysql_fetch_array($resultado)){
  echo "<tr>";
  echo "<td valign='top'>" . nl2br($row["nombre_conductor"]) . "</td>";
  echo "<td></td>";
  // (etc.........)
  echo "</tr>";
}


我知道如何计算列,但仅针对一位卡车司机,例如,如果我想要驾驶员1的当前位置(实际位置),我将这样做:

$result=mysql_query("SELECT Destino FROM trayectos WHERE (SELECT MAX(id_viaje) FROM viajes WHERE id_conductor=1)");
$row = mysql_fetch_array($result, MYSQL_ASSOC);
echo "Posición Actual = " . $row["Destino"];


上周营业时间:

$result = mysql_query("SELECT SEC_TO_TIME (SUM( TIME_TO_SEC(Horas_conduccion))) as total FROM viajes WHERE id_conductor=1 AND semana=week(curdate())-1");
$row = mysql_fetch_array($result, MYSQL_ASSOC);
echo "horas semana anterior = " . $row["total"];


其余的依此类推。

因此,我想为每个卡车驾驶员自动执行此操作,并覆盖孔表。

你可以帮帮我吗?我有点迷路了。

最佳答案

从导体列表中获取每个导体的ID,然后将其传递给查询并进行循环。

$result=mysql_query("SELECT Destino FROM trayectos WHERE (SELECT MAX(id_viaje) FROM viajes WHERE id_conductor='.$conductor_id)");

10-08 04:22