الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

مساعدة في Phpmyadmin و Foreign Key

بدأه فلسطيني جريء في 8 ديسمبر 2008 · 10 رد · 11,438 مشاهدة · في قواعد بيانات MySQL
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

اخواني اني احتاج للمساعدة في هذا الموضوع

فانا ما اعرف كيف اعمل

foreign key

على phpmyadmin

شكلو ما في

foreign key

فيه

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

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

تم تعديل هذه المشاركة بواسطة فلسطيني جريء في 8 ديسمبر 2008 في 04:17

#2

بســم الله الـرحمــن الرحيــم

لإستخدام Foreign Key :

لدينا الجدولين التاليين :::

CREATE TABLE `users`.`city` ( `city_id` INT( 3 ) NOT NULL ,

`city_name` VARCHAR( 30 ) NOT NULL ,

PRIMARY KEY ( `city_id` ) ) ENGINE = MYISAM;

CREATE TABLE `users`.`user` ( `user_id` INT( 5 ) NOT NULL ,

`city_id` INT( 3 ) NOT NULL ,

PRIMARY KEY ( `user_id` ) ) ENGINE = MYISAM;

2- تحويل الجداول لنوع InnoDB . كما في الصورة التالية ثم اضغط Go

post-124807-1228755722_thumb.jpg

وطبق نفس الطريقة للجدول الآخر user .

3- اضافة Index للحقل city_id وهذا الحقل سيكون Foreign Key للجدول city .

post-124807-1228755903_thumb.jpg

4-اضغط على Relation Veiw في نفس النافذة للجدول user .

post-124807-1228756129_thumb.jpg

5- لنفس احقل السابق سنحدد الحقل الذي سيربط معه في الجدول city , بنفس الطريقة كما في الصورة التالية :

post-124807-1228757152_thumb.jpg

ثم اضغط Save .

وهكذا ستكون قد ربطت الجدولين باستخدام الـ Foreign Key ....

post-124807-1228757331_thumb.jpg

ملحوظة ... لابد أن الجداول تكون من النوع InnoDB لأن MyISAM لاتدعم الـ Foreign Key . وهكذا فإن كل عملية Delete أو Update ستنفذ على جميع الجداول المربوطة مع بعضها .

4

I Say Nothing

#3

مشكووووووووووووووووووووووووووووووور

#4

ما شاء الله

و الله انا كان عندى سؤال بخاف اعرضه هنا

لان منتدى سيكول نايم جدااا

بس مشكور اخى

جزاك الله كل خير :)

00020309t.gif

1958_1963.gif
#5

السلام عليكم...

شرحك اكثر من رائع بس عندي مشكلة في ان الخيار InnoDB مش موجود كيف افعلة

#6
عمار السليماني كتب:

السلام عليكم...

شرحك اكثر من رائع بس عندي مشكلة في ان الخيار InnoDB مش موجود كيف افعلة

أخي عمار السليماني

كنت ابحث في نفس هذا الموضوع وفعلا كان الخيار غير مدرج في القائمة والحل كما بحثت عنه

هو انه يجب عليك حذف برنامج الاباتش واعادة تنزيله مجددا مع تفعيل الخيار innodb اثناء تنزيل البرنامج

وإليك الرابط التالي للشرح

http://www.mashro3na.com/articles.php?article_id=38

1159521027.jpg

الا بذكر الله تطمئن القلوب

#7

السلام عليكم

عندي مشكلة و هي أن بعض الخاصيّات لا تظهر مثل خاصية ربط الجداول

Certaines fonctionnalités ayant trait aux tables reliées sont désactivées. Pour une analyse du problème

$cfg['Servers'][$i]['pmadb'] ...	OK
$cfg['Servers'][$i]['relation'] ...	en erreur [ Documentation ]
Fonctions relationnelles: désactivé

$cfg['Servers'][$i]['table_info'] ...	en erreur [ Documentation ]
Affichage infobulle: désactivé

$cfg['Servers'][$i]['table_coords'] ...	en erreur [ Documentation ]
$cfg['Servers'][$i]['pdf_pages'] ...	en erreur [ Documentation ]
Génération de schémas en PDF: désactivé

$cfg['Servers'][$i]['column_info'] ...	en erreur [ Documentation ]
Commentaires de colonnes: désactivé
Requêtes en signets: désactivé
Transformation: désactivé

$cfg['Servers'][$i]['history'] ...	en erreur [ Documentation ]
Historique SQL: désactivé

$cfg['Servers'][$i]['designer_coords'] ...	en erreur [ Documentation ]
Concepteur: désactivé

أرجو المساعدة :blink:

و شكرا

1110917454.jpg
#8

السلام عليكم

شرح واضح :) تشكر عليه

فقط لدي سؤال :

آخر صورة التي توضح علاقة الـ user بـ city كيف أصل إليها ؟

