نظرة سريعة على مجريات يوم سوالف
بعض التغييرات في أماكن وأسلوب الإعلان في سوالف سوفت

 

العودة   سوالف سوفت > قسم تطوير وبرمجة المواقع للمتقدمين > PHP
المدوّنات البحث مشاركات اليوم اجعل كافة المشاركات مقروءة

رد
 
LinkBack أدوات الموضوع
عضو سوبر نشيط
تاريخ التسجيل: Jun 2004-
#1 (permalink)  
طلب : كيف استعلم من قاعدة البيانات بشرط احد الحقول ؟


السلام عليكم

عملت برنامج صغير للتحكم في البنرات عن طريق اضافة كلم علومات البنر في قاعدة البيانات ومن ثم استخرجتها عن طريق دالة التكرار وعدلت فيها وكل شيء تمام الى الان

المشكلة
هي اني اريد ان استخرج احد البنرات واضعه في اعلى الصفحة
والبنر رقم 2في وسط الصفحة
واريد ان اضع البنر رقم 3 في اسفل الصفحة
طبعا شرط البنر موجود في حقل اسميته مثلا nombar


عملت هذا الكود لكن مشكلته انه يضع النتايج مكررة تحت بعض
وانا احتاج ان اضع كل نتيجة في مكان احدده من الصفحة وليست ورى بعض
فكرت ان اكرر هذا الكود في كل مكان اريد ان اضع فيه بنر ولكن اعتقد انه سيكون ثقيل على السيرفر
كود PHP:
// هذا الكود يضع لي النتايج  تحت بعض وانا اريد ان اغير كل نتيجة في مكان محدد من الصفحة
     
$query "SELECT * FROM ads";
     
$result mysql_query($query);

     while(
$ads mysql_fetch_row($result))
     {
       echo
"$ads[0] <br>";
       echo
"$ads[1] <br>";
       echo
"$ads[2] <br>";
       echo
"$ads[3] <br>";
     } 



المشكلة باختصار :
اريد ان استعلم من قاعدة البيانات بشرط احد الحقول واذا تحقق هذا الشرط لا يطبع لي الا الصف الذي يوجد فيه الشرط
مثلا الشرط اسم الموقع = سوالف سوفت
لا يطبع الا السجل الخاص بسوالف سوفت


اتمنى ان تكون مشكلتي واضحة وان اجد لديكم الحل






__________________
سبحان الله وبحمده ..... سبحان الله العظيم

اول موقع متخصص في جمع البرامج المعربة
الريان نت للبرامج المعربة
www.ar1ar.com
ابو مشاري 97 غير متواجد حالياً   قديم 21-12-2005, 03:07 PM
رد مع اقتباس
عضو نشيط جدا
تاريخ التسجيل: Jan 2005-
#2 (permalink)  

بسم الله الرحمن الرحيم

اخي الفاضل
اضف بعد جملة الاستعلام شرط الاستعلام where
اي يصبح الكود :

كود PHP:
$query "SELECT * FROM ads where nombar='1"
حيث الرقم 1 هو رقم الاعلان الذي تريد

واذا كنت تريد وضع البانرات في الصفحة في عدة اماكن لاتضع الشرط ووزع الecho في الاماكن التي تريدها بمعنى
echo"$ads[0]
في اعلى الصفحة
و echo"$ads[1]
في الاسفل مثلا
وهكذا بدلا من وضعهم تحت بعض

اتمنى اكون افدتك بشيء

arabip (@) arabip .com
[CENTER]م/حسام القاضي
مجموعة المحترفون العرب للإنترنت
المدير العام
0020122893415
شركة رسمية مسجلة
121 عمارات الفتح (الشرطة) شقة 2- إمتداد عباس العقاد - مدينة نصر - القاهرة - جمهورية مصر العربية
[/CENTER]






