الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

الرجاء المساعدة الى خبراء ال Asp

مغلق
بدأه SoSo في 11 يناير 2003 · 23 رد · 1,264 مشاهدة · في منتدى تصميم صفحات الويب
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

(f)(f)(f)(f)(f)

صباح الخير يا شباب

في عندي مشكله بسيطة ممكن حد يحلها في ال ASp

في عندي جدول المدرسين وحدول المشاريع لكل مدرس اكثر من مشروع

جدول Tec و جدول Projects يوجد حقل في جدول Tec اسمه NoTec مربوط في قاعدة البيانات مع الجدول projects عن طريق حقل NoTect في جدول ال projects كيف انا بدي اعرض اسم المدرس وجميع المشاريع التي قام بها

حد يزودني في ال code او يشرح لي الطريقة طبعا عن طريق ال ASP

:o:o:o:o

#2

وعليكم السلام ..

وصباح الخيرات ..

طبعا بعد الربط بقاعدة البيانات تكتب الكود التالي :

selectSQL ="select tec_name,proj_name   from tec, projects  where  NoTect = Notec"

set rs=objConn.execute(SelectSql)
#3

انا لم افهم كلامك أوي بس اعتقد هو ده الحل :

تعمل استعلام في الصفحة التي تريد ان تعرض فيها وتكتب

select project_name from project where tec=rs(notect)
#4

الاخ asp 4 arab في عندي مشكله ما زبط بعطي

Error Type:

Microsoft VBScript compilation (0x800A03F2)

Expected identifier

/new/cv/test.asp, line 15, column 25

set rs = objConn.execute.(selectSQL)

ايش الحل

#5

هذا الخطأ ناتج عن عملية الربط بقاعدة البيانات .

عليك وضع نفس الاسم للـ object الذي عرفته عند الربط بقاعدة البيانات ,

ولكن على العموم لنفترض ان قاعدة البيانات عند بالـ access وان اسم القاعدة school يكون الربط والعرض كالتالي :

<%



set objConn=server.createobject("adodb.connection")

objConn.open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath(ضع هنا مسار قاعدة البيانات مثلا: "db/school.mdb")





selectSQL ="select tec_name,proj_name   from tec, projects  where  NoTect = Notec"

set rs=objConn.execute(SelectSql) 





' لعرض الباينات

if rs.eof or rs.bof then %>





<p align="center" dir="rtl">

<font color="#FF0000">


عفواً ...لا توجد معلومات مسجلة</font></p>



<% else

%>





  <center>

  <table border="0" cellpadding="0" cellspacing="0" style="border-style:solid; border-width:1px; border-collapse: collapse; " bordercolor="#000080" width="90%" dir="rtl">

    <tr>

      <td width="50%" bgcolor="#DDEEFF" style="border: 1px solid #000080" align="center"><font color="#000080">اسم الأستاذ</b></font></td>

      <td width="50%" bgcolor="#DDEEFF" style="border: 1px solid #000080" align="center"><font color="#000080">اسم المشروع</b></font></td>

    </tr>





<%

do while not rs.eof 

%>

<tr>

      <td width="50%" style="border-left: 1px solid #000080; border-right: 1px solid #000080; border-top-width: 1; border-bottom-width: 1" align="center">

      <p align="right"> <%=rs("Atec_name")%></td>

      <td width="50%" style="border-left: 1px solid #000080; border-right: 1px solid #000080; border-top-width: 1; border-bottom-width: 1" align="center">

      <p align="left"><font size="2"><%=rs("proj_name")%> </font></td>

      </tr>

<%

rs.movenext

 loop

%>

  </table>

  </center>




<% 

end if



objConn.close

set rs=nothing



%>
#6

كان في نقط زياده على شان هيك طلع الخطأ يلي كان فوق

اما بعد ما صار كل شيء صح

Error Type:

Microsoft VBScript runtime (0x800A01A8)

Object required: '

ايش الحل اخي

مشكور اكثير

/new/cv/test.asp, line 15

#7

الأستاذ العزيز SoSo

لكي نختصر الوقت الأفضل ان تضع الكود كامل , او ترسله عل الأيميل.

#8

اخي العزيز انا بجد غلبتك مع انا كنت اعرض وكان ما يعطياي شيء لا خطأ ولا شيء صفحة فارغة