post-124807-1228757331.jpg

#9

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

@"najla" : عليك تفعيل الـ desinger mode في phpmyadmin حتى تستطعي الدخول إلى هذه النافذة

يمكنك تفعيله كالتالي :

1- الدخول إلى ملف الاعداد الخاص بـ phpmyadmin هذا الملف موجود ضمن مجلد phpmyadmin باسم config.inc.php إن لم تجد ملف بهذا الاسم يجب انشاؤه أو يمكن نسخ الملف config.sample.inc.php و تعديل اسم النسخة إلى config.inc.php

2- بالدخول إلى الملف ستجدين القسم التالي من الاعدادات :

/* User for advanced features */
 $cfg['Servers'][$i]['controluser'] = 'pma';
 $cfg['Servers'][$i]['controlpass'] = 'pmapass';
/* Advanced phpMyAdmin features */
 $cfg['Servers'][$i]['pmadb'] = '';
 $cfg['Servers'][$i]['bookmarktable'] = '';
 $cfg['Servers'][$i]['relation'] = '';
 $cfg['Servers'][$i]['table_info'] = '';
 $cfg['Servers'][$i]['table_coords'] = '';
 $cfg['Servers'][$i]['pdf_pages'] = '';
 $cfg['Servers'][$i]['column_info'] = '';
 $cfg['Servers'][$i]['history'] = '';
 $cfg['Servers'][$i]['designer_coords'] = '';

يتم استبدال هذا الجزأ بـ :

 $cfg['Servers'][$i]['controluser'] = 'pma';
 $cfg['Servers'][$i]['controlpass'] = 'pmapass';
/* Advanced phpMyAdmin features */
 $cfg['Servers'][$i]['pmadb'] = 'phpmyadmin';
 $cfg['Servers'][$i]['bookmarktable'] = 'pma_bookmark';
 $cfg['Servers'][$i]['relation'] = 'pma_relation';
 $cfg['Servers'][$i]['table_info'] = 'pma_table_info';
 $cfg['Servers'][$i]['table_coords'] = 'pma_table_coords';
 $cfg['Servers'][$i]['pdf_pages'] = 'pma_pdf_pages';
 $cfg['Servers'][$i]['column_info'] = 'pma_column_info';
 $cfg['Servers'][$i]['history'] = 'pma_history';
 $cfg['Servers'][$i]['tracking'] = 'pma_tracking';
 $cfg['Servers'][$i]['designer_coords'] = 'pma_designer_coords';

3- يتم انشاء قاعدة بيانات جديدة باسم phpmyadmin

بعد انشاء قاعدة البيانات يتم استيراد محتوى الملف التالي إلى قاعدة البيانات هذه :

-- --------------------------------------------------------
-- SQL Commands to set up the pmadb as described in Documentation.html.
--
-- This file is meant for use with MySQL 4.1.2 and above!
-- For older MySQL releases, please use create_tables.sql
--
-- If you are running one MySQL 4.1.0 or 4.1.1, please create the tables using
-- create_tables.sql and upgrade their collation settings according to our
-- manual.
--                                            	
-- This script expects the user pma to already be existing. If we would put a
-- line here to create him too many users might just use this script and end
-- up with having the same password for the controluser.
--                                                	
-- This user "pma" must be defined in config.inc.php (controluser/controlpass)                    	
--                                              	
-- Please don't forget to set up the tablenames in config.inc.php                            	
-- 
-- $Id: create_tables_mysql_4_1_2+.sql 6363 2004-10-13 10:09:52Z rabus $

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

-- 
-- Database : `phpmyadmin`
-- 
DROP DATABASE IF EXISTS `phpmyadmin`;
CREATE DATABASE `phpmyadmin`
  DEFAULT CHARACTER SET utf8 COLLATE utf8_bin;
USE phpmyadmin;

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

-- 
-- Privileges
-- 
GRANT SELECT, INSERT, DELETE, UPDATE ON `phpmyadmin`.* TO
	'pma'@localhost;

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

-- 
-- Table structure for table `pma_bookmark`
-- 

CREATE TABLE `pma_bookmark` (
  `id` int(11) NOT NULL auto_increment,
  `dbase` varchar(255) NOT NULL default '',
  `user` varchar(255) NOT NULL default '',
  `label` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL default '',
  `query` text NOT NULL,
  PRIMARY KEY  (`id`)
)
  ENGINE=MyISAM COMMENT='Bookmarks'
  DEFAULT CHARACTER SET utf8 COLLATE utf8_bin;

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

-- 
-- Table structure for table `pma_column_info`
-- 

