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

ثلاث طرق لنفس الكود وللاسف نفس الخطاء

مغلق
بدأه صاحبة السمو في 10 ديسمبر 2006 · 22 رد · 1,986 مشاهدة · في ADO.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

اخواني اليوم انا في اسواء حالتى البرمجية

كتبت نفس الكود ثلاث مرات بطرق مختلفه

وفي كل مره بيطلع غلط في شي

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

قمت غيرت اسامي كل شي

وكمان ما اشتغل

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

زاليك الثلاث طرق

Con.ConnectionString = ConnString
		Con.Open()
		SQL = "select * from COUNTALL"
		Dp = New OleDb.OleDbDataAdapter(SQL, Con)
		Dp.SelectCommand.ExecuteNonQuery()
		Con.Close()

		Dp.Fill(Rs, "COUNTALL")

		Dim SearchRow() As DataRow = Rs.Tables("COUNTALL").Select("CODE='CL'")
		If (SearchRow Is Nothing) Then
		   المشكلة انه يتجاهل هدة العباره مع انو الجدول فاضي
			 Rs.Tables("COUNTALL").Rows.Add(New Object() {"CL", "PIRY", 0})

			If Rs.HasChanges Then
				Dim AffectedDS As DataSet = Rs.GetChanges
				Dim ComBuilder As New OleDb.OleDbCommandBuilder(Dp)
				Dp.InsertCommand = ComBuilder.GetInsertCommand
				Dp.Update(AffectedDS, "COUNTALL")
			End If
	  else
وعندما ياتي الى هنا يعطي الخطا	 
		   NM = Convert.ToInt32(SearchRow("COUNT"))
		   NM = NM + 1
		   TextBox1.Text = NM
		End If

	End Sub

--------------------------------------------------------------------
الطريقة الاخرى

Con.ConnectionString = ConnString
		Con.Open()
		SQL = "select * from COUNTALL "
		Dp = New OleDb.OleDbDataAdapter(SQL, Con)
		Dp.SelectCommand.ExecuteNonQuery()
		Con.Close()

		Dp.Fill(Rs, "COUNTALL")

		Dim SearchRow() As DataRow = Rs.Tables("COUNTALL").Select("CODE='CL'")
		If (SearchRow Is Nothing) Then
			ايضا هنا يتجاهل هده العباره مه انو الجدول فاضي
			Con.Open()
			SQL = " insert into COUNTALL (CODE,NAME,COUNT) values('cl','PIRY',0)"
		   هنا في بعض الاحيان يعطي خطا في جملة النسيرت
			Dp = New OleDb.OleDbDataAdapter(SQL, Con)
			Con.Close()


			Else
نفس الخطاء	يعطى هنا
				NM = Convert.ToInt32(SearchRow("COUNT"))
			   NM = NM + 1
				TextBox1.Text = NM

		End If

	End Sub
-----------------------------------------------------
الطريقة الثالثه

Con.ConnectionString = ConnString
		Con.Open()
		SQL = "select * from COUNTALL where code =cl"
		Dp = New OleDb.OleDbDataAdapter(SQL, Con)
		Dp.Fill(Rs, "COUNTALL")
		Dp.SelectCommand.ExecuteNonQuery()
		Con.Close()
		'يقراء الرقم الموجود في جدول العدادات





		If Rs.Tables("COUNTALL").Rows.Count < 1 Then

			Con.Open()
			SQL = " insert into COUNTALL (CODE,NAME,COUNT) values('cl','PIRY',0)"
			Dp = New OleDb.OleDbDataAdapter(SQL, Con)
			Dp.SelectCommand.ExecuteNonQuery()
			Con.Close()


		Else
			NM = Rs.Tables("COUNTALL").Rows(0).Item(2)

			NM = NM + 1
			TextBox1.Text = NM

		End If

في الكود الاخير معترض على جملة الانسيرت

1145392391.gif
#2

اخواني خلاص ربنا رحمني بعد 48 ساعه

وانا اغير في الاسامي

زبط

بس اضفت حرف ee

قبل كل اسم ونجح

مع اني والله غيرت الاسامي اكثر من مره وما نجح

ياليت لو تشرحولى ليه لاالفيجول بيجيك هيك اخطاء

والله بسببي دا الخطاء كنت راح اهجر عالم البرمجه

اسفه اخواني

ترى الحل اللي زبط معي هو الحل الثالث

وان كنت اره انو غير فاعل للوضع المنفصل في مشكله التضارب