انا رح ارفق قاعدة البيانات وانت اعمل اللازم

بدي تظهر اسم المدرس باسم وكل المشاريع يلي عملها

واسم اسم المدرس محمد وجميع المشاريع التي عملها

وضع ال code في صفحة asp

school.zip

#9

هل من يجيب

#10

...

#11

اعتقد أني فهمت المشكلة مع أني قرأتها عالسريع ..

اذا كانت المشكلة إنك في صفحة تستخدم جدول متصل بمجموعة سجلات

معينة و طبعا هناك حقل من نوع FK أي مفتاح غريب مع جدول تاني ..

فكل ما عليك عمله للحصول على باقي المعلومات من الجدول الاخر استدعاء

دالة داخل كل دورة يمرر باراميتر للدالة من مجموعة السجلات التي تقرأ حاليا

و يستخدم هذا الباراميتر و هو رقم المدرس من أجل استعلام داخل الدالة يعرض بيانات الحقول ..

أنا الان بعيد عن جهازي في الغد لما أرجع سأضع الكود إذا بقيت المشكلة ..

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

الرجاء الرد خاصة إن كانت هذه هي المشكلة ..

You can fly while you can touch the sky

#12

المشكلة عندك في تعريف العلاقة بين الجدولين ..

لعلك تنتظر الى الغد , وسنوافيك بما يثلج صدرك .

والسلام.

#13

ما شاء الله عليك أخ ASP4ARAB بصراحة أنا متلهف أشوف الرد أكثر ;)

You can fly while you can touch the sky

#14

الاخوه الاعزاء انا اسف لاني لم افتح النت في البارحه وذلك بسبب الشهيد يلي كان امبارح

انا لم احل المشكله يا ريت واحد يتبرع مشكور في حلها لي

:'(

#15

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

المشكلة في حكاية ال object required أن لم يتم تعرف إما كائن الاتصال أو كائن سلسلة السجلات فالرجاء التأكد من ذلك ..

You can fly while you can touch the sky

#16

اعتقد أن الموضوع قد طال و حان وقت التدخل ;)

بصراحة صارلي مدة بسبب ضغط الإمتحانات و المشاريع ما كتبت كود

و اليوم عن جد شعور رائع بعد هذا الكود :)

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

على العموم فكرة الكود تنطبق على العكس أيضا لا مشكلة ..

المهم هذا هو الكود :

<!--#include file="connection.inc"-->

<%

 write "<html dir=""rtl"">"

 write "<meta http-equiv=""Content-Type"" content=""text/html; charset=windows-1256"">"



 Function GetTechProjects(Tid,field)

  set rec=cn.Execute("SELECT * FROM Tprojects where Tid="&Tid)

   while not rec.EOF 

     write "<A href="& rec("pLink") & ">"& rec(field) & "</A><BR>"

   rec.MoveNext

   Wend  

 End Function



 set rs=createObject("ADODB.recordSet")

 SQL="SELECT * FROM teachers"

 rs.open SQL,cn,3,3

 write("<table bgcolor=gray border=1>")

 write("<TR><TD>المدرس</TD><TD>المواد</TD></TR>")

 while not rs.EOF 

 write("<tr>")

 write("<td vAlign=TOP>")

 write rs("Tname")

 write("</td>")

 write("<td>")

 '>>>>>>>>>>>>>>>>>>>>>>>>>



  write GetTechProjects(rs("Tid"),"pName") 

 '>>>>>>>>>>>>>>>>>>>>>>>>

 write("</td>")

 write("</tr>")



 rs.MoveNext

 Wend write("</table>")

%>

أرفقت التطبيق ..

بالتوفيق و لا تنسونا من دعائكم :)

school.zip

You can fly while you can touch the sky

#17

معذرة على التأخير يا أخ SoSo فوالله اني مشغول جدا ., عمل ...الخ .

المهم الحل كالتالي: حمل قاعدة البيانات الجديدة والتي سميتها school2 تحتوي على جدولين teacher [ tec_no,tec_name ] , projects [proj_no ,proj_name,tec_no]

ثم اكتب الكود التالي بعد التعديل فقط على مكان قاعدة البيانات عندك .

طبعا :العملية شغالة 100% والدليل الرابط

http://www31.brinkster.com/asp4arab/school2.asp

<%



set objConn=server.createobject("adodb.connection")

