نحوه نمایش فیلدها از پایگاه و ایجاد صفحه جدید

ACTIVE

Active Member
با سلام من میخاستم بدونم چجوری می تونم به شکل زیر اطلاعاتم رو در صفحه نمایش دهم؟
قسمت هایی که با رنگ زرد های لایت شدن، از جدول پایگاه فراخوانده می شوند. اینکار به شرح زیر در یک حلقه تکرار می شوند.

db.jpg


در شکل بالا مثلا تعداد رکوردهای نمایشی در هر صفحه 20 تا باشه و اگه تعداد رکوردها در پایگاه مثلا 30 تا شد 10 تا رکورد باقی رو اتوماتیک در یک صفحه جدید نمایش بده و به همین ترتیب تا آخر
مثل همین فاروم ها و امثال اینا مثلا به صورت زیر
[22][21][20][...][3][2][1]

لطفا من رو در چگونگی فراخوانی و ایجاد صفحات به شکل بیان شده راهنمایی نمائید.
قبلا از راهنمائیهایتون کمال تشکر رو دارم. ممنون
 

bahy_my

Active Member
سلام
خوب شما قبلاً sql کار کردین ؟
کد اینه :
کد:
select * from table limit $start, $wid;
که این start و wid تغییر می کنن. حالا شما بگو با چه زبان برنامه نویسی می گین تا اگه php باشه کمکتون کنم.
 

ACTIVE

Active Member
سلام
بله من با زبان SQL (در حد متوسط) آشنا هستم.
زبان برنامه نویسی هم PHP هستش و با مدیریت پایگاه MySQL ذخیره می کنم.

ممنون
 

bahy_my

Active Member
PHP:
$setp=10;
if(isset($_GET['showl'])){
		$startl=($_GET['showl']-1)*$setp;
		}else{
		$showl='';
		$startl=0;
		}

for($k=0; $k<4; $k++){
print '<a href=?showl='.$k.'>'.$k.'</a>';
}	


		$end=$setp;
$query1="select * from table limit $startl,$end";
		  		    $res=mysql_query($query1);
$show=mysql_fetch_array($res);
$num=mysql_num_rows($res);
for($i=0; $i<$num; $i++){
print $show['fiels'];
}

که حالا شما اگه دوست داشته باشی می تونی اون متغیر setp رو به جای 10 یه چیز دیگه بذاری. یعنی اون قدر اونقدر :)دی) نشون بده.
اگه مشکلی بود بازم بگو. ( البته شاید نباشم یه مدت.. شاید !! )
 

ACTIVE

Active Member
سلام bahy_my جان عزیز از بابت راهنمائیتون ممنونم، من یه مقدار تغییراتی رو روی کدتون انجام دادم. منتها مشکلی که هست اینه که شماره هایی که ایجاد میشه برای ایجاد صفحات جدید تعدادش بیشتر از موجودیتهاست. یعنی مثلا اگه ما 11 تا رکورد داشته باشیم و Step رو هم روی مثلا 5 بذاریم قائدتا باید 3 تا Page ایجاد بشه که اولی و دومی 5 تا رکورد رو نمایش می دهند و صفحه آخری تنها یک رکورد باقی رو نمایش میده. ولی نسبت و تناسب موجود در کد صحیح نیست.

Step باید تعداد رکوردهای نمایشی رو شامل بشه و اعداد مربوط به صفحات هم باید از ترکیب Step و رکوردها نمایش داده شود.
لطفا این کد رو ببینید:

PHP:
<?php
//========================================
$Host = "localhost";
$User = "root";
$Password = "";
$DBName = "ident";
$TableName = "Feedback";

//========================================
$step=5;
if(isset($_GET['showl'])){
        $startl=($_GET['showl']-1)*$step;
        }else{
        $showl='';
        $startl=0;
        }

for($k=1; $k<$step; $k++){
        print '<a href=?showl='.$k.'>'.$k.'</a> ';
        }

//========================================
$end=$step;

//========================================
$link = mysql_connect( $Host, $User, $Password );
if (!$link){
       die( "Couldn't connect to MySQL" );
       }