ارجو من الاخوه الخبراء ان يعطوني رايهم في الكود الاول

لانو اغلب الكتب بتنصح بالطريقه الاولى لحل التضارب

ارجو الافاده

1145392391.gif
#3

الحل الثالث هو بالفعل الصحيح و جميع الحلول الثلاثة هي في وضع منفصل لذا لن تساعد في عملية التضارب. لمنع عملية التضارب يجب استخدام عملية Transaction

#4

استخدم هذا الكود افضل في الكود الاول

Con.ConnectionString = ConnString
		Con.Open()
		SQL = "select * from COUNTALL"
		Dp = New OleDb.OleDbDataAdapter(SQL, Con)
		Dp.SelectCommand.ExecuteNonQuery()
		Con.Close()

		Dp.Fill(Rs, "COUNTALL")

		Dim SearchRow() As DataRow = Rs.Tables("COUNTALL").Select("CODE='CL'")
'		If (SearchRow Is Nothing) Then
		If Search.RowHasRows==false Then
#5

الاخ system down

شكرا لك لمرورك بس ياليت لو تشرح لى اشوي عن عملية عدم التضارب

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

يعمي موضوع Transaction لوتشرحلى عنه اشوي

ولو عندك متال يكون احسن

يعني لو ابغه اضيف صف هل الاحسن اني اضيفه الى الداتاسيت ثم بعد ذلك اعمل تحديث

والا اضيفه مباشر ات الى الداتا بيس الاصلية

نفس الموضوع في عملية التعديل على صف

الاخ karimsoft

شكرا لك لمرورك

بس تقريبا نفس الكود ال انتا كتبته انا استخدمته في نقطه اخر وماضبط

وهو التالي

Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged

		If TextBox1.Text = "0" Then
			TextBox1.Text = ""
		End If

		If TextBox1.Text <> "" Then
			Dim SearchRow() As DataRow = Rs.Tables("DTMain").Select("cl='textbox1.text'")
			If Not (SearchRow Is Nothing) Then
				TextBox2.Text = Convert.ToString(SearchRow("dmn"))
				'TextBox2.Text = SearchRow(0).Item(1)

			End If
		End If


	End Sub

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

1145392391.gif
#6

ارفق الفورما مع الجدو ل وسنعدل عليه ونقول اه السبب مع وضع الكود الجيد

#7

اوكي اخوي هدا الكود

عباره عن صفحه تعديل حساب

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

انا كنت واصل عن هدي النقطه

انو يدخل رقم ادا موجود يجيب اسمه في التكس بوكس التانيه

في حالة انو مايعرف الارقام

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

ملاحطه غير فقط موقع الداتا بيس

New_Folder.rar

1145392391.gif
#8
Dim SearchRow() As DataRow = Rs.Tables("DTMain").Select("cl='" & TextBox1.Text & "'")
If Not (SearchRow Is Nothing) Then
TextBox2.Text =SearchRow(0).ItemArray(1)
#9

السلام عليكم

يا أخواني أحسن الله اليكم , لا تستخدمون ExecuteNonQuery عندما يكون المطلوب هو استعلام عن البيانات Select Statement

هذا تضارب في المنطق السلوك ExecuteNonQuery يستخدم للإضافة و الحذف و التعديل فقط , وليس للإستعلام بتاتاً...

ثانياً : لا تقومون بفتح الإتصال عندما يكون العنصر DataAdapter هو المسؤول عن جلب البيانات..

كيف تقوم بفتح الاتصال لعنصر يفتح الاتصال بنفسه.

كذلك الامر ينطبق على غلق الاتصال..

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

 Dim ConnString As String = _
	"Provider=Microsoft.Jet.OLEDB.4.0;Data Source= " & _
	Application.StartupPath & "\sand.mdb"

تصحيح الكود بهذا الشكل:

			' Declare keyword variable.
			Dim KeyWord As Integer = CInt(TextBox1.Text)

			' Declare expression querey.
			Dim strExpr As String = "cl =" & KeyWord

			' Declare sorting key.
			Dim strSort As String = "cl"

			' Get a reference to the DTMain table.
			Dim dtEmp As DataTable = Rs.Tables("DTMain")

			' Select a subset of all DTMain, sorted on their cl column.
			Dim drows() As DataRow = dtEmp.Select(strExpr, strSort)

			' Loop through all rows and get column 1 which dmn
			For Each dr As DataRow In drows

				' Assign the dmn column value to the textbox.
				TextBox2.Text = dr(1).ToString

			Next

