柏感情 發問時間: 電腦與網際網路程式設計 · 1 0 年前

PHP資料顯示??

各位大大:

我寫了一個查詢的網頁,資料庫是MySQL,現在可以顯示,但是資料表裡的有一欄資料[pest_id]使用編號,就是防治對象<?=$row[3]?>這邊的顯示, 

該怎麼在顯示時讓他去對應另一個資料表[pest]裡的[pest_id]和[pest_name]呢?對應成中文顯示呢

$sql = "SELECT `prevention_date` , `prevention_method` , quantity , pest_id , pesticides_id FROM `prevention_pest` WHERE 1 AND `work_id` = '$work' ORDER BY `prevention_date` ASC ";

$result = mysql_query($sql) or die("invalid query");

while($row=mysql_fetch_row($result)){

?>

<tr>

<td nowrap><?=$row[0]?></td>

<td nowrap>病蟲害防治</td>

<td nowrap>防治對象:<?=$$row[3]?> 防治方法:<?=$row[1]?> 農藥名稱:<?=$row[4]?> 施肥量:<?=$row[2]?></td>

</tr>

<?

}

mysql_free_result($result);

?>

已更新項目:

說走就走大大:

你的方式可以耶!成功了~~謝謝,

我可以多問一個問題嗎?因為我的農藥名稱:<?=$row[4]?>再另一個資料表,也就是第三個資料表[pesticides]裡,

我用了下列的語法確不行,那邊出錯呢?

SELECT * FROM prevention_pest INNER JOIN pest , pesticides USING(pest_id , pesticides_id) WHERE 1 AND `work_id` = '$work' ORDER BY `prevention_date` ASC

麻煩大大了!!

1 個解答

評分
  • 1 0 年前
    最佳解答

    關聯式資料表你可以利用INNER JOIN的方式去做關聯

    SQL語法為

    SELECT * FROM prevention_pest INNER JOIN pest USING(pest_id) WHERE 1 AND `work_id` = '$work' ORDER BY `prevention_date` ASC

    你再利用print_r去看看$row應該會出現你要的答案

    2007-05-26 17:42:21 補充:

    喔喔!你要去加強SQL語法喔!上google找SQL語法教學會有一堆教SQL的喔!畢竟JOIN好像很多老師都不會教到^^

    語法如下

    SELECT * FROM prevention_pest AS t1 INNER JOIN pest AS t2 ON(t2.pest_id = t1.pest_id) INNER JOIN pesticides AS t3 ON(t3.pesticides_id = t1.pesticides_id) WHERE 1 AND `work_id` = '$work' ORDER BY `prevention_date` ASC

還有問題?馬上發問,尋求解答。