| مشكور يابو عامر
بصراحة الدرسين استفدت منها كثير واحسن ما اعجبني سهولة الشرح
الله يوفقك لكن فيه نقطة راح اناقشك معاها على تطوير الكود ...
اولاً : عندما يضغط المستخدم (التالي) أو رقم الصفحة اللي الاحظه انه تظهر قيمة أول عدد للسجل في عنوان المتصفح وهي المتغير count وهذي ثغرة بسيطة .. لماذا لا تجعل المتغير مرقم تسلسلي ؟
يعني بدل 10،20،30،40،50 تخليها ترقيم عادي يعني رقم الصفحة 1 أو 2 أو 3
لأن الأرقام كذا بتكشف تسلسل أرقام القاعدة أو السجلات
طبعاً الوضع مو سهل لكن مو صعب حلها ...
ثانياً : النقطة التي تطرق إليها الأخ (المهمة9) ...
وهي لو تم وضع رقم يدوياً في عنوان المتصفح أنا جربت كودك وبذلك لن يتم إخراج أية نتائج ...
لكن طريقة وضع الرسالة هنا المشكلة بعد التعديل على النقطة الأولى
حيث افرض انه لو كانت لديك 53 سجل وعدد السجلات في كل صفحة 10 فكيف ستتم القسمة؟؟
ستقول لي لماذا القسمة سأقول لك لكي يتم إدراج العدد في الشرط الذي سيخرج الخطأ إذا كيف ستعرف عدد الصفحات عند كل قاعدة سيستخدمها أي شخص ؟
الجواب أيضاً سهل وذلك باستخدام الدالة ceil إذا سيتم تقريب العدد العشري إلى أكبر وأقرب عدد صحيح ..
على كل أنا طولت عليك لكن بغيت أخذ كودك من جميع النواحي وأرد على الأسئلة عنك ...
الكود تبعك انا جربته أو بالأحرى جربت الإثنين وكلها اشتغلت زي اللوز وما فيها أي مشكلة
لكن بعد النقطتين اللي ذكرتها صار لازم تعديل ...
خذ الكود مع انه ( مخربص )
لأن ما كان عندي وقت ...
وآسف على الإطالة والسلام عليكم ... كود PHP:
<html dir=rtl>
<head>
<title>عرض النتائج</title>
</head>
<body>
<?php
$connection = Mysql_connect('127.0.0.1' ,'root' ,'');
Mysql_select_db('test2', $connection);
$results = 10;
$limit = $HTTP_GET_VARS['page'];
if (!$limit) {
$limit = 0;
} else {
$limit = $limit*$results;
$limit = $limit-$results;
}
$resultsno = Mysql_num_rows(mysql_query("SELECT id FROM names"));
$sql = Mysql_query("SELECT * FROM names ORDER BY id LIMIT $limit,$results") or die("خطأ في الاستعلام");
$error_msg = $resultsno/$results;
$error_msg = ceil($error_msg);
if ($HTTP_GET_VARS['page']>$error_msg) {
print "<center><h2>عفواً الصفحة المطلوبة غير موجودة!!</h2></center>";
} else {
print "<center><h2>عدد السجلات في قاعدة البيانات : $resultsno </h2></center>";
?>
<table border="1" width="100%">
<tr>
<td width="14%" align="center">الرقم</td>
<td width="43%" align="center">الاسم</td>
<td width="43%" align="center">البريد الإلكتروني</td>
</tr>
<?
while ($rows = Mysql_fetch_row($sql)) {
echo "
<tr>
<td width='14%' align=center>$rows[0]</td>
<td width='43%' align=center>$rows[1]</td>
<td width='43%' align=center>$rows[2]</td>
</tr>";
}
echo "</table>";
$page = $HTTP_GET_VARS['page'];
$back= $page-1;
if ($back<1){
echo"السابق || ";
}else{
echo "<a href='$PHP_SELF?page=$back'>السابق</a>|| ";
}
$numbers = $page*$results;
if (!$page or $page=0) {
$nextto = $page+2;
} else {
$nextto=$HTTP_GET_VARS['page']+1;
}
if ($numbers>=$resultsno){
echo"التالي";
} else {
echo"<a href='$PHP_SELF?page=$nextto'>التالي</a>";
}
} هههههه عارف الكود حوسة بس عساك تفهم علي والله يعينك على قرايته ..
طبعاً بالنسبة لقاعدة البيانات راح اوفر عليكم هذي قاعدة بيانات بسجلاتها على عجل ... كود: CREATE TABLE `names` (
`id` int(11) NOT NULL auto_increment,
`name` varchar(250) default NULL,
`email` varchar(250) default NULL,
PRIMARY KEY (`id`)
) TYPE=MyISAM;
#
# Dumping data for table 'names'
#
INSERT INTO names VALUES (1,'mohammed','alkha6ar@msn.com');
INSERT INTO names VALUES (2,'zhswg','zhswg@hotmail.com');
INSERT INTO names VALUES (3,'zvq','zvq@hotmail.com');
INSERT INTO names VALUES (4,'gufhzfq','gufhzfq@hotmail.com');
INSERT INTO names VALUES (5,'dxceyo','dxceyo@hotmail.com');
INSERT INTO names VALUES (6,'tbjbbqub','tbjbbqub@hotmail.com');
INSERT INTO names VALUES (7,'lbopsc','lbopsc@hotmail.com');
INSERT INTO names VALUES (8,'segcuw','segcuw@hotmail.com');
INSERT INTO names VALUES (9,'dgijen a','dgijen a@hotmail.com');
INSERT INTO names VALUES (10,'nlo atriu','nlo atriu@hotmail.com');
INSERT INTO names VALUES (11,'jtzvdr','jtzvdr@hotmail.com');
INSERT INTO names VALUES (12,'uocqmvi','uocqmvi@hotmail.com');
INSERT INTO names VALUES (13,'vhd','vhd@hotmail.com');
INSERT INTO names VALUES (14,'cyxsxzy a','cyxsxzy a@hotmail.com');
INSERT INTO names VALUES (15,'qtmuuizv','qtmuuizv@hotmail.com');
INSERT INTO names VALUES (16,'ldcpmnm','ldcpmnm@hotmail.com');
INSERT INTO names VALUES (17,'lpsvjb','lpsvjb@hotmail.com');
INSERT INTO names VALUES (18,'zlspoy','zlspoy@hotmail.com');
INSERT INTO names VALUES (19,'d anjin','d anjin@hotmail.com');
INSERT INTO names VALUES (20,'gzhqvwb','gzhqvwb@hotmail.com');
INSERT INTO names VALUES (21,'sveumor','sveumor@hotmail.com');
INSERT INTO names VALUES (22,'d aqxl','d aqxl@hotmail.com');
INSERT INTO names VALUES (23,'gkfepxl','gkfepxl@hotmail.com');
INSERT INTO names VALUES (24,'neggyifj','neggyifj@hotmail.com');
INSERT INTO names VALUES (25,'ktpzu alpfz','ktpzu alpfz@hotmail.com');
INSERT INTO names VALUES (26,'rkvkrwf a','rkvkrwf a@hotmail.com');
INSERT INTO names VALUES (27,'lfslxyer','lfslxyer@hotmail.com');
INSERT INTO names VALUES (28,' apsikzzj',' apsikzzj@hotmail.com');
INSERT INTO names VALUES (29,'ztregsj asr','ztregsj asr@hotmail.com');
INSERT INTO names VALUES (30,'uwpnwbrs','uwpnwbrs@hotmail.com');
INSERT INTO names VALUES (31,'mpjfpisxs','mpjfpisxs@hotmail.com');
INSERT INTO names VALUES (32,'kjtqkh','kjtqkh@hotmail.com');
INSERT INTO names VALUES (33,'eersczsfv','eersczsfv@hotmail.com');
INSERT INTO names VALUES (34,'yrjsqqo','yrjsqqo@hotmail.com');
INSERT INTO names VALUES (35,'rsbmyl','rsbmyl@hotmail.com');
INSERT INTO names VALUES (36,'pbkygbw','pbkygbw@hotmail.com');
INSERT INTO names VALUES (37,'qpzeq','qpzeq@hotmail.com');
INSERT INTO names VALUES (38,'edhrtwqgf a','edhrtwqgf a@hotmail.com');
INSERT INTO names VALUES (39,'kv a arrn','kv a arrn@hotmail.com');
INSERT INTO names VALUES (40,'rqycx','rqycx@hotmail.com');
INSERT INTO names VALUES (41,' amwtpwfwq',' amwtpwfwq@hotmail.com');
INSERT INTO names VALUES (42,'ibhydjos','ibhydjos@hotmail.com');
INSERT INTO names VALUES (43,'phrmvxmc','phrmvxmc@hotmail.com');
INSERT INTO names VALUES (44,'yu atooox','yu atooox@hotmail.com');
INSERT INTO names VALUES (45,'fzivejdfi','fzivejdfi@hotmail.com');
INSERT INTO names VALUES (46,'rrovrmkz','rrovrmkz@hotmail.com');
INSERT INTO names VALUES (47,'h awexwq','h awexwq@hotmail.com');
INSERT INTO names VALUES (48,'dxipykkhb a','dxipykkhb a@hotmail.com');
INSERT INTO names VALUES (49,'mtzxixxx','mtzxixxx@hotmail.com');
INSERT INTO names VALUES (50,' aqhbz',' aqhbz@hotmail.com');
INSERT INTO names VALUES (51,'eqdec','eqdec@hotmail.com');
INSERT INTO names VALUES (52,'iplyv','iplyv@hotmail.com');
INSERT INTO names VALUES (53,'xvlrziqf','xvlrziqf@hotmail.com');
__________________
**************************** Danger For Make Dreams
**************************** |