ط¯ط±ظˆط³ طھط¹ط§ظ…ظ„ ظ…ط¹ ط¥ط·ط§ط± ط§ظ„ط¹ظ…ظ„ CodeIgniter ط§ظ„ط¯ط±ط³ ط§ظ„ط±ط§ط¨ط¹





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

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



ندخل ملف models ونعمل ملف PHP ونعطيه اي أسم انا سميته dbmsg



نعمل كلاس تابع لكلاس الاطار

رمز PHP:
<code style="white-space:nowrap"> <code> <?php

class Dbmsg extends CI_Model{


function
msg(){
# طريقة get
# تعمل لك SELECT * FROM
//$query = $this->db->get('lastpost');
########################################
## هذه طريقة الثانية
$query = $this->db->query('SELECT * FROM `lastpost`');
## تحقق اذا كان في ناتج يرجع القيم
if ($query->num_rows() > 0)
{

##return $query->result_array();
## يرجعها لك مثال
## $row&#91;'title'&#93;;
###############################
## اما
## result();
## يرجعها لك
## $row->title;
## وعندنا
##row()
## يرجعلك أول ناتج فقط
return $query->result();
}


#########################################
# فنكشن مساعد
/*
هذه ترجعها لك على طريقة
-> object
$row = $query->first_row()
$row = $query->last_row()
$row = $query->next_row()
$row = $query->previous_row()

تريدها ترجعلك على على مصفوفة
('array')
$row = $query->first_row('array')
$row = $query->last_row('array')
$row = $query->next_row('array')
$row = $query->previous_row('array')
###################################
عدد الصفوف
$query->num_rows()
عدد الخانات
$query->num_fields()
تحرير الذاكرة
$query->free_result()
*/
}## نهاية الفنكشن

}## نهاية الكلاس
</code> </code>


Database Quick Start : CodeIgniter User Guide




الان ماذاه عملنا

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

الان وضع معلومات الاتصال
ندخل على ملف \config ودخل هذه الملف تجد database.php






الان نروح ملف config مره ثانية وندخل على ملف autoload.php
نحمل مكتبة قاعدة البيانات







أحين نروح على ملف controllers

رمز PHP:
<code style="white-space:nowrap"> <code> ## تحميل موديل قاعدة البيانات
$this->load->model('dbmsg');
</code> </code>

وبعد ماحملنا الي عملنا نشغل الفنكشن الي عملنا كمان

رمز PHP:
<code style="white-space:nowrap"> <code> //هذه المصفوفة من قاعدة البيانات
$data&#91;'news'&#93; = $this->dbmsg->msg();
</code> </code>

هذه الكود code كامل مع الدروس القديمة

رمز PHP:
<code style="white-space:nowrap"> <code> <?php
## هذه السطر خاص للحماية
if ( ! defined('BASEPATH')) exit('No direct script access allowed');

// بداء الكلاس
class Test extends CI_Controller {

## بداء الفنكشن
public function index()
{

## تحميل موديل قاعدة البيانات
$this->load->model('dbmsg');
// هذه المصفوفه الدرس مفصل الثاني
## $testdata&#91;'title'&#93;;
$data&#91;'testdata'&#93; = array(
'title' => 'My Title',
'heading' => 'My Heading',
'message' => 'My Message'
);
//هذه المصفوفة من قاعدة البيانات
$data&#91;'news'&#93; = $this->dbmsg->msg();

## نحمل صفحة الفيو الي عملناها
$this->load->view('head',$data);
$this->load->view('body',$data);
$this->load->view('footer');
}

## صفحة معلومات عنا
public function about()
{
## وضع المتغيرات في مصفوفه
$data = array(
'title' => 'My Title',
'heading' => 'My Heading',
'message' => 'My Message'
);
## نحمل صفحة الفيو الي عملناها
$this->load->view('head',$data);
$this->load->view('about');
$this->load->view('footer');
}