CREATE TABLE `pma_column_info` (
  `id`  unsigned NOT NULL auto_increment,
  `db_name` varchar(64) NOT NULL default '',
  `table_name` varchar(64) NOT NULL default '',
  `column_name` varchar(64) NOT NULL default '',
  `comment` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL default '',
  `mimetype` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL default '',
  `transformation` varchar(255) NOT NULL default '',
  `transformation_options` varchar(255) NOT NULL default '',
  PRIMARY KEY  (`id`),
  UNIQUE KEY `db_name` (`db_name`,`table_name`,`column_name`)
)
  ENGINE=MyISAM COMMENT='Column information for phpMyAdmin'
  DEFAULT CHARACTER SET utf8 COLLATE utf8_bin;

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

-- 
-- Table structure for table `pma_history`
-- 

CREATE TABLE `pma_history` (
  `id` bigint(20) unsigned NOT NULL auto_increment,
  `username` varchar(64) NOT NULL default '',
  `db` varchar(64) NOT NULL default '',
  `table` varchar(64) NOT NULL default '',
  `timevalue` timestamp(14) NOT NULL,
  `sqlquery` text NOT NULL,
  PRIMARY KEY  (`id`),
  KEY `username` (`username`,`db`,`table`,`timevalue`)
)
  ENGINE=MyISAM COMMENT='SQL history for phpMyAdmin'
  DEFAULT CHARACTER SET utf8 COLLATE utf8_bin;

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

-- 
-- Table structure for table `pma_pdf_pages`
-- 

CREATE TABLE `pma_pdf_pages` (
  `db_name` varchar(64) NOT NULL default '',
  `page_nr` int(10) unsigned NOT NULL auto_increment,
  `page_descr` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL default '',
  PRIMARY KEY  (`page_nr`),
  KEY `db_name` (`db_name`)
)
  ENGINE=MyISAM COMMENT='PDF relation pages for phpMyAdmin'
  DEFAULT CHARACTER SET utf8 COLLATE utf8_bin;

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

-- 
-- Table structure for table `pma_relation`
-- 

CREATE TABLE `pma_relation` (
  `master_db` varchar(64) NOT NULL default '',
  `master_table` varchar(64) NOT NULL default '',
  `master_field` varchar(64) NOT NULL default '',
  `foreign_db` varchar(64) NOT NULL default '',
  `foreign_table` varchar(64) NOT NULL default '',
  `foreign_field` varchar(64) NOT NULL default '',
  PRIMARY KEY  (`master_db`,`master_table`,`master_field`),
  KEY `foreign_field` (`foreign_db`,`foreign_table`)
)
  ENGINE=MyISAM COMMENT='Relation table'
  DEFAULT CHARACTER SET utf8 COLLATE utf8_bin;

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

-- 
-- Table structure for table `pma_table_coords`
-- 

CREATE TABLE `pma_table_coords` (
  `db_name` varchar(64) NOT NULL default '',
  `table_name` varchar(64) NOT NULL default '',
  `pdf_page_number` int(11) NOT NULL default '0',
  `x` float unsigned NOT NULL default '0',
  `y` float unsigned NOT NULL default '0',
  PRIMARY KEY  (`db_name`,`table_name`,`pdf_page_number`)
)
  ENGINE=MyISAM COMMENT='Table coordinates for phpMyAdmin PDF output'
  DEFAULT CHARACTER SET utf8 COLLATE utf8_bin;

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

-- 
-- Table structure for table `pma_table_info`
-- 

CREATE TABLE `pma_table_info` (
  `db_name` varchar(64) NOT NULL default '',
  `table_name` varchar(64) NOT NULL default '',
  `display_field` varchar(64) NOT NULL default '',
  PRIMARY KEY  (`db_name`,`table_name`)
)
  ENGINE=MyISAM COMMENT='Table information for phpMyAdmin'
  DEFAULT CHARACTER SET utf8 COLLATE utf8_bin;

ملاحظة : هذا الملف لقواعد بيانات mysql بالاصدار 4.1.2 او أحدث وهذا الملف موجود ضمن المجلد scripts الموجود ضمن مجلد phpmyadmin باسم create_tables_mysql_4_1_2+.sql

للاصدارات الأقدم من mysql يوجد ملف في نفس المجلد scripts باسم create_tables.sql

بعدها عند اختيار أي قاعدة بيانات ضمن phpmyadmin سيظهر تبويب جديد ضمن القائمة العلوية اسمه designer

بتوفيق الله...

@Kayser_Soze : ضع لنا محتوى ملف اعدادات phpmyadmin الخاص بك (ملف config.inc.php).

تم تعديل هذه المشاركة بواسطة MoHaMMaD Pro في 16 مارس 2011 في 15:45

1

Everything will be fine when we TALK LESS, DO MORE


#10

شكرا لك MoHaMMaD Pro

لكن يبدو لي أن الموضوع صعب قليلا D:

بارك الله فيك :)

#11

مشكووووووووووووووووووووووووووووووور

  • ما شاء الله

بارك الله فيك :)

مواضيع مشابهة