|
|
|
PHP ดึงข้อมูล จาก sql server 2008 แล้ว error ครับ ช่วยดูให้หน่อยผิดตรงไหน |
|
|
|
|
|
|
|
เนื่องจากผม มี การ join 3 table ซึ่งคำสั่งที่ใช้ใน sql ปรากฏว่าสามารถแสดงผลมาได้ครับ มีดังนี้
Code (SQL)
SELECT * FROM CSPRODUCT
JOIN CSPDMAINGROUP ON CSPRODUCT.MAINGROUP=CSPDMAINGROUP.CODE
JOIN CSPDSUBGROUP1 ON CSPRODUCT.SUBGROUP1=CSPDSUBGROUP1.CODE
ผมได้ใช้ php เขียนเพื่อให้แสดงผลดังนี้(ก็เอาข้อมูลที่เว็บนี้มาดัีดแปลงนิดหน่อยอะครับ)
Code (PHP)
<html>
<head>
<title>PAGE SQL2008</title>
</head>
<body>
<p> </p>
<p>
<?
$objConnect = mssql_connect(".\SQL2008","sa","12349789") or die("Error Connect to Database");
$objDB = mssql_select_db("DEMO");
$strSQL = "SELECT * FROM CSPRODUCT";
$strSQL .= " JOIN CSPDMAINGROUP ON CSPRODUCT.MAINGROUP=CSPDMAINGROUP.CODE";
$strSQL .= " JOIN CSPDSUBGROUP1 ON CSPRODUCT.SUBGROUP1=CSPDSUBGROUP1.CODE";
// CSPRODUCT.CODE,CSPRODUCT.NAMETH,CSPDMAINGROUP.MYNAMETH,CSPDSUBGROUP1.MYNAMETH,CSPRODUCT.MAINGROUP,CSPRODUCT.SUBGROUP1,CSPRODUCT.SUBGROUP2";
$objQuery = mssql_query($strSQL) or die ("Error Query [".$strSQL."]");
$Num_Rows = mssql_num_rows($objQuery);
$Per_Page = 15; // Per Page
$Page = $_GET["Page"];
if(!$_GET["Page"])
{
$Page=1;
}
$Prev_Page = $Page-1;
$Next_Page = $Page+1;
$Page_Start = (($Per_Page*$Page)-$Per_Page);
if($Num_Rows<=$Per_Page)
{
$Num_Pages =1;
}
else if(($Num_Rows % $Per_Page)==0)
{
$Num_Pages =($Num_Rows/$Per_Page) ;
}
else
{
$Num_Pages =($Num_Rows/$Per_Page)+1;
$Num_Pages = (int)$Num_Pages;
}
$Page_End = $Per_Page * $Page;
IF ($Page_End > $Num_Rows)
{
$Page_End = $Num_Rows;
}
?></p>
<h1><strong><center>TABLE CSPRODUCT</center></strong></h1>
<table width="1500" border="1" align="center">
<tr>
<th width="263" height="40"> <div align="center">CODE </div></th>
<th width="226"> <div align="center">NAMETH </div></th>
<th width="241"> <div align="center">BRAND </div></th>
<th width="168"> <div align="center">หมวดหมู่ </div></th>
<th width="164"> <div align="center">MAINGROUP</div></th>
<th width="182" align="center">SUPGROUP1</th>
<th width="210" align="center">SUBGROUP2</th>
</tr>
<?
for($i=$Page_Start;$i<$Page_End;$i++)
{
?>
<tr>
<td width="263" height="40" align="left"><div align="center"><?=mssql_result($objQuery,$i,"CSPRODUCT.CODE");?></div></td>
<td width="226" height="40" align="left"> <?=mssql_result($objQuery,$i,"CSPRODUCT.NAMETH");?></td>
<td align="center"> <?=mssql_result($objQuery,$i,"CSPDMAINGROUP.MYNAMETH");?></td>
<td align="center"><div align="center"> <?=mssql_result($objQuery,$i,"CSPDSUBGROUP1.MYNAMETH");?></div></td>
<td align="center"> <?=mssql_result($objQuery,$i,"MAINGROUP");?></td>
<td align="center"> <?=mssql_result($objQuery,$i,"SUBGROUP1");?></td>
<td align="center"> <?=mssql_result($objQuery,$i,"SUBGROUP2");?></td>
</tr>
<?
}
?>
</table>
<br>
Total <?= $Num_Rows;?> Record : <?=$Num_Pages;?> Page :
<?
if($Prev_Page)
{
echo " <a href='$_SERVER[SCRIPT_NAME]?Page=$Prev_Page'><< Back</a> ";
}
for($i=1; $i<=$Num_Pages; $i++){
if($i != $Page)
{
echo "[ <a href='$_SERVER[SCRIPT_NAME]?Page=$i'>$i</a> ]";
}
else
{
echo "<b> $i </b>";
}
}
if($Page!=$Num_Pages)
{
echo " <a href ='$_SERVER[SCRIPT_NAME]?Page=$Next_Page'>Next>></a> ";
}
mssql_close($objConnect);
?>
</body>
</html>
ทีนี้มันแสดง error ดังนี้ ผมไม่เข้าใจว่ามันผิดยังไง ช่วยิธิบายหน่อยนะครับ
รูป error ดังนี้
Tag : PHP, Ms SQL Server 2008
|
|
|
|
|
|
Date :
2014-09-07 19:20:01 |
By :
dendeenarat |
View :
827 |
Reply :
6 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
อันที่จริงถ้าใช้ * ก็น่าจะเรียกชื่อ Column ได้เลยครับ
Code (PHP)
<?=mssql_result($objQuery,$i,"CODE");?>
|
|
|
|
|
Date :
2014-09-07 21:16:21 |
By :
mr.win |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Result ที่ได้ เวลาเรียก ไม่ต้องใช้ชื่อตารางนำครับ
เรียกเฉพาะชื่อฟีลด์
<?=mssql_result($obj, $index,'fieldname');?>
|
|
|
|
|
Date :
2014-09-07 22:18:41 |
By :
Chaidhanan |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ตอนนี้ได้แล้วครับ ทำตามคำแนะนำทุกท่านครับ
Code (PHP)
$objConnect = mssql_connect(".\SQL2008","sa","12349789") or die("Error Connect to Database");
$objDB = mssql_select_db("DEMO");
$strSQL = "SELECT CSPRODUCT.CODE AS ID,CSPRODUCT.NAMETH AS NAME,CSPDMAINGROUP.MYNAMETH as BRAND,CSPDSUBGROUP1.MYNAMETH AS TYPE_1,CSPRODUCT.MAINGROUP,CSPRODUCT.SUBGROUP1,CSPRODUCT.SUBGROUP2 ";
$strSQL .= "FROM CSPRODUCT ";
$strSQL .= "JOIN CSPDMAINGROUP ON CSPRODUCT.MAINGROUP=CSPDMAINGROUP.CODE ";
$strSQL .= "join CSPDSUBGROUP1 ON CSPRODUCT.SUBGROUP1=CSPDSUBGROUP1.CODE";
แล้ว select จาก Query อีกทีแบบนี้
Code (PHP)
<tr>
<td width="263" height="40" align="left"><div align="center"><?=mssql_result($objQuery,$i,"ID");?></div></td>
<td width="226" height="40" align="left"> <?=mssql_result($objQuery,$i,"NAME");?></td>
<td align="center"> <?=mssql_result($objQuery,$i,"BRAND");?></td>
<td align="center"><div align="center"> <?=mssql_result($objQuery,$i,"TYPE_1");?></div></td>
<td align="center"> <?=mssql_result($objQuery,$i,"MAINGROUP");?></td>
<td align="center"> <?=mssql_result($objQuery,$i,"SUBGROUP1");?></td>
<td align="center"> <?=mssql_result($objQuery,$i,"SUBGROUP2");?></td>
</tr>
|
|
|
|
|
Date :
2014-09-08 08:52:04 |
By :
dendeenarat |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
จัดไปครับ
|
|
|
|
|
Date :
2014-09-08 09:00:01 |
By :
mr.win |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 03
|