## صفحة الاتصا بنا
public function contact()
{
## وضع المتغيرات في مصفوفه
$data = array(
'title' => 'My Title',
'heading' => 'My Heading',
'message' => 'My Message'
);
## نحمل صفحة الفيو الي عملناها
$this->load->view('head',$data);
$this->load->view('contact');
$this->load->view('footer');
}

}
## نهاية الكلاس
</code> </code>




أيش باقي نعرضها في ملف الفيو

هي مصفوفه المفروض تعرف كيف تعرضها
اعطيك مثال

رمز PHP:
<code style="white-space:nowrap"> <code> <?php
if(!$news){echo " <h1>للاسف لا توجد نتائج</h1>";}
foreach (
$news as $news_item): ?>
<div class="span3">
<h2><?php echo $news_item->title ?></h2>
<p>
<?php echo $news_item->msg ?>
</p>
<p><a class="btn" href="#">View details &raquo;</a></p>
</div><!--/span-->
<?php endforeach ?>
</code> </code>

كود code كامل مع الدروس القديمة
رمز PHP:
<code style="white-space:nowrap"> <code>
<div class="container-fluid">
<div class="row-fluid">
<div class="span12">
<div class="hero-unit">
<h1>أهلا وسهلاً بكم في :: TRAIDNT FORUM :: . </h1>
<p>ذا كانت هذه الزيارة الأولى أو لديك الرغبة بالانضمام لأعضاء معهد ديزاد باتنة فيجب الاطلاع على خصوصية ديزاد باتنة فربما بقائك زائر افضل لك من الانضمام بحيث أن قوانين ديزاد باتنة لا تتناسب مع اهتماماتك .


التسجيل في مجتمع ديزاد باتنة بشكل مباشر - التفاصيل
</p>
<p><a href="#" class="btn btn-primary btn-large">Learn more &raquo;</a></p>
</div>
<?php
if(!$news){echo " <h1>للاسف لا توجد نتائج</h1>";}
foreach (
$news as $news_item): ?>
<div class="span3">
<h2><?php echo $news_item->title ?></h2>
<p>
<?php echo $news_item->msg ?>
</p>
<p><a class="btn" href="#">View details &raquo;</a></p>
</div><!--/span-->
<?php endforeach ?>
</div><!--/row-->
</div><!--/span-->
</div><!--/row-->
</code> </code>





وهذه القاعدة البيانات الي انا عملت عليها المثال

رمز PHP:
<code style="white-space:nowrap"> <code> -- phpMyAdmin SQL Dump
-- version 4.0.4.1
-- http://www.phpmyadmin.net
--
--
Host: 127.0.0.1
-- Generation Time: Sep 26, 2014 at 12:21 PM
-- Server version: 5.6.11
-- PHP Version: 5.5.3

SET SQL_MODE
= "NO_AUTO_VALUE_ON_ZERO";
SET time_zone = "+00:00";


/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;

--
--
Database: `test`
--
CREATE DATABASE IF NOT EXISTS `test` DEFAULT CHARACTER SET latin1 COLLATE latin1_swedish_ci;
USE `
test`;

DELIMITER $$
--
--
Procedures
--
CREATE DEFINER=`root`@`localhost` PROCEDURE `test_multi_sets`()
DETERMINISTIC
begin
select user
() as first_col;
select user() as first_col, now() as second_col;
select user() as first_col, now() as second_col, now() as third_col;
end$$

DELIMITER ;

-- --------------------------------------------------------

--
--
Table structure for table `lastpost`
--

CREATE TABLE IF NOT EXISTS `lastpost` (
`
id` int(11) NOT NULL AUTO_INCREMENT,
`
title` varchar(200) NOT NULL,
`
msg` text NOT NULL,
PRIMARY KEY (`id`)
)
ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=4 ;

--
--
Dumping data for table `lastpost`
--

