و عليكم السلام و رحمة الله و بركاته،
شرح أشرف شامل و وافي،
بس عشان أوضحلك أكثر،
خذ هذا كمثال:
كود:
<?php
$resource = mysql_connect('localhost', 'root', '');
if ( mysql_select_db('lp', $resource)) {
$results = mysql_query('SELECT * from test_table');
$rows = mysql_fetch_array($results);
var_dump($rows);
$rows = mysql_fetch_array($results);
var_dump($rows);
$rows = mysql_fetch_array($results);
var_dump($rows);
$rows = mysql_fetch_array($results);
var_dump($rows);
}
الـ mysql_connect تفتح اتصال ما بين العميل و الخادم
الـ mysql_select_db لاختيار قاعدة بينانات اسمها lp
الـ mysql_query تقوم بتنفيذ الطلب و تقوم بارجاع "مورد". المورد تستطيع تشبيهه بـ مؤشر يعلم مكان كل النتائج للطلب. في بدايته يؤشر على أول نتيجة في الطلب.
عند تنفيذ mysql_fetch_array، المورد يقوم بارجاع قيمة أول نتيجة و يقوم بتحريك المؤشر للنتيجة التالية.
التطبيق كالتالي:
هذا الجدول:
و هذه النتيجة:
تلاحظ كيف انه قاعد يتنقل بين النتائج بدون أي دالة ثانية. و برضه أعطى false لما خلص المورد من استيراد كافة النتائج
حل مشكلتك كالتالي:
اضف
كود PHP:
$items = mysql_query("SELECT item_id, item_name, item_future, item_new_arrival, item_hot FROM items WHERE item_removed=0 AND item_enabled=1");
قبل الـ while الثانية و الثالثة.
و على فكرة،
كودك يبغاله تعديل مرة مو طبيعي.
1. يعني مثلا يبغالك توقف استعمال mysql و تبدأ بـ mysqli
2. هذا الكود حقك، http://paste2.org/p/2193633
و هذا نفس الكود بس عدلت عليه http://paste2.org/p/2193631
اللي أنا سويته إني فصلت البرمجة عن العرض بشكل جزئي بسيط (البرمجة فوق و العرض تحت) و استعملت while وحدة بدل الـ 3. لأنه في وجود 3 و الموقع مشهور، بيسبب ضغط و بطء بسبب خوارزمية غير مدروسة.
جرب تقيس الوقت بين طريقتك و طريقتي و شوف الاسرع
أخوك رائد