__________________
http://www.hossamelkady.com مدونة حسام القاضي
قريبا يتحقق حلم أول مشروع عربي فريد من نوعه...تم توقيع عقد الشراكة
http://www.swalif.net/softs/showthread.php?t=192787
Arabip.com غير متواجد حالياً   قديم 21-12-2005, 03:22 PM
رد مع اقتباس
عضو سوبر نشيط
تاريخ التسجيل: Jun 2004-
#3 (permalink)  

بارك الله فيك اخي Arabip.com
عمل الكود تمام

لكن اعتقد ان هذا يرهق السيرفر ويوخر فتح الصفحة لان انا عندي 8 بنرات في الصفحة واحد في الاعلى وسته بالوسط وواحد بالاسفل .. ولا اعتقد انك تقصد ان اضع هذا الاستعلام في كل مكان يظهر فيه البنر..
اضافة الى ان كل الصفحة استعلامات اخرى ولكن كلها من جدول واحد وتعتبر استعلام واحد مكرر تقريب ابطريقة بسيطة


بالانتظار ....






__________________
سبحان الله وبحمده ..... سبحان الله العظيم

اول موقع متخصص في جمع البرامج المعربة
الريان نت للبرامج المعربة
www.ar1ar.com
ابو مشاري 97 غير متواجد حالياً   قديم 21-12-2005, 03:57 PM
رد مع اقتباس
عضو نشيط جدا
تاريخ التسجيل: Jan 2005-
#4 (permalink)  

بسم الله الرحمن الرحيم

بالفعل يرهق السيرفر لو انك عملت عدة استعلامات
لكن في حالتك لاتحتاج سوى لاستعلام واحد في اول الصفحة مثلا ثم تقوم بوضع
echo"$ads[1]
فيمكان ظهور البانر رقم واحد
و
echo"$ads[2]
في مكان ظهور الثاني وهكذا
وبهذا يكون عندك استعلام واحد فقط
$query = "SELECT * FROM ads";

ونتائجه تعرضها كل واحد في مكانه

لو في شيء ماهو واضح ارجو تفسره لي وتحت امرك ان شاء الله

arabip (@) arabip .com
[CENTER]م/حسام القاضي
مجموعة المحترفون العرب للإنترنت
المدير العام
0020122893415
شركة رسمية مسجلة
121 عمارات الفتح (الشرطة) شقة 2- إمتداد عباس العقاد - مدينة نصر - القاهرة - جمهورية مصر العربية
[/CENTER]






__________________
http://www.hossamelkady.com مدونة حسام القاضي
قريبا يتحقق حلم أول مشروع عربي فريد من نوعه...تم توقيع عقد الشراكة
http://www.swalif.net/softs/showthread.php?t=192787
Arabip.com غير متواجد حالياً   قديم 22-12-2005, 11:43 AM
رد مع اقتباس
عضو سوبر نشيط
تاريخ التسجيل: Jun 2004-
#5 (permalink)  

اقتباس:
المشاركة الأصلية كتبت بواسطة Arabip.com
لكن في حالتك لاتحتاج سوى لاستعلام واحد في اول الصفحة مثلا ثم تقوم بوضع
echo"$ads[1]
فيمكان ظهور البانر رقم واحد
و
echo"$ads[2]
في مكان ظهور الثاني وهكذا
وبهذا يكون عندك استعلام واحد فقط
$query = "SELECT * FROM ads";

ونتائجه تعرضها كل واحد في مكانه
مشكور اخوي الغالي
ولكن هذه الطريقة لا تنفع لان عندي سجلات كثيرة وكل سجل يحتوي على معلومات هي
... البنر + اسم موقعه + رابط الموقع + مكان ظهور البنر

دعني اعطيك الكود الذي صنعت وعجزت عن اكماله
كود PHP:
/*قراءة كامل معلومات السجل
( بشرط  السجل الذي يحتوي على الحقل رقم 5 )
*/
       