INSERT INTO `lastpost` (`id`, `title`, `msg`) VALUES
(1, 'رونالدو يصعد للمركز الخامس في قائمة أفضل الهدافين بتاريخ الريال', '\nأكد رئيس نادي ريال مدريد الإسباني فلورنتينو بيريز اليوم الأحد في الجمعية العمومية الاعتيادية للنادي أنه لا يوجد أحد في مجلس الإدارة يؤثر في قرارات المدير الفني الإيطالي كارلو أنشيلوتي خاصة فيما يتعلق بمن يتوجب عليه حراسة عرين الفريق.\n\nوقال فلورنتينو ردا على مداخلات أحد الأعضاء الذي تحدث عن وجود "أيادي خفية" تلعب ضد الحارس إيكر كاسياس قائد الفريق "لا أحد يحق له اخبار مدرب بمن يجب أن يلعب ومن لا، خاصة في حالة كاسياس الذي يمتلك حب كل الادارة والجماهير، بالنسبة لي هو أفضل حارس في العالم".\n\nوأضاف المسئول "أرغب في تبديد كل الشكوك، لم يتحدث أحد في ريال مدريد مع المدرب بخصوص هذا الموضوع، نحن سعداء بكاسيا'),
(
2, 'أكد رئيس نادي ريال مدريد الإسباني فلورنتينو بيريز اليوم ا', '\nأكد رئيس نادي ريال مدريد الإسباني فلورنتينو بيريز اليوم الأحد في الجمعية العمومية الاعتيادية للنادي أنه لا يوجد أحد في مجلس الإدارة يؤثر في قرارات المدير الفني الإيطالي كارلو أنشيلوتي خاصة فيما يتعلق بمن يتوجب عليه حراسة عرين الفريق.\n\nوقال فلورنتينو ردا على مداخلات أحد الأعضاء الذي تحدث عن وجود "أيادي خفية" تلعب ضد الحارس إيكر كاسياس قائد الفريق "لا أحد يحق له اخبار مدرب بمن يجب أن يلعب ومن لا، خاصة في حالة كاسياس الذي يمتلك حب كل الادارة والجماهير، بالنسبة لي هو أفضل حارس في العالم".\n\nوأضاف المسئول "أرغب في تبديد كل الشكوك، لم يتحدث أحد في ريال مدريد مع المدرب بخصوص هذا الموضوع، نحن سعداء بكاسيا'),
(
3, 'رئيس ريال مدريد: لا أحد يؤثر على قرارات أنشيلوتي', '\nأكد رئيس نادي ريال مدريد الإسباني فلورنتينو بيريز اليوم الأحد في الجمعية العمومية الاعتيادية للنادي أنه لا يوجد أحد في مجلس الإدارة يؤثر في قرارات المدير الفني الإيطالي كارلو أنشيلوتي خاصة فيما يتعلق بمن يتوجب عليه حراسة عرين الفريق.\n\nوقال فلورنتينو ردا على مداخلات أحد الأعضاء الذي تحدث عن وجود "أيادي خفية" تلعب ضد الحارس إيكر كاسياس قائد الفريق "لا أحد يحق له اخبار مدرب بمن يجب أن يلعب ومن لا، خاصة في حالة كاسياس الذي يمتلك حب كل الادارة والجماهير، بالنسبة لي هو أفضل حارس في العالم".\n\nوأضاف المسئول "أرغب في تبديد كل الشكوك، لم يتحدث أحد في ريال مدريد مع المدرب بخصوص هذا الموضوع، نحن سعداء بكاسيا');

/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
</code> </code>




الان الناتج العرض من قاعدة البيانات





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

Database Quick Start : CodeIgniter User Guide








الملفات المرفقة [TR]
test.zip (1.5 كيلوبايت, عدد مرات المشاهدة 7 مرة) [/TR]



©المشاركات المنشورة تعبر عن وجهة نظر صاحبها فقط، ولا تُعبّر بأي شكل من الأشكال عن وجهة نظر إدارة المنتدى©