|
|
|
พอดีจะดึงข้อมูลจาก mssql มาทำข้อมูล โดยการ join table หลายๆๆ ตาราง แต่ไม่สามารถดึงข้อมูลออกมาโชว์ ต้องแก้ไขยังไงครับ |
|
|
|
|
|
|
|
Code (PHP)
<html>
<head>
<title>ThaiCreate.Com PHP & SQL Server (sqlsrv)</title>
</head>
<body>
<?php
error_reporting(~E_NOTICE);
if($_GET["Action"] == "Save")
{
// Statement
}
?>
<?php
ini_set('display_errors', 1);
error_reporting(~0);
$serverName = "";
$userName = "";
$userPassword = "";
$dbName = "";
$connectionInfo = array("Database"=>$dbName, "UID"=>$userName, "PWD"=>$userPassword, "MultipleActiveResultSets"=>true ,"CharacterSet" => "UTF-8",);
$conn = sqlsrv_connect( $serverName, $connectionInfo);
if( $conn === false ) {
die( print_r( sqlsrv_errors(), true));
}
$stmt = "SELECT *
FROM dbo.emGoods AS Goods
FULL JOIN
dbo.icGoodsLot AS Lot
ON Goods.OID = Lot.Goods";
$query = sqlsrv_query($conn, $stmt);
?>
<table width="600" border="1">
<tr>
<th width="91"> <div align="center">OID </div></th>
<th width="98"> <div align="center">Code </div></th>
<th width="98"> <div align="center">Name </div></th>
<th width="98"> <div align="center">Name2 </div></th>
<th width="98"> <div align="center">lotno </div></th>
</tr>
<?php
while($result = sqlsrv_fetch_array($query, SQLSRV_FETCH_ASSOC))
{
?>
<tr>
<td><div align="center"><?php echo $result["Goods.OID"];?></div></td>
<td><?php echo $result['Goods.Name'];?></td>
<td><?php echo $result["Goods.Name2"];?></td>
<td><?php echo $result["Lot.LotNo"];?></td>
<td><?php echo $result["LotExpDate"];?></td>
</tr>
<?php
}
?>
</table>
<?php
sqlsrv_close($conn);
?>
</body>
</html>
Tag : PHP, Ms SQL Server 2016
|
ประวัติการแก้ไข 2020-03-18 14:06:42 2020-03-18 14:13:35
|
|
|
|
|
Date :
2020-03-18 14:05:20 |
By :
EIKQ7719 |
View :
641 |
Reply :
8 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
$result["Goods.OID"]
แก้เป็น
$result["OID"]
ปล. ใน result จากการคิวรี่ จะมาเฉพาะชื่อฟีลด์เท่านั้น ไม่มีชื่อตารางมาด้วย
|
ประวัติการแก้ไข 2020-03-18 14:22:28 2020-03-18 14:24:06
|
|
|
|
Date :
2020-03-18 14:19:59 |
By :
Chaidhanan |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
คือผมมีปัญหาตรงที่ว่า ชื่อใน table ที่จะดึงออกมาใช้มันซ้ำกันครับ
EX
t1 name1 , name2 join t2 name1,name2 join t3 name1,name2
ต้องใช้วิธีเขียนแบบไหนครับ
|
|
|
|
|
Date :
2020-03-18 14:29:00 |
By :
EIKQ7719 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Join ใน ลักษณะนี้รึเปล่า
Code (PHP)
SELECT emp_name, dept_name FROM Employee e JOIN Register r ON e.emp_id=r.emp_id JOIN Department d ON r.dept_id=d.dept_id;
[employee]id =[register]id
for
[register]depart_id = [depart]id
|
ประวัติการแก้ไข 2020-03-18 14:53:37
|
|
|
|
Date :
2020-03-18 14:48:30 |
By :
Genesis™ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Code (PHP)
SELECT *
FROM emGoods g
JOIN
icGoodsLot l
ON g.OID = l.Goods";
ผมงงตรงที่ผม เซ็ตตัวแปรแทน table แต่ไม่สามารถดึงข้อมูลออกมาได้ครับ เป็นเพราะอะไร
|
|
|
|
|
Date :
2020-03-18 14:59:43 |
By :
EIKQ7719 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ผมไม่ถนัดนะ แต่ลองตามนี้ ไม่รู้ได้เปล่า
Code (PHP)
$SQL=" SELECT * FROM emGoods AS em
INNER JOIN icGoodsLot AS ic
ON (em.OID = ic.Goods)
";
|
|
|
|
|
Date :
2020-03-18 15:55:46 |
By :
Genesis™ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
กรรม ไม่อ่านเลยเหรอ และได้ลองตามที่ผมบอกหรือเปล่า
index g.id มันไม่เจอ ยังจะมาอ้าง table อะไรอีก มันไม่ได้เกี่ยวกับชื่อ ตาราง เพราะคิวรี่ได้ result ออกมาแล้ว
แค่เรียกใช้ index ไม่ถูกต้อง ตัวอย่าง วิธีแก้ก็บอกไปแล้ว ยังงงอะไรอีก
บน php result array ให้ใช้แค่ ชื่อ field เท่านั้น ไม่ต้องอ้างชื่อ ตาราง
ปล. อีกทีในกรณีที่ มีชื่อ field ซ้ำกัน ให้ใช้ Alias เข้ามาช่วย
select tb1.name , tb2.name as name2
|
ประวัติการแก้ไข 2020-03-18 16:47:37 2020-03-18 16:49:25 2020-03-18 16:50:46
|
|
|
|
Date :
2020-03-18 16:46:15 |
By :
Chaidhanan |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
อ่อ ขอโทดด้วยนะครับ ที่ไม่ได้ตอบ ผลที่ได้ มันสามารถดึงข้อมูล ออกมาได้ครับ
**** แต่ผมติดปัญหา ที่ผมต้อง join ข้อมูลหลาย table แล้วชื่อฟิลมันซ้ำกันกันครับ
ก็แบบที่ผมยกตัวอย่างไป ถ้าผมอธิบายไมาถูก ก็ต้องขออภัยไว้ตรงนี้ครับ
|
|
|
|
|
Date :
2020-03-18 16:51:05 |
By :
EIKQ7719 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 03
|