$query "SELECT * FROM ads where nombar='5'" ;  
       
$result mysql_query($query);
      
$ads mysql_fetch_row($result); // وضع معلومات السجل في مصفوفة

/*
التالي :  طباعة معلومات السجل المختار سابقا ( رقم 5) 000
وهذه المعلومات المطبوعة هي اسم الموقع ورابطه 
*/
       
echo "<a href='$ads[2]'>$ads[3]</a>"
مثلا طبعت ما سبق في اعلى الصفحة
واريد ان اطبع معلومات السجل رقم 4 في اسفل الصفحة
ومعلومات السجل رقم 1 و 2 و 3 في وسط الصفحة
فهل في كل مرة استعلم من القاعدة .. سيكون مرهقا للسيرفر ويبطي الصفحة






__________________
سبحان الله وبحمده ..... سبحان الله العظيم

اول موقع متخصص في جمع البرامج المعربة
الريان نت للبرامج المعربة
www.ar1ar.com
ابو مشاري 97 غير متواجد حالياً   قديم 23-12-2005, 12:19 PM
رد مع اقتباس
عضو نشيط
تاريخ التسجيل: Jul 2003-
#6 (permalink)  

اسمح لي أخي Arabip.com أن أقوم بالمساعدة

على افتراض ان الجدول لديك بالشكل التالي:

banner هو البنر نفسه
link هو رابط الموقع
name هو اسم الموقع

نقوم باستخراج المعلومات من الجدول مرة واحده ووضعها في مصفوفة بالشكل التالي:
كود PHP:
$sql "SELECT * FROM ads";
$result mysql_query ($sql);
while ( 
$row mysql_fetch_array ($result) )
{
$my_banner[]['banner'] = $row['banner'];
$my_banner[]['link'] = $row['link'];
$my_banner[]['name'] = $row['name']
}
// الآن يمكنك استخدام الآتي في أي مكان تريد
echo $my_banner[0]['banner']; // يطبع البنر من السجل الأول
echo $my_banner[1]['banner']; // يطبع البنر من السجل الثاني
echo $my_banner[5]['title']; // يطبع عنوان الموقع من السجل الخامس
// وهكذا 
لم أقم بالتجربة، لكن أعتقد أن الكود يعمل بالشكل الصحيح






__________________
بوجبر

http://www.ba7reny.com
بحريني دوت كوم (موقع صديق)
M-Plus غير متواجد حالياً   قديم 23-12-2005, 06:32 PM
رد مع اقتباس
عضو سوبر نشيط
تاريخ التسجيل: Jun 2004-
#7 (permalink)  

مشكور اخوي M-Plus

ابجرب الكود وان شاء الله ينجح


تحياتي






__________________
سبحان الله وبحمده ..... سبحان الله العظيم

اول موقع متخصص في جمع البرامج المعربة
الريان نت للبرامج المعربة
www.ar1ar.com
ابو مشاري 97 غير متواجد حالياً   قديم 25-12-2005, 01:11 AM
رد مع اقتباس
عضو سوبر نشيط
تاريخ التسجيل: Jun 2004-
#8 (permalink)  

بعد التجربة اخوي هذي هي النتيجة

كود PHP:
$sql "SELECT * FROM ads";
$result mysql_query ($sql);
while ( 
$row mysql_fetch_array ($result) )
{
$my_banner[]['banner'] = $row['banner'];
$my_banner[]['link'] = $row['link'];
$my_banner[]['name'] = $row['name'];
}
// الآن يمكنك استخدام الآتي في أي مكان تريد
echo $my_banner[0]['banner']; //نعم  يطبع البنر من السجل الأول
echo $my_banner[0]['name']; //نعم  يطبع الاسم من السجل الأول

echo $my_banner[1]['banner']; // لم يطبع شيء
echo $my_banner[5]['name']; // لم يطبع شيء   طبعا مع تغيير اللازم
// وهكذا 
يعني لم يستطع القراءة الا من السجل الاول


