|
|
|
ติดปัญหาเรือง การแบ่งหน้า โดยใช่ Ms SQL Server ครับ |
|
|
|
|
|
|
|
คือserver ของผมไม่สามารถ Run คำสั่ง mssql ได้ครับ ผมก็เลย เอามาลองทำ odbc ดู ปรากฏว่าไปติดปัญหา ตอนแสดงมันแสดงข้อมูลซ้ำกันอยู่Rowเดียวกันอ่ะครับ
อ้างอิงจาก:https://www.thaicreate.com/php/forum/031199.html
Code (PHP)
<?php
include 'connectSQL/connectSQL.php';
$year = $_POST["year"];
$month = $_POST["month"];
$strPage = $_POST["myPage"];
$queryData = "SELECT year, month, serviceName, type_desc, Expr1
FROM dbo.Service_WorkType";
if ($year != "all" && $month != "all") {
$queryData = $queryData . " WHERE (year = $year) AND (month = $month)";
} elseif ($year != "all" && $month == "all") {
$queryData = $queryData . " WHERE (year = $year)";
} elseif ($year == "all" && $month != "all") {
$queryData = $queryData . " WHERE (month = $month)";
} else {
}
$result = odbc_exec($cid, iconv('UTF-8', 'TIS-620', $queryData)) or die("Error Query [" . $queryData . "]");
;
$Num_Rows = odbc_num_rows($result);
$Per_Page = 10; // Per Page
$Page = $strPage;
if (!$strPage) {
$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;
}
?>
<table border="1">
<tr>
<td>Year</td>
<td>Month</td>
<td>Service Name</td>
<td>Type Desciption</td>
<td>Expr1 </td>
</tr>
<?php
for ($i = $Page_Start; $i < $Page_End; $i++) {
echo "<tr>";
echo "<td>" . odbc_result($result, 'year') . "</td>";
echo "<td>" . odbc_result($result,'month') . "</td>";
echo "<td>Service" . iconv('TIS-620', 'UTF-8', odbc_result($result, 'serviceName')) . " </td>";
echo "<td>" . iconv('TIS-620', 'UTF-8', odbc_result($result, 'type_desc')) . "</td>";
echo "<td>" . odbc_result($result, 'Expr1') . "</td>";
echo "</tr>";
}
?>
</table>
<br>
Total <?php echo $Num_Rows; ?> Record : <?php echo $Num_Pages; ?> Page :
<?php
if ($Prev_Page) {
echo " <a href=\"JavaScript:Ajax('$Prev_Page')\"><< Back</a> ";
}
for ($i = 1; $i <= $Num_Pages; $i++) {
if ($i != $Page) {
echo "[ <a href=\"JavaScript:Ajax('$i')\">$i</a> ]";
} else {
echo "<b> $i </b>";
}
}
if ($Page != $Num_Pages) {
echo " <a href=\"JavaScript:Ajax('$Next_Page')\">Next >></a> ";
}
require_once 'connectSQL/disconnectSQL.php';
?>
Tag : PHP, Ms SQL Server 2005, Ajax
|
|
|
|
|
|
Date :
2011-01-27 11:11:07 |
By :
mamanax |
View :
1437 |
Reply :
7 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
หรือจะลองใช้ PHP + ADO ก้ได้ครับ
Code (PHP)
<html>
<head>
<title>ThaiCreate.Com PHP & COM (ADO)</title>
</head>
<body>
<?php
$strConn = new COM("ADODB.Connection") or die("Cannot start ADO");
$strConn->Open("DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" . realpath("mydatabase.mdb"));
$strSQL = "SELECT * FROM customer ";
$objRec = new COM("ADODB.Recordset");
$objRec->Open($strSQL, $strConn, 1,3);
if($objRec->EOF)
{
echo "Not found Record.";
}
else
{
$PageLen = 2;
$PageNo = $_GET["Page"];
if(!$PageNo)
{
$PageNo = 1;
}
$TotalRecord = $objRec->RecordCount();
$objRec->PageSize = $PageLen;
$TotalPage = $objRec->PageCount();
$objRec->AbsolutePage = $PageNo;
?>
<table width="600" border="1">
<tr>
<th width="91"> <div align="center">CustomerID </div></th>
<th width="98"> <div align="center">Name </div></th>
<th width="198"> <div align="center">Email </div></th>
<th width="97"> <div align="center">CountryCode </div></th>
<th width="59"> <div align="center">Budget </div></th>
<th width="71"> <div align="center">Used </div></th>
</tr>
<?
While (!($objRec->EOF) and $No < $PageLen)
{
?>
<tr>
<td><div align="center"><?=$objRec->Fields["CustomerID"]->Value;?></div></td>
<td><?=$objRec->Fields["Name"]->Value;?></td>
<td><?=$objRec->Fields["Email"]->Value;?></td>
<td><div align="center"><?=$objRec->Fields["CountryCode"]->Value;?></div></td>
<td align="right"><?=$objRec->Fields["Budget"]->Value;?></td>
<td align="right"><?=$objRec->Fields["Used"]->Value;?></td>
</tr>
<?
$No = $No + 1;
$objRec->MoveNext();
}
?>
</table>
<?
}
$objRec->Close();
$strConn->Close();
$strConn = null;
?>
Total : <?=$TotalRecord?> Page <?=$PageNo?> All Page <?=$TotalPage?>
<? if($PageNo > 1){ ?>
<a href="<?=$_SERVER[SCRIPT_NAME];?>?Page=1"><< First</a>
<a href="<?=$_SERVER[SCRIPT_NAME];?>?Page=<?=$PageNo-1?>">< Back</a>
<? }?>
<? if($PageNo < $TotalPage) { ?>
<a href="<?=$_SERVER[SCRIPT_NAME];?>?Page=<?=$PageNo+1?>">Next ></a>
<a href="<?=$_SERVER[SCRIPT_NAME];?>?Page=<?=$TotalPage?>">Last >></a>
<?}?>
<br>
Go to
<? for($intID=1;$intID<=$TotalPage;$intID++){?>
<? if($intID == $PageNo){?>
<b><?=$intID?></b>
<?}else{?>
<a href="<?=$_SERVER[SCRIPT_NAME];?>?Page=<?=$intID?>"><?=$intID?></a>
<?}?>
<?}?>
</body>
</html>
Go to : PHP ADO List Record Paging/Pagination
|
|
|
|
|
Date :
2011-01-27 11:44:20 |
By :
webmaster |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ถ้าผมไม่ใช่ADODB ตรง odbc_result($result, 'year')
จะใช้คำสั่งอะไรแทนได้ครับ
ขอบคุณครับ
|
ประวัติการแก้ไข 2011-01-28 07:44:46
|
|
|
|
Date :
2011-01-27 13:14:47 |
By :
mamanax |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ขออนุญาติอีกนิดน่ะครับ คือใช่ odbc ไม่ใช่ mssql อ่ะครับ
|
|
|
|
|
Date :
2011-02-01 13:04:26 |
By :
mamanax |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Code (PHP)
<td><?=odbc_result($objQuery,$i,"Name");?></td>
ใช้ไม่ได้อ่ะครับ
|
|
|
|
|
Date :
2011-02-11 14:58:41 |
By :
mamanax |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ขอสอบถามต่อครับ ถ้าใช้ <?=mssql_result($objQuery,$i,"Name");?> ตามตัวอย่าง แต่ค่าที่จะแสดงเป็นตัวเลข แต่ผมอยากใส่เครื่องหมาย , (comma) คั่นน่ะครับ เข้าใจว่าใช้ number_format แต่ไม่ทราบว่า จะเอาไปวางไว้ส่วนไหนของโค้ดครับ รบกวนด้วยนะครับ...ป๋อง
|
|
|
|
|
Date :
2011-10-06 10:20:44 |
By :
ป๋อง |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 01
|