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

عندي أخطاء في هذا الكود ممكن مساعدة

مغلق
بدأه ye4help في 26 أغسطس 2004 · 7 رد · 733 مشاهدة · في منتدى تصميم صفحات الويب
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم هذه اول مشاركة لي في هذا المنتدى الرائع حقيقة آملا في ان اجد حل لهذاه المشكلة التي واجهتني ولكم جزيل الشكر

انا قمت بعمل قاعدة بيانات بأستخدام الأكسس

وضبط كل شئ تمام وعندما قمت بعمل صفحة للأضافة الى قاعدة البيانات تطلع لي أخطا وكود صفحة الإضافة هو

وهو موجود في صفحة أسمها add_student.asp

<html>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<title>New Page 1</title>
</head>

<body>

<form method="POST" action="add_to_data.asp">
  <p><input type="text" name="reg_no" size="20">رقم
  الجلوس </p>
  <p><input type="text" name="name" size="20">الأسم</p>
  <p><input type="text" name="quran" size="20">القرآن
  الكريم</p>
  <p><input type="text" name="islamic" size="20">التربية
  الإسلامية</p>
  <p><input type="text" name="arabic" size="20">اللغة
  الربية</p>
  <p><input type="text" name="english" size="20">اللغة
  الإنجليزية</p>
  <p><input type="text" name="math" size="20">الرياضيات</p>
  <p><input type="text" name="science" size="20">العلوم</p>
  <p><input type="text" name="social" size="20">الإجتماعيات</p>
  <p><input type="submit" value="إضافة" name="B1"></p>
</form>

</body>

</html>

وكود معالجة البيانات والإضافة الى قاعدة البيانات هو

وهو موجود في صفحة أخرى أسمها add_to_data.asp

<%@ Language=VBScript CodePage = "1256"%>

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

<%
reg_no=request.form("reg_no")
name=request.form("name")
quran=request.form("quran")
islamic=request.form("islamic")
arabic=request.form("arabic")
english=request.form("english")
math=request.form("math")
science=request.form("science")
social=request.form("social")

If reg_no="" or name="" or quran="" or islamic="" or arabic="" or english="" or math="" or science="" or social="" then
    response.write "<center>" & "لم تقم بإدخال جميع الحقول المطلوبة.. من فضلك اضغط زر عودة في متصفحتك وقم بإدخال جميع الحقول"
Else
    addSQL= " insert into stud (reg_no,name,quran,islamic,arabic,english,math,science,social,) values ("&reg_no&",'"&name&"',"&quran&","&islamic&","&arabic&","&english&","&math&","&science&","&social&") " 
    ADO.execute(addSQL)

    response.redirect "add_studnt.asp"
End if

ADO.close
Set ADO=Nothing

%>

وقاعدة البيانات التي عملتها مرفقة مع هذه الموضوع

هل نوع الحقول تؤثر على عملية الإضافة

اين تكمن الأخطاء في الكود الثاني

مع العلم انا ملف الإتصال بقاعدة البيانات شغال

dbfile.zip

#2

السلام عليكم، قمت بعمل شبيه في إرسالية أخرى:

/index.php?showtopic=45089

إذا لم تنجح معك الأمور، خبرني و سنعمل على حلها بإذن الله

Mohamad Al-Karbi

www.mkarbi.me

#3

الأخ محمد شكرا لك على تجاوبك معي

الأخ محمد قمت بتركيب الكود الذي وضعته بعد التعديل علية الى مايتناسب مع قاعدة البيانات التي عندي لكن لافائدة

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

هل يمكنك تعديل الكود الثاني اي كود الإضافة الى قاعدة البيانات

ولك جزيل الشكر

#4

أخي جرب وجود الكود كاملاً مع الجداول بصفحة واحدة، أنا أحب هذه الطريقة... على كل حال هذا الكود كامل بطريقتي (على فرض أن اسم الصفحة هو studadd.asp):

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


<%
Response.Buffer = True

' Get action
a = Request.Form("a")

' Open Connection to the database
Set conn = Server.CreateObject("ADODB.Connection")
conn.Open xDb_Conn_Str

Select Case a
	Case "A": ' I chose case to make it on one page

  ' Open record
  strsql = "SELECT * FROM [stud] WHERE 0 = 1"
  Set rs = Server.CreateObject("ADODB.Recordset")
  rs.Open strsql, conn, 1, 2
  rs.AddNew
  
  ' Get fields from form and add them
  rs("reg_no") = Request.Form("x_reg_no")
  rs("name") = Request.Form("x_name")
  rs("quran") = Request.Form("x_quran")
  rs("islamic") = Request.Form("x_islamic")
  rs("arabic") = Request.Form("x_arabic")
  rs("english") = Request.Form("x_english")
  rs("math") = Request.Form("x_math")
  rs("science") = Request.Form("x_science")
  rs("social") = Request.Form("x_social")

  rs.Update
  rs.Close
  Set rs = Nothing
  conn.Close
  Set conn = Nothing
  Response.Clear
  
  Response.Redirect "ThankyouORanything.asp"
  
