我要查詢到mysql數據庫。 這個查詢返回到數組值,我需要把這個數組放在一個表中。 第一行與第二行有關。 第一個查詢包含一組生產線中的所有工作場所。 第二個查詢包含每個工作場所的生產線和工作場所的工人分類。PHP把兩個查詢結果放在表
讓我們來看看:
第一行 - 工作場所
第二排 - 分類
表上的鏈接表示每個職場工作者的分類。
我需要將第一行與第二行關聯,但不知道如何執行此操作。
請幫忙。 謝謝
我要查詢到mysql數據庫。 這個查詢返回到數組值,我需要把這個數組放在一個表中。 第一行與第二行有關。 第一個查詢包含一組生產線中的所有工作場所。 第二個查詢包含每個工作場所的生產線和工作場所的工人分類。PHP把兩個查詢結果放在表
讓我們來看看:
第一行 - 工作場所
第二排 - 分類
表上的鏈接表示每個職場工作者的分類。
我需要將第一行與第二行關聯,但不知道如何執行此操作。
請幫忙。 謝謝
與此查詢我可以搜索工作場所和分類
SELECT DISTINCT PT.ID_WORKPLACE, F.WORKER, F.CLASSIFICATION, PT.LINE
FROM WORKPLACE_FORMATION PF
LEFT JOIN FORMATION F ON PF.ID_FORMATION=F.ID_FORMATION
RIGHT JOIN WORKPLACE_FORMATION PT ON PF.ID_WORKPLACE=PT.ID_WORKPLACE
WHERE F.WORKER=1234
OR F.WORKER IS NULL
AND PT.LINE=126;
和PHP代碼將數據放入表: 「;
echo '<tr>';
echo '<td colspan="'.$postos_numero.'">Postos de Trabalho</td>';
echo '</tr>';
echo '<tr align="center" valign="middle" class="tabelas">';
while ($registo_postos = mysql_fetch_array($resultado_pesquisa_entre_datas))
{
echo '<td>';
echo "".$registo_postos['POSTO']."";
echo '</td>';}
echo '</tr>';
echo '<tr align="center" valign="middle" class="tabelas">';
while ($registo_postos_d = mysql_fetch_array($resultado_pesquisa_colab_linha_desmp))
{
if ($registo_postos_d['DESEMP'] == NULL){
echo '<td>';
echo "<img height='20' width='20' src='./img/x.png' title='Sem formação neste posto de trabalho'>";
echo '</td>';
}elseif($registo_postos_d['DESEMP'] == 1){
echo '<td>';
echo "<img height='20' width='20' src='./img/!.png' title='Produz com supervisão'>";
echo '</td>';
}elseif($registo_postos_d['DESEMP'] == 2){
echo '<td>';
echo "<img height='20' width='20' src='./img/v.png' title='Produz sem supervisão e está apto a dar formação'>";
echo '</td>';
}}
echo '</tr>';
echo '</table>';
?>
看到這個圖像上的結果: http://s18.postimg.org/4i163rtuh/image_result.png
沒有看到您的數據庫表,很難給出具體的答案,但通常我會看到使用工作場所的左連接到工作人員的位置。在這個例子中,我會假設一個表的結構是這樣的:
工作地點:
workplace_id - autoincrment primary key
workplace_label - name to be used for display
[other workplace data fields] - not important for this example
workplace_id workplace_label
1 0001
2 0002
...
工人:
worker_id - autoincrement primary key
[other worker data fields] - not important for this example
workers_workplaces:
workplace_id - part of compound primary key with worker_id
worker_id - part of compound primary key with workplace_id
查詢來獲取數據你正在尋找可能看起來像這樣:
SELECT
wp.workplace_label AS workplace,
COUNT(wwp.worker_id) AS worker_count
FROM workplaces AS wp
LEFT JOIN worker_workplaces AS wwp
ON wp.workplace_id = wwp.workplace_id
GROUP BY workplace
這將返回數據,如
workplace worker_count
0001 0
0002 0
0003 2
0004 1
...
注意,我並沒有實際使用的workers
表中查詢它是不必要的。我只是想解釋這張表的存在,所以你可以看到workers_workplaces
表是如何將兩個其他表聯繫在一起的。
當讀出結果PHP設置你可能會做這樣的事情:
$workplace_array = array();
while ($row = /* your DB fetch here */) {
$workplace_array[$row['workplace'] = $row['worker_count'];
}
這給你工作場所的標籤作爲鍵的關聯數組。如果您只想獲得工作場所標籤(例如在表格中顯示標題行)。你可以很容易得到,像:
$workplace_labels = array_keys($workplace_array);
請看這個圖像架構http://s30.postimg.org/n3uu1etlt/Captura_de_tela_2014_10_30_14_26_21.png – JoaoVM 2014-10-30 15:04:11
好吧,這個查詢返回所有工作場所,工人分類和工人ID。我會嘗試把它放在HTML表格做相同的問題圖像的方式。 SELECT DISTINCT PT.ID_WORKPLACE,F.WORKER,F.CLASSIFICATION,PT.LINE FROM WORKPLACE_FORMATION PF LEFT JOIN地層F ON PF.ID_FORMATION = F.ID_FORMATION RIGHT JOIN WORKPLACE_FORMATION PT ON PF.ID_WORKPLACE = PT.ID_WORKPLACE 其中f .WORKER = 1234 OR F.WORKER is NULL AND PT.LINE = 126; – JoaoVM 2014-10-30 15:41:36
爲什麼我的問題是不清楚或不有用嗎? – JoaoVM 2014-10-30 13:47:46
好像你應該用一個LEFT JOIN查詢來獲取所有這些數據。 – 2014-10-30 13:47:58
我有一個簡單的查詢來返回所有的工作場所放在桌子上。並有第二個查詢返回工作場所和工作分類的某些工作場所,第二個查詢使用內部連接 – JoaoVM 2014-10-30 13:53:13