أو بطريقتكِ المختصرة بهذا الشكل:

 Dim SearchRow() As DataRow = Rs.Tables("DTMain").Select( _
			"cl =" & TextBox1.Text, "cl")

			For Each dr As DataRow In SearchRow
				' Assign the dmn column value to the textbox.
				TextBox2.Text = dr("dmn").ToString
			Next

بالتوفيق إن شاء الله.

تم تعديل هذه المشاركة بواسطة الغملاسي في 12 ديسمبر 2006 في 03:12

في المثال يتضح المقال

#10

الاخ العزيز الغملاسى

بارك الله فيك وجعل لك بكل حرف تكتبه مائة حسنه

بصراحه استفتدت في نقطتين لم اكن اعلم بهما من قبل

وهي ان الداتا ادابتر تفتح الاتصال لوحدها (يعني احاول في تقليل استخدامي لها لانها تشغل الخط )

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

وايضا عن استخدام جمله ExecuteNonQuery

بقى عندي شى واحد بس

هو ان الكود الاول الذي كتبته انا بالاعلى (اول كود من الاكواد الثلاثه)

هل هي الطريقه المثاليه في حالة اضافه صف جديد انا لا اقصد طريقه الاضافه بعينها

انا اقصد انه في التعديل هل اعدل بنفس الطريقه يعني اغير بس في جمله التعديل ويصبح التعديل الى الداتا سيت

ثم بعدل ذلك استدعي عبارة If Rs.HasChanges Then

واعدل على الداتا بيس الاصلية ام استخدم الطريقه التقليديه في التعديل

ايهما افضل لمنع التضارب من وجهت نظرك المنطقيه

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

على الداتا بيس دون الرجوع الى الداتا ست

اعذرني على طريقه شرحى بس علشان اتعلم الطريقه الاصح والاكثر منطقيه والاسلم في المستقبل

واسفة على الاطاله

1145392391.gif
#11

السلام عليكم

في الحقيقة ما عرفت اي كود بالضبط,فعرضي الكود ليتسنى للأخوة وانا البث في تحليله إن استطعنا

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

في المثال يتضح المقال

#12

شكرا اخ الغملاسي على ردك

بس عفوا

عندي استفسار عن اخر نقطه قلتها حو الكود التالي

Dim SearchRow() As DataRow = Rs.Tables("DTMain").Select( _
			"cl =" & TextBox1.Text, "cl")

			For Each dr As DataRow In SearchRow
				' Assign the dmn column value to the textbox.
				TextBox2.Text = dr("dmn").ToString
			Next

حاولت اجرب هدي الطريقه في ارجاع صف من جدول يحتوي على مفتاحين رئسين

كالتلى

Dim SearchRow1() As DataRow = Rs.Tables("COUNTALL").Select( _
			"EECODE =" & TextBox1.Text, "EECODE","EENAME=" & TextBox2.Text, "EENAME")

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

يعني حابه استرجع صف فيه مفتاحين رئسيين

1145392391.gif
#13
الغملاسي كتب:
السلام عليكم

في الحقيقة ما عرفت اي كود بالضبط,فعرضي الكود ليتسنى للأخوة وانا البث في تحليله إن استطعنا

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

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

والكودين هما

تعديل حساب 
 SQL = "update DTMain set dmn=('" & TextBox2.Text & "')where cl='" & TextBox1.Text & "'"
				Dp = New OleDb.OleDbDataAdapter(SQL, Con)
				Dp.SelectCommand.ExecuteNonQuery()
				MessageBox.Show("تم تعديل الحساب  ", "تنبيه", MessageBoxButtons.OK, MessageBoxIcon.Information)
				Me.Close()

الطريقة الاخرى

Dim SearchRow() As DataRow = Rs.Tables("DTMain").Select( _
			"cl =" & TextBox1.Text, "cl")

				SearchRow("dmn") = "TextBox2.Text"

Dim ComBuilder As New OleDb.OleDbCommandBuilder(DP)
DP.UpdateCommand = ComBuilder.GetUpdateCommand
DP.Update(RS, "DTMAIN")

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

اسفه على الاطاله

1145392391.gif
#14

السلام عليكم

رغم اني مش فاهم شو المقصود بالتضارب ؟ تضارب ماذا ؟

اقتباس
بس شو الاصح
بلا شك الاول هو الاقوى و الاصح