mysql_select_db($DBName) or die( "Couldnt open $DBName" );

$query="SELECT * FROM Feedback ORDER BY Name ";
$query=$query. "LIMIT $startl, $end";
$result=mysql_query($query);
//$num=mysql_num_rows($result);
//print $num;

//========================================
while ($line = mysql_fetch_array($result, MYSQL_ASSOC))
{
$htmlText= "<div align=center><center>";
$htmlText=$htmlText. "<table border=1 cellpadding=0 cellspacing=0 bordercolor=#111111 width=800>";
$htmlText=$htmlText. "<tr><td><font face=Tahoma style=font-size: 9pt>";
$htmlText=$htmlText. "<p style=margin-top: 5; margin-bottom: 5>website:<a href=".$line['web'].">".$line['web']."</a></p>";
$htmlText=$htmlText. "<p style=margin-top: 5; margin-bottom: 5>Email:".$line['email']."</p>";
$htmlText=$htmlText. "<p style=margin-top: 5; margin-bottom: 5>Name:".$line['Name']." ".$line['Family']."</p>";
$htmlText=$htmlText. "<p style=margin-top: 5; margin-bottom: 5>Telephone:".$line['Telephone']."</font></td>";
$htmlText=$htmlText. "</tr></table></center></div>";
print $htmlText;
}

//========================================
mysql_free_result($result);
mysql_close($link);

?>

منتظر راهنمائیهاتونم. ممنون
 

bahy_my

Active Member
سلام
فکر می کنم شما حرفی که می زنین مربوط به $k باشه. (البته اینجور که متوجه شدم)
خوب شما setp تا setp تا از جدولت بخون و تا زمانی که mysql_num_rows درخواستت مخالف صفر هستش, به متغیر (مثلاً) $count=0 یکی اضافه کنه (راهنمای :: شما خودت استادی اما پیشنهاد می کنم از while...do استفاده کنی).
و بعد به جای $k -> $count رو قرار بده. این الگوریتمش بود (جدداً !!)
اگه نتونستی بنویسی (که می تونی) بگو تا کدشو بدم.
 
آخرین ویرایش:

ACTIVE

Active Member
ما بوق هم نیستیم،...

دستت درد نکنه. ولی فکر نکنم در این حالت جواب بده چون به هر حال Step ما یک مقدار ثابته من اولش اومدم $num رو به مقدار Step نسبت دادم اما باز هم جواب نداد. خب اگه ممکنه کد بالایی که من نوشتم رو بهینه بکنین ممنونتون میشم.

البته تا اینجاش هم خیلی کمکم کردین ممنونتم.
 

bahy_my

Active Member
ما بوق هم نیستیم،...
.....

دستت درد نکنه. ولی فکر نکنم در این حالت جواب بده چون به هر حال Step ما یک مقدار ثابته من اولش اومدم $num رو به مقدار Step نسبت دادم اما باز هم جواب نداد. خب اگه ممکنه کد بالایی که من نوشتم رو بهینه بکنین ممنونتون میشم.

البته تا اینجاش هم خیلی کمکم کردین ممنونتم.
خواهش می کنم.
اگه منظورتون همین باشه :
فکر می کنم شما حرفی که می زنین مربوط به $k باشه.
چرا کار می کنه. چون خودم الان دارم باهاش کار می کنم. خداحافظ
 

ACTIVE

Active Member
سلام مجدد، خب من نتونستم ایرادش رو برطرف کنم اگه ممکنه کدی رو که شما اصلاح کردین رو اینجا قرار بدین

ممنون از لطفتون
 

bahy_my

Active Member
PHP:
				  $sept=10; $count=0;
				  do{
				  $sept2=$sept-10;
				  	$qw_1=mysql_query("select * from table where id=$id limit $sept2, 10");
					$sept=2*$sept;
					$nums=mysql_num_rows($qw_1);
					if($nums!=0){
					$count=$count+1;
					}
				  }while($nums!=0);

بعد حلقه رو با $count بشمارین.
 

جدیدترین ارسال ها

بالا