سلام
من میخوام در بانکم که هر 10 ردیفی رو که به نمایش میزاره 10 تای بعد رو با یک فاصله ادامه بده
:10:
Printable View
سلام
من میخوام در بانکم که هر 10 ردیفی رو که به نمایش میزاره 10 تای بعد رو با یک فاصله ادامه بده
:10:
شاید این کمک کنه (تست نشده) :
[PHP]<?php
mysql_connect("localhost", "mysql_user", "mysql_password") or
die("Could not connect: " . mysql_error());
mysql_select_db("mydb");
$result = mysql_query("SELECT felan FROM table");
$number = 1;
while ($row = mysql_fetch_array($result, MYSQL_NUM)) {
print $row[0];
if ($number == 10){
// OON FASELE RO KHODET BENEVIS. MAN NEMIDOONAM DAGHIGHAN CHI MIKHAY.
$number = 1;
}
}
mysql_free_result($result);
?>[/PHP]
باشه من تست میکنم
الان که نمیوتنم فردا تست میکنم لوکال سیستمم قاطی کرده
تشکر//
سلام
من من میخوام هر موقع تعداد جدول از 10 تا بیشتر شد یه عمل انجام بشه یعنی مثلا 10 تا جدول شد تو صفحه یه متن بیاد مثل : salam بعد وفتی 10 تا دیگه شد یه salam دیگه کنارش بیاد همینطور ادامه داشته باشه و لینک آنها هم این آدرس باشه 1 ( فقط عدد یک لینک اونا باشه ) که هر دفع لا اضتفه شدن یکی دیگه این لینک + 1 بشه یعنی برای بار دوم میشه 2 و بار سوم میشه 3
تشکر//
کسی نبود جواب بده؟ !!
پس کجا یییییین
تشکر//
جون تو نتوستم درکش کنم
یعنی چی جدول بشه 10 تا؟
منظورت یه چیزی تو مایه های همون صفحه بندی نیست که حدوداً 1 ماه پیش مطرح شده بود؟
آره واسه صفحه بندی میخوام
ولی نمیخواد بهم بگی چیکار کنم فقط کد این تیکه رو بده صفحه بندی رو خودم انجام میدم :دی
یعنی معادل هر 10 تا ستون در بانک یک عمل انجام بده حالا هرچی مثلا یه عدد بزاره
تشکر//
من اینجوری گفتم که بری چند صفحه آخر انجمن رو بخونی.
ولی حالا 1 نگاه به این بنداز:
[PHP]<?php
list($count) = mysql_fetch_row(mysql_query("SELECT COUNT(name) FROM table"));
$pages = intval($count/10)+1;
if ($pages == 1){
return "";
}
if (isset($_REQUEST["page"]) && !empty($_REQUEST["page"])){
$thisPage = intval($_REQUEST["page"]);
}else{
$thisPage = 1;
}
if ($thisPage > 1){
$pageText .= "<a href=\"?page=" . ($thisPage-1) . "\">قبلي</a> ";
}
for ($i=1;$i<=$pages;$i++){
if ($i != $thisPage){
$pageText .= "<a href=\"?page=" . $i . "\">" . $i . "</a> ";
}else{
$pageText .= $i . " ";
}
}
if ($thisPage < $pages){
$pageText .= "<a href=\"?page=" . ($thisPage+1) . "\">بعدي</a> ";
}
print $pageText;
?>[/PHP]
دستت درد نکنه این رو با یه روش دیگه قاطی کردم یه صفحه بندی خوب در اومد
تشکر//
خواهش می کنم
قابل بچه های با مرامی چون شما رو نداره!
صفحه بندي كد بالا درست حالا ما چجوري اطلاعات رو از db بگيريم. يعني در هر صفحه مثلا 10 سطر جدول را بخواند و با كليك بهnext برود در صفحه مثلا page=2 ده رديف بعدي ديتابيس را بخواند .؟
خواهشا كمكم كنيد كارم گيره
قبلاً 3 - 4 بار بحث شده
اول جستجو کنید
من خيلي دنبال كد تو همين فروم گشتم يه چيزايي از خود شما هم پيدا كردم ولي اصلا جور در نميومد. مخم ديگه سوت كشيد.
كدي كه نوشتم رو مي ذارم فقط بلدم يك سطر رو تو هر صفحه بخونم.
اگه مي شه لطف كنين كمكم كنين تا بتونم در هر صفحه 10 سطر از ديتابيس رو بخونم.
هر كاري كردم نشد.
كد:
[PHP]
<?php
$archiveQuery = mysql_query("SELECT * FROM ".TABLE_COMPANY_NEWS." order by ID desc")
or die("<div id='top_warning'><span><img src='images/warning.gif'/><b> ".$warning.": </b></span>".$query_failed_warning."<br/>".mysql_error()."</div>");
list($count) = mysql_fetch_row($archiveQuery);
$pages = intval($count/1)-1; //musb be 10
if ($pages == 1){
return "";
}
if (isset($_REQUEST["page"]) && !empty($_REQUEST["page"])){
$thisPage = intval($_REQUEST["page"]);
}else{
$thisPage = 1;
}
if ($thisPage > 1){
$PagerLinks .= "<a href=\"?lng=".$lan."&pid=".$page."&page=1\"> « اولين </a> <a href=\"?lng=".$lan."&pid=".$page."&page=" . ($thisPage-1) . "\">< قبلي </a>";
}
for ($i=1;$i<=$pages;$i++){
if ($i != $thisPage){
$PagerLinks .= "<a href=\"?lng=".$lan."&pid=".$page."&page=" . $i . "\">" . $i . "</a> | ";
}else{
$PagerLinks .="<b>". $i . "</b> | ";
}
}
if ($thisPage < $pages){
$PagerLinks .= " <a href=\"?lng=".$lan."&pid=".$page."&page=" . ($thisPage+1) . "\"> بعدي ></a> <a href=\"?lng=".$lan."&pid=".$page."&page=". ($i-1) ."\"> آخرين »</a>";
}
$archiveQuery = "SELECT * FROM ".TABLE_COMPANY_NEWS." ORDER BY ID desc LIMIT ".($subpage).",".(($subpage)+1);
if($oResult = mysql_query($archiveQuery) and mysql_num_rows($oResult) > 0) {
$aValues = mysql_fetch_array($oResult,MYSQL_ASSOC);
echo "<div id=\"Arch_content\">";
echo "<b>".$aValues['Title']."</b><br/>";
echo $aValues['content']."<br/><br/>";
echo $lastsend.$aValues['NewsDate'];
echo "</div><br/>";
}
echo "<div align=\"center\" id=\"pager\">";
echo $PagerLinks;
echo "</div>";
mysql_free_result($result);
?>
[/PHP]
مشکل تو این خطه:
[PHP]list($count) = mysql_fetch_row($archiveQuery); [/PHP]
باید از mysql_fetch_array استفاده کنی
کدی که نوشتی خیلی شلوغه من که حوصلم نمیزاره همشو بخونم
اینجا یه کد ساده رو برای این کار نوشتم
میتونی خیلی راحت تغییرش بدی تا با اونی که میخوای جور در بیاد:
[php]
<?php
// تعدادر سطرهایی که برای هر صفحه باید از دیتابیس استخراج شود
$row_per_page = 10;
// پیدا کردن اولین سطری که باید از دیتابیس استخراج شود
$page = ((int)$_REQUEST['page']) * $row_per_page;
// به دست آوردن تعداد کل سطرهای موجود در دیتابیس
$sql_cont = mysql_query("SELECT COUNT(*) FROM ".TABLE_COMPANY_NEWS.";") or die(mysql_error());
list($count) = mysql_fetch_row($sql_cont);
mysql_free_result($sql_cont);
// ننمایش لینک به صفحات بعدی و قبلی
for ($i=0; $i<$count; $i+=$row_per_page) {
echo "<a href='?page=$i'>Page $i</a>\n";
}
// گرفتن سطرهای قابل نمایش در صفحه از دیتابیس و نمایش آنها در صفحه
$sql = mysql_query("SELECT * FROM ".TABLE_COMPANY_NEWS." LIMIT $row_per_page OFFSET $page;") or die(mysql_error());
while($row = mysql_fetch_assoc($sql) {
.......
مد مربوط به نمایش هر سطر در صفحه
.......
}
mysql_free_result($sql);
?>
[/php]
از neopersia جان تشكر مي كنم، واقعا كد به دردم خورد ولي چند تا ايراد جزئي داشت كه اصلاحشون كردم. گفتم شايد به درد دوستان بخوره:
[PHP]
<?php
// تعدادر سطرهایی که برای هر صفحه باید از دیتابیس استخراج شود
$row_per_page = 10;
// پیدا کردن اولین سطری که باید از دیتابیس استخراج شود
$subpage = ((int)$_REQUEST['page']);
// به دست آوردن تعداد کل سطرهای موجود در دیتابیس
$sql_cont = mysql_query("SELECT COUNT(*) FROM ".TABLE_COMPANY_NEWS.";") or die(mysql_error());
list($count) = mysql_fetch_row($sql_cont);
mysql_free_result($sql_cont);
// گرفتن سطرهای قابل نمایش در صفحه از دیتابیس و نمایش آنها در صفحه
$sql = mysql_query("SELECT *,LEFT(content,300) as shortContent FROM ".TABLE_COMPANY_NEWS." order by ID desc LIMIT $row_per_page OFFSET $subpage;") or die(mysql_error());
while($row = mysql_fetch_assoc($sql)) {
echo "<div id=\"Arch_content\">";
echo "<a href=\"?lng=".$language."&pid=conews&sid=".$row['ID']."\"><b>".$row['Title']."</b></a><br/>";
echo $row['shortContent']."...<br/>";
echo "<a href=\"?lng=".$language."&pid=conews&sid=".$row['ID']."\">".$moreConews."</a><br/><br/>";
echo $lastsend.$row['NewsDate'];
echo "</div><br/>";
}
// ننمایش لینک به صفحات بعدی و قبلی
for ($i=0; $i<$count; $i+=$row_per_page) {
echo "<a href='?lng=".$language."&pid=".$page."&sid=".$subi d."&ajax=".$ajax."&page=$i'>Page $i</a>\n";
}
mysql_free_result($sql);
?>
[/PHP]
تشکر از دوست گرامیneopersia به خاطر جواب های بی عیب نقسشون