السبب : ان جملة التحديث حاضرة واضحة في وقت التصميم لا وقت التشغيل runtime

بالنسبة للسؤال السابق بشأن اكثر من ممرر في السلوك Select استخدمي المعامل AND أو OR حسب صرامة الشرط أو اعتمادة على قيمة من القيمتين.

على سبيل المثال:

 Dim SearchRow() As DataRow = Rs.Tables("DTMain").Select("cl= " & _
		Me.TextBox1.Text & " AND nof= " & Me.TextBox2.Text, "cl")

و الكود ككل كالتالي:

Private Sub TextBox1_TextChanged( _
	ByVal sender As System.Object, _
	ByVal e As System.EventArgs) _
	Handles TextBox1.TextChanged, TextBox2.TextChanged
		If TextBox1.Text = "" Or TextBox2.Text = "" Then Return
		Dim SearchRow() As DataRow = Rs.Tables("DTMain").Select("cl= " & _
		Me.TextBox1.Text & " AND nof= " & Me.TextBox2.Text, "cl")
		Me.TextBox3.Text = String.Empty
		For Each dr As DataRow In SearchRow
			TextBox3.Text = dr("dmn").ToString
		Next
	End Sub

بالتوفيق إن شاء الله.

تم تعديل هذه المشاركة بواسطة الغملاسي في 12 ديسمبر 2006 في 22:23

في المثال يتضح المقال

#15

مشكور ياخ اكتير

لو تعرف اجابتك قد ايش ريحتني

بس سوال اخير

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

يعني اتنين بدهم يعدلو على صف واحد او على نفس البيانات

او متلا قام مستخدم بقراءه بيانات في نفس الوقت مستخدم اخر قام بحدفها

شو بيحصل في هيك حاله

انا منشان هيك كتب الكودين

اقدر اعتمد على الاول مهما كان السبب يعني الطريقه المباشره بتفيد بهيك امور

اسفه على الاطاله بس منشان ترسخ المعلومه في دهني للابد

36cm7.gif
#16

السلام عليكم

اقتباس
انا منشان هيك كتب الكودين

اين ذلك لم أرى كودين في مشاركتكِ ؟

ربما انتي كتبتِ في غير المشاركة التي تقصدينها, اليس كذلك ؟

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

تم تعديل هذه المشاركة بواسطة الغملاسي في 12 ديسمبر 2006 في 22:40

في المثال يتضح المقال

#17

اخوي انا اقصد اخر طريقتين كتبتها لك لاستشيرك في الطر يقه الامثل

وقمت انتا متكرما بنصحي بالكود الاول ( مادا هل نسيت ذلك سريعا)

اي التعديل مباشره على قاعده البيانات

سوالى هو انني قرات في بعض الكتب

انه لحل مشكله دخول مستخدمين اثنين للتعديل على نفس البيانات

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

كما قرات من تلك الكتب فان الطريقه الثانيه ينصح باستخدامها

فهل الطريقه التى تفضلت انتا ونصحتني فيها تحل هده النقطه ام لا وللمعلوميه فان الطريقه التى نصحتني انتا فيها هي الطريقه الاول

اي التى قمت انا بكتابتها اولا في اخر مره طلبت منى ان اكتب الكود (إن شاء الله تدكرت)

1145392391.gif
#18

السلام عليكم

الذاكرة حاضرة ولله الحمد والمنه و الفضل.

لكن انتي (صاحبة السمو ) والسائلة ( sunbol )

فهل هذا يعني أن لديكِ معرفين في آنٍ واحد ؟

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

كمثلاً استراتيجية التضارب المشؤوم و التضارب المحمود و استراتيجية الاخر هو الاحق بالتحديث ,

ولها كذلك مصطلحات تحتاج الى مقالة بحالها, فإن مكن الله الاخوة او انا بكتابة شيء عن هذا الموضوع

ويسر لنا ذلك , لن نتردد إن شاء الله ابدًا.

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

في المثال يتضح المقال

#19

بالنسمه للاسم

صاحبة السمو هو اسمي انا

اما الاسم الاخر فهو اسم لاخي

ولكن للاسف نسيت ان ادخل باسمي انا لذلك حصل اللبس

اما موضوع التضارب فالذي انا فهمته مما كتبته انت ان الكود يشتخدم في مسائله التضارب

ولكل شي تقريبا

ولحل موضوع التضارب يجب اضافه شي على الكود

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

