2012-06-23 1 views
-1

У меня есть три таблицы:Как отображать каждую строку в другой таблице с помощью php-mysql?

Employee (EmployeeID, Fname, LName ...)
ProjectHeader (ProjectID, LeadID, состояние ....)
ProjectDetails (ProjectDetailsID, ProjectID ....)

Вот мой текущий код:

$get_projects = "SELECT DISTINCT projectheader.ProjectID, projectheader.ProjectName ,projectheader.Lead, projectheader.StartDate, projectheader.EndDate, projectheader.Status, projectheader.Remarks, CONCAT (employee.Firstname, ' ' ,employee.Lastname) AS EmployeeName 
FROM employee, projectheader, projectdetails 
WHERE projectheader.ProjectID = projectdetails.ProjectID 
AND projectheader.Lead = employee.EmployeeID"; 

$result = mysql_query($get_projects); 

$project_id = ""; 
$project_name = ""; 
$project_lead = ""; 
$project_start = ""; 
$project_end = ""; 
$project_status = ""; 
$project_remarks = ""; 
$table = ""; 
$table .= "<table border='1'> <th>ProjectID</th>" 
."<th>Project name</th>" 
."<th>Lead</th>" 
."<th>Start</th>" 
."<th>End</th>" 
."<th>Status</th>" 
."<th>Remark</th>"; 
while($row = mysql_fetch_array($result)) 
{ 
    $project_id = $row['ProjectID']; 
    $project_name = $row['ProjectName']; 
    $project_lead = $row['EmployeeName']; 
    $project_start = $row['StartDate']; 
    $project_end = $row['EndDate']; 
    $project_status = $row['Status']; 
    $project_remarks = $row['Remarks']; 

    $table .= "<tr>"; 
    $table .= "<td>" .$project_id ."</td>"; 
    $table .= "<td>" .$project_name ."</td>"; 
    $table .= "<td>" .$project_lead ."</td>"; 
    $table .= "<td>" .$project_start ."</td>"; 
    $table .= "<td>" .$project_end ."</td>"; 
    $table .= "<td>" .$project_status ."</td>"; 
    $table .= "<td>" .$project_remarks ."</td>"; 
    $table .= "</tr>"; 

} 
$table .= "</table>"; 
echo $table; 
?> 

То, что я в настоящее время прямо сейчас что-то вроде этого enter image description here

То, что я хочу иметь, вместо того, чтобы каждая строка отображалась в одной таблице, каждая строка будет иметь свою таблицу.

enter image description here

ответ

2

Просто создайте новый table внутри цикла while, который будет создавать новую таблицу для каждого результата SQL строки. Обратите внимание, что вам также не хватает tr тегов вокруг заголовков таблиц (th)

while($row = mysql_fetch_array($result)) 
{ 
    $table .= "<table border='1'>" 
    ."<tr><th>ProjectID</th>" 
    ."<th>Project name</th>" 
    ."<th>Lead</th>" 
    ."<th>Start</th>" 
    ."<th>End</th>" 
    ."<th>Status</th>" 
    ."<th>Remark</th></tr>"; 

... 

    $table .= "<tr>"; 
    $table .= "<td>" .$project_id ."</td>"; 
    $table .= "<td>" .$project_name ."</td>"; 
    $table .= "<td>" .$project_lead ."</td>"; 
    $table .= "<td>" .$project_start ."</td>"; 
    $table .= "<td>" .$project_end ."</td>"; 
    $table .= "<td>" .$project_status ."</td>"; 
    $table .= "<td>" .$project_remarks ."</td>"; 
    $table .= "</tr>"; 
    $table .= "</table>"; 
} 

echo $table; 
Смежные вопросы