وشيء مهم جدا وهو اني اريده يقرا بشرط احد الحقول وليس برقم id او ترتيب السجل في قاعدة البيانات
اريده يقرا بشرط حقل nombar يحتوي على ارقام مثلا 1 للبنر الاول مع كامل معلوماته .. 4 للبنر الرابع مع كامل معلوماته ... وهكذا

استفدت من كودك الكثير ولكن ليس في حاجتي هذه

لازلت ابحث عن حل ....






__________________
سبحان الله وبحمده ..... سبحان الله العظيم

اول موقع متخصص في جمع البرامج المعربة
الريان نت للبرامج المعربة
www.ar1ar.com
ابو مشاري 97 غير متواجد حالياً   قديم 25-12-2005, 02:26 PM
رد مع اقتباس
عضو نشيط
تاريخ التسجيل: Jul 2003-
#9 (permalink)  

كود PHP:
$sql "SELECT * FROM ads WHERE nombar BETWEEN 1 AND 6"
$result mysql_query ($sql); 
while ( 
$row mysql_fetch_assoc($result) ) 
{
    
$my_banner[$row['nombar']]['banner'] = $row['banner']; 
    
$my_banner[$row['nombar']]['link'] = $row['link']; 
    
$my_banner[$row['nombar']]['name'] = $row['name'];
}
echo 
$my_banner[5]['banner']; // يطبع البنر للسجل nombar=5 وهكذا... 
في الاستعلام تجد between 1 and 6 <-- سيرجع لك المعلومات من 1 الى 6، و هكذا.... لو كانت الأرقام لديك غير مرتبه استخدم التالي
كود PHP:
SELECT FROM ads WHERE nombar IN(1,7,25,234,5500
سيرجع لك المعلومات التي يكون فيها nomabar يساوي 1 و 7 و 25 و 234 و 5500


أتمنى أن يكون هذا هو المطلوب (هذا الكود يعمل وقد قمت بتجربته)


بوجــــــــــــبر






__________________
بوجبر

http://www.ba7reny.com
بحريني دوت كوم (موقع صديق)
M-Plus غير متواجد حالياً   قديم 25-12-2005, 07:47 PM
رد مع اقتباس
عضو سوبر نشيط
تاريخ التسجيل: Jun 2004-
#10 (permalink)  

M-Plus
بارك الله فيك وجزاك الله كل خير

فعلا الكود عمل معي وحليت لي مشكلة عقدتني ... راجعت اغلب الدروس اللي عندي واللي اعرفها في سوالف وغيرها ولا وصلت لنتيجة

ولكن انت ما قصرت وحليت لي المشكلة باقصر الطرق

تحياتي لك يا الغالي






__________________
سبحان الله وبحمده ..... سبحان الله العظيم

اول موقع متخصص في جمع البرامج المعربة
الريان نت للبرامج المعربة
www.ar1ar.com
ابو مشاري 97 غير متواجد حالياً   قديم 26-12-2005, 03:49 PM
رد مع اقتباس
عضو نشيط
تاريخ التسجيل: Jul 2003-
#11 (permalink)  

العفو اخوي بومشاري






__________________
بوجبر

http://www.ba7reny.com
بحريني دوت كوم (موقع صديق)
M-Plus غير متواجد حالياً   قديم 26-12-2005, 10:27 PM
رد مع اقتباس
رد


أدوات الموضوع

تعليمات المشاركة
لا تستطيع كتابة مواضيع
لا تستطيع كتابة ردود
لا تستطيع إرفاق ملفات
لا تستطيع تعديل مشاركاتك

كود [IMG] متاحة
كود HTML معطلة
Trackbacks are متاحة
Pingbacks are متاحة
Refbacks are متاحة



الساعة الآن: 07:53 AM بتوقيت المملكة العربية السعودية