اتمنى ان يكون هدا ماقصدته انت او على الاقل هدا ما استنتجته انا من كلامك

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

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

1145392391.gif
#20

عفوا ياخ الغملاسي

بس الكود التى كتبته انت لم ينجح

Private Sub TextBox1_TextChanged( _
	ByVal sender As System.Object, _
	ByVal e As System.EventArgs) _
	Handles TextBox1.TextChanged, TextBox2.TextChanged
		If TextBox1.Text = "" Or TextBox2.Text = "" Then Return
		Dim SearchRow() As DataRow = Rs.Tables("DTMain").Select("cl= " & _
		Me.TextBox1.Text & " AND nof= " & Me.TextBox2.Text, "cl")
		Me.TextBox3.Text = String.Empty
		For Each dr As DataRow In SearchRow
			TextBox3.Text = dr("dmn").ToString
		Next
	End Sub

جربت ولم ينجح وايضا قمت بتغير علامه المساوه في عباره if الاولى وجهلها لاتساوي

ويضا لم ينجح معي

معلومه الحقل dmn

هو حقل رقمي وليس نصي

واريد استرجع هدا الحقل +1 في تيست بوكس 3

1145392391.gif
#21

الاخ الغملاسي

لا تتعب حالك

سوف اكتب جميع المطلوب وكيف انا قمت ببرمجته ثم ساطرح السوال تاني مره

فقط لتكون الرويه اوضح بالنسبه لك

1145392391.gif
#22

السلام عليكم

إليكِ المرفق , بالتوفيق إن شاء الله.

New_Folder.rar

في المثال يتضح المقال

#23

السلام عليكم

سوف اشرح هنا ما كنت قد برمجته و وماهو مطلوب الان

مشروعي حاليا عباره عن برنامج محاسبه

في احدي الصفحات كان يوجد تعديل حساب رئسي

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

يحتوي على cl رقمه وdmn اسمه

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

اما لمادا وضعت هده النقطه تاني مره

هو انه يوجد لدي صفحه اخرى المطلوب فيها اضافه حساب فرعي

تحتوي هده الصفحه على اربع تكس بوكس

اول اتنين منهم هي لكي اكتب رقم الحساب الرئسي وينعكس اسمه على التكس بوكس الثاني

ا بقراءه اسمه من جدول الحسابات الرئسه dtmain

المطلوب كالتالى

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

الجدول كالتالى countall يحتوي على code رقم الحساب الرئسي والمقصود فيه هنا رمزه

name اسم الحساب الرئسى

count عدد الحسابات عليه

هدا الجول يحتوي على مفتاحين رئسين هما الكود والاسم لانو ممكن هنا يكون في حسابان رئسيان بنفس الاسم مثل البنوك برقم 1 والبنوك برقم2

كما انه من الممكن ان يتكرر الكود مرتين او يتكرر الرقم مرتين لدلك من الافضل وضع مفتاحان رئسيان (لاتسالني لمادا لانو الموضوع يبغاله شرح طويل قد اشرحه لك في حالة اردت دلك)

كان المطلوب انه بمجرد كتابه رقم بالتكس بوكس 1 ينعكس اسمه من الجدول الاول وينعكس قيمه (العداد +1) في التكس بوكس 3 من الجدول الاخر (countall) سوف اقراء منه فقط قيمه العداد وبالطبع في هدا الجدول يجب ان يكون معي المفتاحين الرئسين لكي اوصل للعداد وهدان المفتاحين هما التكس بوكس واح واتنين

يعني الموضوع مرتبط هنا بالحدث التغير بالنسبه للتكس بوكس واحد

انا فكرت انو اعمل حدث تغير اخر للتكس بوكس 2 ومنه استرجع قيمه العداد بس هنا انا محتاجه لمفتاحين رئسيين واعمل عليهما استرجاع الصف ( هدا كان سوالى الاخير)

شايف كيف الموضوع طويل واللفه عريضه لا تسالنى ليش لانو الموضوع اكبر اشوي من ان اشرحه هنا

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

اسفه على الاطاله وايضا اسفه لاني ضيعت وقتك على الفاضي

للعلم البرنامج الدي ارسلته انت يعمل بصوره صحيحه ولكن لم يكن هدا هو المطلوب

للتعامل مع الجدول الثاني count allافترض انه يحتوي على اكثر من ريكورد وليس واحد كما هو لديك

واسفه على ضاعت وقتك

1145392391.gif

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

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

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…