End Select
%>

<form action="studadd.asp" method="post">
<input type="hidden" name="a" value="A">

<table border="0" cellspacing="0" cellpadding="4" style="border-collapse: collapse" bordercolor="#111111">
	<tr>
  <td align="right"><font face="Tahoma" style="font-size: 9pt">رقم الجلوس </font></td>
  <td>
        <input type="text" name="x_reg_no" size="30"> </td>
	</tr>
	<tr>
  <td align="right"><font face="Tahoma" style="font-size: 9pt">الأسم</span> </font></td>
  <td>
        <input type="text" name="x_name" size="30" maxlength="255"> </td>
	</tr>
	<tr>
  <td align="right"><font face="Tahoma" style="font-size: 9pt">القرآن الكريم </font></td>
  <td><input type="text" name="x_quran" size="30"> </td>
	</tr>
	<tr>
  <td align="right"><font face="Tahoma" style="font-size: 9pt">التربية الإسلامية</span> </font></td>
  <td>
        <input type="text" name="x_islamic" size="30"> </td>
	</tr>
	<tr>
  <td align="right"><font face="Tahoma" style="font-size: 9pt">اللغة العربية</span> </font></td>
  <td>
        <input type="text" name="x_arabic" size="30"> </td>
	</tr>
	<tr>
  <td align="right"><font face="Tahoma" style="font-size: 9pt">اللغة الإنجليزية</font></td>
  <td>
        <input type="text" name="x_english" size="30"> </td>
	</tr>
	<tr>
  <td align="right"><font face="Tahoma" style="font-size: 9pt">الرياضيات</font></td>
  <td><input type="text" name="x_math" size="30"> </td>
	</tr>
	<tr>
  <td align="right"><font face="Tahoma" style="font-size: 9pt">العلوم </font></td>
  <td>
        <input type="text" name="x_science" size="30"> </td>
	</tr>
	<tr>
  <td align="right"><font face="Tahoma" style="font-size: 9pt">الإجتماعيات</font></td>
  <td>
        <input type="text" name="x_social" size="30"> </td>
	</tr>
</table>
<p>
<input type="submit" name="Action" value="إضافة">

</form>

تم تعديل هذه المشاركة بواسطة محمد القربي في 27 أغسطس 2004 في 23:10

Mohamad Al-Karbi

www.mkarbi.me

#5

أو بطريقتك، هذا كود صفحة معالجة الإضافة للداتا بيز :

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

<%
Response.Buffer = True

' Open Connection to the database
Set conn = Server.CreateObject("ADODB.Connection")
conn.Open xDb_Conn_Str

  ' Open record
  strsql = "SELECT * FROM [stud] WHERE 0 = 1"
  Set rs = Server.CreateObject("ADODB.Recordset")
  rs.Open strsql, conn, 1, 2
  rs.AddNew
  
  ' Get fields from form and add them
  rs("reg_no") = Request.Form("x_reg_no")
  rs("name") = Request.Form("x_name")
  rs("quran") = Request.Form("x_quran")
  rs("islamic") = Request.Form("x_islamic")
  rs("arabic") = Request.Form("x_arabic")
  rs("english") = Request.Form("x_english")
  rs("math") = Request.Form("x_math")
  rs("science") = Request.Form("x_science")
  rs("social") = Request.Form("x_social")

  rs.Update
  rs.Close
  Set rs = Nothing
  conn.Close
  Set conn = Nothing
  Response.Clear
  
  Response.Redirect "ThankyouORanything.asp"

%>

طبعاً ممكن تغير هنا اسم requestform لما يناسب أسم الحقول في جداولك

تم تعديل هذه المشاركة بواسطة محمد القربي في 27 أغسطس 2004 في 23:44

Mohamad Al-Karbi

www.mkarbi.me

#6

السلام عليكم

" insert into stud (reg_no,name,quran,islamic,arabic,english,math,science,social,)

سوف تشاهد هناك فاصةل زيادة، قم بإزالتها.

واذا ظهر لك خطأ، أرجوا أن تقم بوضعه هنا.

دون وضع الكود، لكي نعرف المشكلة من جهازك أم في الكود البرمجي.

