اذهب إلى المحتوى

السؤال

نشر

لدي استفسار لوتكرمتو 

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

بمعنى انا لدي الجدول التالي :

conversation table : 

--------------------------------------------------------------
id |topic_id   | user_send_id |  user_Received_id| topic
---------------------------------------------------------------
1  |    325     |   2          | 2                | مرحبا لدى عدة اسئله على هذا الموضوع
---------------------------------------------------------------
2  |    325     |   1          | 2                | مرحبا اخى الكريم هل لديك وقت كافى  
  ---------------------------------------------------------------
3  |    325     |   2          | 1                | هل نستطيع التحدث في وقت مختلف
---------------------------------------------------------------
4  |    325     |   2          | 1                |   انا مشغول الان  

 

الجدول عباره عن محادثه بين مستخدمين مختلفين  وكل مستخدم يمتلك id  منفرد له ما ارغب القيام به هو اذا كان user_send_id مساوي لـ user_received_id  لا ترجعهم الى مع وجود شرط مختلف والى هو 

wehere user_Received_id =?

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

 

الكود حاليا يعمل كالتالي وهو يجلب لي سجلات محدده ولكن الان حتى المتشابه في الـ id  يجلبهم  محتاج اضافة شرط اضافي ولكني لا اعلم كيف يمكن عمل ذلك

<?php


include 'con.php';


 	 $user_Received_id= $_GET["user_Received_id"];

$sql = "SELECT  * FROM  conversation WHERE user_Received_id = ?";

$stmt = $con->prepare($sql); 

$stmt->bind_param("s",$user_Received_id);

$stmt->execute();

$result = $stmt->get_result();

 
//$result = $con->query($sql);
 
if ($result) {
 
 
	 while($row[] = $result->fetch_assoc()) {
	 
	 $item = $row;
	 
	 $json = json_encode($item, JSON_NUMERIC_CHECK);
	 
	 }
 
} else {
  
   echo "No Data Found.";
}
 echo $json;
$con->close();

?>

 

Recommended Posts

  • 1
نشر (معدل)

جزانا وإياكم خير الجزاء 

عند استخدام ال Prepared statements لا يوجد خظر الحقن لأن سيرفر الداتا بيز يقوم بفحص ال paramaters المرسله مع ال query فلا يوجد حقن

الحقن يكون في حالة أنه لم تستخدم ال  Prepared statements و bind parmaters 

مثلا في هذه الحالة


$user_Received_id= $_GET["user_Received_id"];

$sql = "SELECT  * FROM  conversation WHERE user_Received_id = $user_Received_id";
 
$result = $con->query($sql);

 

تم التعديل في بواسطة محمد صقر3
  • 0
نشر
بتاريخ 11 دقائق مضت قال محمد صقر3:

يمكن إضافة شرط أن ال user_received_id  لا يساوي user_send_id 

تكون جملة ال query كالتالي


$sql = "SELECT  * FROM  conversation WHERE  user_send_id != user_Received_id and user_Received_id = ?";

 

شاكر لك اخي العزيز اول مره استعمل هذا الطريقة معلومه جديده علي 

زادك الله من واسع فضله 

 

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

  • 0
نشر
بتاريخ 23 دقائق مضت قال محمد صقر3:

جزانا وإياكم خير الجزاء 

عند استخدام ال Prepared statements لا يوجد خظر الحقن لأن سيرفر الداتا بيز يقوم بفحص ال paramaters المرسله مع ال query فلا يوجد حقن

الحقن يكون في حالة أنه لم تستخدم ال  Prepared statements و bind parmaters 

مثلا في هذه الحالة



$user_Received_id= $_GET["user_Received_id"];

$sql = "SELECT  * FROM  conversation WHERE user_Received_id = $user_Received_id";
 
$result = $con->query($sql);

 

شاكر لك اخي الكريم

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...