[英]Best way to print values from mysql table by querying through PHP
在我的頁面中,大多數時候,我需要使用循環來打印表中僅一個字段的值。 例如:
<?php
for($i=1;$i<=mysql_num_rows($result);$i++)
{
echo $row['name'];
$sql1="select industry from table_industry where profid='".$row['prof']."'";
$result1=mysql_query($sql1);
$row1=mysql_fetch_array($result1);
echo $row1['industry']; ?>
}
?>
例如,我在表中有5000多個記錄,上面的循環將執行5000多次。
從table_industry
表中打印industry
字段值的最佳方法是什么?
是上面我寫的代碼,還是有一種更快執行的方法?
JOIN
力量。 我最好的猜測是, JOIN
將在這里為您提供幫助。
通過join
您可以指示MySQL服務器組合不同的表並在單個查詢中訪問它們,例如:
SELECT
table_prof.profid
, table_prof.name
, table_industry.industry
FROM table_prof
JOIN table_industry USING ( profid )
ORDER BY table_prof.name ASC;
一般來說,循環查詢數據庫是一個非常糟糕的主意,除非您確切知道為什么要這樣做,否則應避免查詢。 循環查詢可以輕松地使數據庫服務器屈服。
使用JOIN
如果您只想在行業表中包含具有值的行,則sql將是
SELECT
table_prof.profid
, table_prof.name
, table_industry.industry
FROM table_prof
JOIN table_industry USING ( profid )
ORDER BY table_prof.name ASC;
如果要包括表table_prof中的所有值,則sql將是
SELECT
table_prof.profid
, table_prof.name
, table_industry.industry
FROM table_prof
LEFT JOIN table_industry USING ( profid )
ORDER BY table_prof.name ASC;
我認為這將幫助您...
為了遵循您的邏輯,我將選擇所有信息,將其加載到哈希中並在哈希中進行迭代,而不是殺死數據庫。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.