مع تحياتي

MCP

MCTS:.Net Framework 2.0: Web Applications

MCPD:Web Developer

#7

عفوا

الأخ محمد

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

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


<%
Response.Buffer = True

' Get action
a = Request.Form("a")

' Open Connection to the database
Set conn = Server.CreateObject("ADODB.Connection")
conn.Open xDb_Conn_Str

Select Case a
Case "A": ' I chose case to make it on one page

 ' Open record
 strsql = "SELECT * FROM [stud] WHERE 0 = 1"
 Set rs = Server.CreateObject("ADODB.Recordset")
 rs.Open strsql, conn, 1, 2
 rs.AddNew

 ' Get fields from form and add them
 rs("reg_no") = Request.Form("x_reg_no")
 rs("name") = Request.Form("x_name")
 rs("quran") = Request.Form("x_quran")
 rs("islamic") = Request.Form("x_islamic")
 rs("arabic") = Request.Form("x_arabic")
 rs("english") = Request.Form("x_english")
 rs("math") = Request.Form("x_math")
 rs("science") = Request.Form("x_science")
 rs("social") = Request.Form("x_social")

 rs.Update
 rs.Close
 Set rs = Nothing
 conn.Close
 Set conn = Nothing
 Response.Clear

 Response.Redirect "ThankyouORanything.asp"

End Select
%>

ولكم جزيل الشكر

على المجهود الرائع الذي تبذلونه في هذا المنتدى

#8

هي نفس طريقتك مع اختلافين:

الأول، أن كود الإضافة بنفس صفحة الجداول و لذلك وضعت case و ذلك لفتح الصفحة أول مرة عادي. لو لم أضع case سيظن أن الصفحة هي كود إضافة و بالتالي سيضيف فوراً قيماً فارغاً إلى السجل. لاحظ عند الضغط على زر "إضافة" فإنه سيعمل refresh للصفحة مع أخذ القيم من الحقول الموجودة من خلال request form وتحديد أن قيمة الـ case هي A

<form action="studadd.asp" method="post">
<input type="hidden" name="a" value="A">

الثاني، أني بدلا من استخدام insert to SQL استخدمت تعريف قيمة كل عمود من السجل، أنا اجد هذه طريقة اسهل للتوسع فيما بعد و التحكم بسهوله بهذه القيم من خلال غضافات أخرى ليست هدفنا هنا. فعلى سبيل المثال، قمت بتعريف قيمة العمود islamic للسجل من خلال:

rs("islamic") = Request.Form("x_islamic")

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

<%
' فتح الاستدعاء من الفورم
Response.Buffer = True

' بما ان كود الإضافة في نفس الصفحة، فحتى لا يضيف مباشرة
' وضعنا حالة أو ما يسمى بالانكليزي
' case
' و جعنا عند تنفيذ الفورم أن يكون هناك اختيار لهذه الحالة
' يتم تنفيذ هذه الحالة التي اسمها
' a
' وقيمتها 
' A

' هنايتم استدعاء اسم الحالة من الفورم في
' form action ... Input hidden
a = Request.Form("a")

' فتح الوصلة الموجودة في 
' connection.txt
Set conn = Server.CreateObject("ADODB.Connection")
conn.Open xDb_Conn_Str

' تحديد أو تعريف الفعل في هذه الحالة التي اسمها
' A
Case "A":

' فتح السجل للإضافة
strsql = "SELECT * FROM [stud] WHERE 0 = 1"
Set rs = Server.CreateObject("ADODB.Recordset")
rs.Open strsql, conn, 1, 2
rs.AddNew

' استدعاء قيمة الحقول من الفورم
rs("reg_no") = Request.Form("x_reg_no")
rs("name") = Request.Form("x_name")
rs("quran") = Request.Form("x_quran")
rs("islamic") = Request.Form("x_islamic")
rs("arabic") = Request.Form("x_arabic")
rs("english") = Request.Form("x_english")
rs("math") = Request.Form("x_math")
rs("science") = Request.Form("x_science")
rs("social") = Request.Form("x_social")

' التحديث و إغلاق الوصلة للداتا بيز
rs.Update
rs.Close
Set rs = Nothing
conn.Close
Set conn = Nothing
Response.Clear

' التحويل لصفحة الشكر بعد الإضافة
Response.Redirect "ThankyouORanything.asp"

' إنهاء تعرف الحالة
End Select
%>

تم تعديل هذه المشاركة بواسطة محمد القربي في 28 أغسطس 2004 في 22:51

Mohamad Al-Karbi

www.mkarbi.me

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

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