กรณีศึกษา ปัญหาจากฐานข้อมูลแล้ว ต้องการนำข้อมูล จาก table หนึ่งมา link กับอีก table ข้อมูลคล้ายกัน
ได้ออกแบบฐานข้อมูล ดังนี้
-- โครงสร้างตาราง `daily_worker`
CREATE TABLE `daily_worker` (
`project_id` int(4) NOT NULL default '0',
`daily_date` date NOT NULL default '0000-00-00',
`worker_id` tinyint(3) NOT NULL default '0',
`amount` int(3) NOT NULL default '0',
PRIMARY KEY (`project_id`,`daily_date`,`worker_id`)
) TYPE=MyISAM COMMENT='ข้อมูลรายละเอียดแรงงานของรายงานประจำวัน';
-- โครงสร้างตาราง `worker`
CREATE TABLE `worker` (
`worker_id` tinyint(3) NOT NULL default '0',
`worker_name` varchar(100) NOT NULL default '',
PRIMARY KEY (`worker_id`)
) TYPE=MyISAM COMMENT='ข้อมูลแรงงาน';
ซึ่งผมจะทำให้แสดงผลโดยใช้โค้ด จากตัวอย่างในเว็บคือ การค้นหาข้อมูล
**อยากให้แสดงชื่อของแรงงานออกมา โดยถ้า worker_id ในตาราง daily_worker ตรงกับ worker_id ในตาราง worker ให้แสดงชื่อของแรงงานจะอยู่ใน ไน worker_name ซึ่งอยู่ใน ตาราง
worker ออกมาพร้อม กันด้วยครับ ผมยังไม่ได้เชื่อมต่อ ต้องทำอย่างไรให้แสดงออกมาได้ครับ
ช่วยแก้โค้ดเพิ่มเติมให้หน่อยครับ ***เพื่อเป็นประสบการณ์ต่อไปครับ ขอบพระคุณมากครับ
*** ขอสนับสนุนเว็บนี้ครับ มีประโยชน์มากครับ***
<html>
<body bgcolor="#FFFFFF">
<form name="form1" method="post" action="workeruseredit.php">
ชื่อที่ต้องการค้นหา
<input type="text" name="keyword" value="<? echo"$keyword"; ?>">
จาก Filed
<select name="fields">
<option value="<?echo "$fields"; ?>"><?echo "$fields"; ?></option>
<option value="worker_id">worker id</option>
<option value="daily_date">daily date</option>
<option value="amount">amount</option>
</select>
<input type="submit" name="Submit" value="ค้นหา">
</form>
<hr>
<?
if (empty($keyword) or empty($fields))
{
echo"กรุณาเลือกรายการค้นหา ด้วยครับ";
exit();
}
else
{
$host="localhost";
$username="";
$password="";
$db="db";
$tb="daily_worker";
mysql_connect( $host,$username,$password) or die ("ติดต่อกับฐานข้อมูล Mysql ไม่ได้ ");
mysql_select_db($db) or die("เลือกฐานข้อมูลไม่ได้"); /* ทำการเลือกฐานข้อมูลก่อน */
$sql="SELECT * FROM $tb where $fields like '%$keyword%'";
$db_query=mysql_db_query($db,$sql);
$num_rows=mysql_num_rows($db_query); /* นับ Reccord ที่พบ */
if(empty($num_rows)) /* ตรวจสอบว่ามีอยู่หรือยัง */
{
echo"<center><br>ไม่พบข้อมูล <b>$keyword</b> จาก Filed <b>$fields <b> </center>";
exit();
}
else
{
?>
<div align="center"><? echo " แสดงรายการค้นหา <b>$keyword</b> จาก Field <b>$fields</b> พบ <b>$num_rows</b> Reccord "; ?><br><br>
</div>
<table width="91%" border="1" align="center">
<tr>
<td width="8%">
<div align="center"> worker id </div>
</td>
<td width="10%">
<div align="center"> daily_date </div>
</td>
<td width="12%"><div align="center">worker name </div></td>
<td width="12%">
<div align="center"> amount </div>
</td>
</tr>
</table>
<?
$a=0;
while($a < $num_rows)
{
$result = mysql_fetch_array($db_query);
$worker_id=$result[worker_id];
$daily_date=$result[daily_date];
$worker_name=$result[worker_name];
$amount=$result[amount];
?>
<table width="91%" border="1" align="center">
<tr>
<td width="8%">
<div align="center"><?echo"$worker_id";?></div>
</td>
<td width="10%">
<?echo"$daily_date";?>
</td>
<td width="12%"><?echo"$worker_name";?></td>
<td width="12%">
<?echo"$amount";?>
</td>
</tr>
</table>
<?
$a++;
}
}
}
?>
</body>
</html>
Tag : - - - -
Date :
24 ธ.ค. 2547 00:41:56
By :
permsak
View :
2928
Reply :
2
ใช้การ Select 2 Table ครับ
เช่น
Select Table1.ฟิวส์,Table2.ฟิวส์,.. From Table1,Table2
where Table1.ฟิวส์=Table2.ฟิวส์ and ...
สำหรับคำถามผมค่อนข้างจะสับสนนะครับ
Date :
24 ธ.ค. 2547 09:53:12
By :
@W_IN
ใช้การ Select 2 Table ครับ
เช่น
Select Table1.ฟิวส์,Table2.ฟิวส์,.. From Table1,Table2
where Table1.ฟิวส์=Table2.ฟิวส์ and ...
เลือกแล้วถ้ามันเท่ากันจะแสดงยังไงครับ ต้องกำหนดตัวแปรขึ้นมาอีกตัวเหรอคับ กรุณาตอบหน่อยครับ
ผมเขียนได้ดังนี้
$host="localhost";
$username="";
$password="";
$db="db";
$tb="daily_worker";
mysql_connect( $host,$username,$password) or die ("µÔ´µè͡Ѻ°Ò¹¢éÍÁÙÅ Mysql äÁèä´é ");
mysql_select_db($db) or die("No connect DB");
$sql="SELECT * FROM $tb , worker from daily_worker, worker where worker_id=worker_id and $fields like '%$keyword%'
เลือกแล้วถ้ามันเท่ากันจะแสดงยังไงครับ ต้องกำหนดตัวแปรขึ้นมาอีกตัวเหรอคับ กรุณาตอบหน่อยครับ
Date :
24 ธ.ค. 2547 14:52:17
By :
permsak
Load balance : Server 03