المساعد الشخصي الرقمي

مشاهدة النسخة كاملة : دروس تعامل مع إطار العمل CodeIgniter الدرس مفصل الرابع



romaissa
11-01-2013, بتوقيت غرينيتش 04:50 PM
http://www.dzbatna.com/images/icons/iconrote.gif ط¯ط±ظˆط³ طھط¹ط§ظ…ظ„ ظ…ط¹ ط¥ط·ط§ط± ط§ظ„ط¹ظ…ظ„ CodeIgniter ط§ظ„ط¯ط±ط³ ط§ظ„ط±ط§ط¨ط¹ (http://www.dzbatna.com/t2333805/)




http://upload.dzbatna.net/upfiles/JRg54051.png

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

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

http://upload.dzbatna.net/upfiles/J6Z54823.png

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

http://www.dzbatna.com/attachments/710507d1380189642-1.jpg

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

رمز 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 (http://ellislab.com/codeigniter/user-guide/database/examples.html)


http://upload.dzbatna.net/upfiles/J6Z54823.png

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

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

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

http://www.dzbatna.com/attachments/710508d1380189648-2.jpg


http://upload.dzbatna.net/upfiles/J6Z54823.png

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

http://www.dzbatna.com/attachments/710509d1380190586-3.jpg


http://upload.dzbatna.net/upfiles/J6Z54823.png


أحين نروح على ملف 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>


http://upload.dzbatna.net/upfiles/J6Z54823.png

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

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

رمز 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>

http://www.dzbatna.com/attachments/710510d1380190820-4.jpg

http://upload.dzbatna.net/upfiles/J6Z54823.png

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

رمز 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>


http://upload.dzbatna.net/upfiles/J6Z54823.png

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




http://www.dzbatna.com/attachments/710511d1380191014-5.jpg

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

Database Quick Start : CodeIgniter User Guide (http://ellislab.com/codeigniter/user-guide/database/examples.html)

http://upload.dzbatna.net/upfiles/mA854984.png







ألعاب الأندرويد مجانا و حصريا (http://www.apotox.info/forum)


الملفات المرفقة
http://www.traidnt.net/vb/images/attach/zip.gif test.zip (http://www.traidnt.net/vb/attachments/710512d1380191020-test.zip) (1.5 كيلوبايت, عدد مرات المشاهدة 7 مرة)


https://fbcdn-sphotos-d-a.akamaihd.net/hphotos-ak-ash4/482113_236967293114455_1193518507_n.png (http://www.dzbatna.com)
©المشاركات المنشورة تعبر عن وجهة نظر صاحبها فقط، ولا تُعبّر بأي شكل من الأشكال عن وجهة نظر إدارة المنتدى (http://www.dzbatna.com)©

استعمل مربع البحث في الاسفل لمزيد من المواضيع


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