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

السؤال

نشر

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

تحيه طيبه للجميع

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

كيف ممكن اضافة هذا الفكشن :

    public function insertPhoto($itm)  {
        $stmt = $this->pdo->prepare('INSERT INTO photos( 
                                            photo_url 
                                           
                                     
                                             ) 

                                        VALUES(
                                            :photo_url
                                         
                                     
                                            )');

        $result = $stmt->execute(
                            array('photo_url' => $itm->photo_url,
                                   
                                  ) );
        
        return $result ? true : false;
    }

في هذا الكلاس:

<?php

 


  $controllerPhoto = new ControllerPhoto();


  $arrPhotos = array();




  if(count($arrPhotos) > 0) {
      for($ind = 0; $ind < count($arrPhotos); $ind++) {
          $photo = new Photo();
  
          $photo->photo_url = $arrPhotos[$ind];
 
          $controllerPhoto->insertPhoto($photo);
      }
  }



  function sanitize($key) {
      $val = "";
      if( !empty($_POST[$key]) )
        $val = $_POST[$key];

      return $val;
  }









?>

 

 

مع العلم اني قمت بالتالي ولكن لم ينجح :

<?php




  $controllerPhoto = new ControllerPhoto();
  $extras = new Extras();





  $arrPhotos = array();




  if(count($arrPhotos) > 0) {
      for($ind = 0; $ind < count($arrPhotos); $ind++) {
          $photo = new Photo();
  
          $photo->photo_url = $arrPhotos[$ind];
 
          insertPhoto($itm)->insertPhoto($photo);
      }
  }
  function insertPhoto($itm)  {
    $stmt = $this->pdo->prepare('INSERT INTO photos( 
                                        photo_url 
                                       
                                 
                                         ) 

                                    VALUES(
                                        :photo_url
                                     
                                 
                                        )');

    $result = $stmt->execute(
                        array('photo_url' => $itm->photo_url,
                               
                              ) );
    
    return $result ? true : false;
}



  function sanitize($key) {
      $val = "";
      if( !empty($_POST[$key]) )
        $val = $_POST[$key];

      return $val;
  }









?>

وبعض المحاولات المختلفه ايضا لم تنجح

ما هو الخطاء او كيف يمكن عمل ذلك والوصول الى الفكشن insertPhoto($itm)  في هذا الكلاس

Recommended Posts

  • 1
نشر

ليس لديك أي كلاس ليتم إضافة الدالة إليه , لذلك يمكنك إنشاء كلاس بهذا الشكل 

<?php
class ControllerPhoto {
	
	public $pdo; 
	
	function __construct($pdo){
		$this->pdo = $pdo // الأستعلام الخاص بقاعدة البيانات
	}
	function insertPhoto($itm)  {
		$stmt = $this->pdo->prepare('INSERT INTO photos(photo_url) VALUES(:photo_url)');

		$result = $stmt->execute(array('photo_url' => $itm->photo_url,));
		
		return $result ? true : false;
	}

	function sanitize($key) {
		$val = "";
		if( !empty($_POST[$key]) )
		$val = $_POST[$key];

		return $val;
	}
}

و من ثم تمرير متغير pdo$ الخاص بالإتصال بقاعدة البيانات , ومن ثم يمكنك استدعاء الدالة بهذا الشكل 

$controllerPhoto->controllerPhoto($photo);

فيكون كامل الكود بهذا الشكل 

<?php
class ControllerPhoto {
	
	public $pdo; 
	
	function __construct($pdo){
		$this->pdo = $pdo // الأستعلام الخاص بقاعدة البيانات
	}
	function insertPhoto($itm)  {
		$stmt = $this->pdo->prepare('INSERT INTO photos(photo_url) VALUES(:photo_url)');

		$result = $stmt->execute(array('photo_url' => $itm->photo_url,));
		
		return $result ? true : false;
	}

	function sanitize($key) {
		$val = "";
		if( !empty($_POST[$key]) )
		$val = $_POST[$key];

		return $val;
	}
}
$controllerPhoto = new ControllerPhoto();
$controllerPhoto->controllerPhoto($photo);
$extras = new Extras();
$arrPhotos = array();
if(count($arrPhotos) > 0) {
  for($ind = 0; $ind < count($arrPhotos); $ind++) {
	  $photo = new Photo();

	  $photo->photo_url = $arrPhotos[$ind];

	  insertPhoto($itm)->insertPhoto($photo);
  }
}
?>

 

  • 0
نشر
بتاريخ منذ ساعة مضت قال بلال زيادة:

ليس لديك أي كلاس ليتم إضافة الدالة إليه , لذلك يمكنك إنشاء كلاس بهذا الشكل 


<?php
class ControllerPhoto {
	
	public $pdo; 
	
	function __construct($pdo){
		$this->pdo = $pdo // الأستعلام الخاص بقاعدة البيانات
	}
	function insertPhoto($itm)  {
		$stmt = $this->pdo->prepare('INSERT INTO photos(photo_url) VALUES(:photo_url)');

		$result = $stmt->execute(array('photo_url' => $itm->photo_url,));
		
		return $result ? true : false;
	}

	function sanitize($key) {
		$val = "";
		if( !empty($_POST[$key]) )
		$val = $_POST[$key];

		return $val;
	}
}

و من ثم تمرير متغير pdo$ الخاص بالإتصال بقاعدة البيانات , ومن ثم يمكنك استدعاء الدالة بهذا الشكل 


$controllerPhoto->controllerPhoto($photo);

فيكون كامل الكود بهذا الشكل 


<?php
class ControllerPhoto {
	
	public $pdo; 
	
	function __construct($pdo){
		$this->pdo = $pdo // الأستعلام الخاص بقاعدة البيانات
	}
	function insertPhoto($itm)  {
		$stmt = $this->pdo->prepare('INSERT INTO photos(photo_url) VALUES(:photo_url)');

		$result = $stmt->execute(array('photo_url' => $itm->photo_url,));
		
		return $result ? true : false;
	}

	function sanitize($key) {
		$val = "";
		if( !empty($_POST[$key]) )
		$val = $_POST[$key];

		return $val;
	}
}
$controllerPhoto = new ControllerPhoto();
$controllerPhoto->controllerPhoto($photo);
$extras = new Extras();
$arrPhotos = array();
if(count($arrPhotos) > 0) {
  for($ind = 0; $ind < count($arrPhotos); $ind++) {
	  $photo = new Photo();

	  $photo->photo_url = $arrPhotos[$ind];

	  insertPhoto($itm)->insertPhoto($photo);
  }
}
?>

 

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

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

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

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

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   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.

  • إعلانات

  • تابعنا على



×
×
  • أضف...