objConn.open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("db/school2.mdb")





selectSQL ="select tec_name,proj_name   from teacher, projects  where  projects.tec_no = teacher.tec_no "

set rs=objConn.execute(SelectSql) 





' لعرض الباينات

if rs.eof or rs.bof then %>





<p align="center" dir="rtl">

<font color="#FF0000">


عفواً ...لا توجد معلومات مسجلة</font></p>



<% else

%>





  <center>

  <table border="0" cellpadding="0" cellspacing="0" style="border-style:solid; border-width:1px; border-collapse: collapse; " bordercolor="#000080" width="90%" dir="rtl">

    <tr>

      <td width="50%" bgcolor="#DDEEFF" style="border: 1px solid #000080" align="center"><font color="#000080">اسم الأستاذ</b></font></td>

      <td width="50%" bgcolor="#DDEEFF" style="border: 1px solid #000080" align="center"><font color="#000080">اسم المشروع</b></font></td>

    </tr>





<%

do while not rs.eof 

%>

<tr>

      <td width="50%" style="border-left: 1px solid #000080; border-right: 1px solid #000080; border-top-width: 1; border-bottom-width: 1" align="center">

      <p align="right"> <%=rs("tec_name")%></td>

      <td width="50%" style="border-left: 1px solid #000080; border-right: 1px solid #000080; border-top-width: 1; border-bottom-width: 1" align="center">

      <p align="left"><font size="2"><%=rs("proj_name")%> </font></td>

      </tr>

<%

rs.movenext

 loop

%>

  </table>

  </center>




<% 

end if



objConn.close

set rs=nothing



%>

school2.zip

#18

مشكروين اكثير اخوتي الاعزاء لم اجد حل

اذا حد عنده كتاب لل asp يدلني عليه

#19

شباب شكرا اكثير اكثثثثثثثثثثثثثثثثثثثثثثثثثثييييييييييييييييييررررررررررر

على الحل انا بجد لما رحت وكتبك لم اجد حل

اذا حد عنده كتاب لل asp يدلني عليه

ما كنت انتقل للصفحة الثانية على شان هيك ما شفت الرد

#20

:eek: العفو .. انا بصراحة استغربت من كلمة لم أجد الحل ..

على العموم حصل خير ..(f)

You can fly while you can touch the sky

#21

لا شكر على الواجب .

ولكن المهم ضبط الحل ولا ..لا؟!!

#22

عندي صفحة asp للإضافة في dbو بدي إياه يضيف و يرجع لنفس الصفحة مع

رسالة msgbox سواء بالخطأ او النجاح

#23

اخت هلا في اكثر من طريقة ...

response.write ""

response.redirect "yourpage.asp"

#24

العضو hala_elhayek الحل كالتالي :

<%

 response.Buffer=True    ' or set the  value to 1

 st=request.QueryString("st")

    if st="insertData"  and st<>"" then

      %>

     <script>alert("تمت الإضافة بنجاح");    </script>

 <%

  else

   %>

     <script>alert("خطأ في عملية الإضافة");     </script>

<%

    end if

'-------------------------------------------------------- 

 set rs=createObject("ADODB.recordset")

 SQL="SELECT * FROM tableName"

 rs.open SQL,cnObj,3,3

 ' For inserting 

 rs.AddNew

  rs("field1")=request.Form("val1")

  rs("field2")=request.Form("val2")

 rs.Update

 if Err.Number <> 0 Then

    response.Redirect "samePage.asp?st=insertData"

   else

    response.Redirect "samePage.asp?st=errFound"

 end if

 '-------------------------------

   

%>

الشرح :

هنا تتم الإضافة و لا تنتبه لل st الان لأنها ستقرأ و في بداية الصفحة قبل الادخال لا تحوي ال st قيمة و بالتالي يتم تجنب الشرط ..

عند الادخال هناك احتمالان و هو ادخال البيانات بطريقة صحيحة و بالتالي سيتم الانتقال لنفس الصفحة و تكون قيمة st هي insertData و بالتالي سينفذ كود الجافا سكريبت الخاص بالابلاغ عن تمام الادخال و أما إن ظهر خطأ فتكون قيمة ال st هي errFound و بالتالي ستدخل في استثناء الشرط ..

بالتوفيق..

You can fly while you can touch the sky

هذا الموضوع مغلق.

مواضيع مشابهة