• 0
MouathPHP

مشكلة في كلاس Database

سؤال

السلام عليكم ورحمة الله وبركاته ،،

 

 

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

 

وعملت داخل الكلاس وظائف متعدةة ،،

 

وجميعها شغالة ولكن جربت أن اضع الفنكشن select داخل الأمر mysqli_num_rows() .. ما يجي للأسف ولا أعلم لماذا ،،

 

 

هذا الكود للتوضيح:

<?phpclass Database {		  var $db_host = "localhost";  var $db_user = "root";  var $db_pass = "root";  var $db_name = "rame";  var $connect;       public function __construct() {	  	 $connect = mysqli_connect($this->db_host,$this->db_user,$this->db_pass,$this->db_name) or die('Connection Error!');	 $this->connect = $connect;  	    }    function select($table) {	  	$select = mysqli_query($this->connect,"SELECT * FROM $table");  	    }      function insert($table,$values,$where) {	  	$insert = mysqli_query($this->connect,"INSERT INTO $table VALUES($values) $where");	    }    function update($table,$values,$where) {	  	$update = mysqli_query($this->connect,"UPDATE $table SET $values $where");	    }    function delete($table,$where) {	  	$delete = mysqli_query($this->connect,"DELETE FROM $table $where");	    }  }$test = new Database;$ss = $test->select('users');$num= mysqli_num_rows($ss);echo $num;	?>

وهذا الخطأ اللي يجيني:

Warning: mysqli_num_rows() expects parameter 1 to be mysqli_result, null given in C:\AppServ\www\index.php on line 55

 

 

 

أتمنى المساعدة للضرورة،

 

 

وشكرا للجميع، :)

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

7 إجابة على هذا السؤال .

  • 0

جميل جدا

mysqli_num_rows()

تحتاج الى الكونيكشن وهو في هذه الحالة $connect

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

 

لذلك يتعين عليك انشاء دالة جديدة وظيفتها احتساب عدد الصفوف في اي جدول بنفس الطريقة التي تقوم بها لـ select,update,delete

function count_table($table) {$delete = mysqli_num_rows($this->connect,"SELECT * FROM $table");}

والامر يصبح بسيط الان مع الكائنات

$ss_count = $test->count_table('users');
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

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

 

لكن  هل توجد طريقة أخرى لفك الحماية ؟

 

يعني أحس انو يكون أفضل ،،

 

لأن مثلا لو عملت استعلام .. وابغى اعرف عدد الإستعلام ،،

 

يسير يسوي استعلام واحد فقط ،،

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

خلاص أخي شكرا لك ،،

 

لقد أفدتني حقا وتعبتك من كثر مشاكلي ،،

 

الله يجزاك خير ويعطيك العافية، :)

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

ترا الطريقة لم تنجح أخي الكريم ،،

 

نفس المشكلة ،،

 

لا زالت المحاولات جارية،

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

لقد استعملت هذه الطريقة ونجحت ،، ولكن كنت أتمنى أنجد طريقة أسهل من هذه وايضا عملية

<?php/*+-------------------- ## DATABASE FUNCTIONS ## --------------------+*/class Database {		  var $db_host = "localhost";  var $db_user = "root";  var $db_pass = "root";  var $db_name = "rame";  var $connect;        function __construct() {	  	 $connect = mysqli_connect($this->db_host,$this->db_user,$this->db_pass,$this->db_name) or die('Connection Error!');	 $this->connect = $connect;  	  	  mysqli_set_charset($connect,'utf8');	  mysqli_query($connect,"set character_set_server='utf8'");	  mysqli_query($connect,"SET NAMES 'utf-8'");  }    function select($table,$where,$limit) {	  	$select = mysqli_query($this->connect,"SELECT * FROM $table $where $limit");  	    }      function insert($table,$values,$where) {	  	$insert = mysqli_query($this->connect,"INSERT INTO $table VALUES($values) $where");	    }    function update($table,$values,$where) {	  	$update = mysqli_query($this->connect,"UPDATE $table SET $values $where");	    }    function delete($table,$where) {	  	$delete = mysqli_query($this->connect,"DELETE FROM $table $where");	    }    function num($table,$where) {		$select = mysqli_query($this->connect,"SELECT * FROM $table $where");   	$num 	= mysqli_num_rows($select);	    }    function fetch($query) {		$val = mysqli_fetch_array($query);	    }    function protect($value) {	  	$values = mysqli_real_escape_string($this->connect,$value);	    }    function close() {	  	  $close = mysqli_close($this->connect);	    }  }$test = new Database;$ss = $test->num('users','');?>

على العموم أشكرك :)

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

يوجد طرق اخرى بالطبع ,

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

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

شكرا ع النصيحة :)

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

من فضلك سجل دخول لتتمكن من التعليق

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



سجل دخولك الان

  • يستعرض القسم حالياً   0 members

    لا يوجد أعضاء مسجلين يشاهدون هذه الصفحة .