دوره مجازی PHP (جلسه 16): کار با پایگاه داده - آشنایی با زبان SQL

- visibility ۵۴ mode_comment

در جلسه ی امروز می خوایم در مورد زبان SQL با شما صحبت کنیم و شما رو با این زبون مهم آشنا کنیم . برای اینکه بتونید داده ها از دیتابیس دریافت کنید و یا اونها رو آپدیت و درج کنید زبان SQL مورد نیاز شما خواهد بود !

در این جلسه به تشریح موارد زیر خواهیم پرداخت :

فصل 13 : کار با پايگاه داده ي MySQL و چگونگي اتصال PHP به ديتابيس

  • معرفي سيستم مديريت پايگاه داده ي MySQL
  • آشنايي با ابزار PhpMyAdmin و مديريت جداول پايگاه داده به صورت دستي
  • انجام 4 عمل اصلي پايگاه داده (CRUD) در محيط PhpMyAdmin
  • انجين هاي ذخيره سازي جداول و معايب و مزاياي هر کدام (InnoDB vs MyISAM)
  • معرفي ويژگي هاي مختلف يک ستون از جداول پايگاه داده (نام، نوع، سايز، مقدار پيشفرض و ...)
  • تشريح انواع داده ها (DataTypes) در SQL
  • SQL : زباني براي درخواست اطلاعات و انجام تغيرات در پايگاه داده (Query Language)
  • آموزش زبان SQL : آموزش انجام اعمال اصلي در پايگاه هاي داده (CRUD) با زبان SQL
  • ساخت جداول پايگاه داده (Create)
  • شرح دادن جداول پايگاه داده و ديدن اطلاعات آنها (Describe)
  • حذف جداول پايگاه داده (Drop)
  • خواندن اطلاعات جداول پايگاه داده (Select)
  • درج و ويرايش مقادير در جداول پايگاه داده (Insert & Update)
  • حذف مقادير از جداول پايگاه داده (Delete)
  • ايجاد نسخه ي بکاپ از پايگاه داده و جداول آن
  • ريستور کردن پايگاه داده از بکاپ هاي گرفته شده
  • اجراي دستورات SQL در محيط PhpMyAdmin
info توجه

این مطلب یک جلسه از دوره حرفه ای PHP می باشد و برای مشاهده آن باید در دوره ثبت نام کنید.

ثبت نام در دوره حرفه ای PHP

comment دیدگاه کاربران
صاحب اصغریان

من برای ایجاد جدول دقیقا همون کدهای شما رو وارد میکنم ولی این خطارو میده چرا؟
#1064 – You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near

وحید صالحی

سلام ارور میگه از Syntax اشتباه استفاده کردین کدهاتون رو چک کنید…

mohamad mohamadi

سلام ببخشید مثلا من 1 فرم ساخت اکانت ساختم چجوری اونو بفرستم تو جدول های دیتا بیسم که برام اطلاعاتش ذخیره شه

لقمان آوند

اگر جلوتر برید مثال ها و نمونه هاش رو خواهید دید …

Amir Saleh

سلام آقای آوند خسته نباشید
من وقتی وارد محیط phpMyAdmin می شم در تب Databases می خوام دیتا بیس بسازم زیر قسمت Create database با رنگ قرمز نوشته شده No Privileges و همچنین در قسمت تب ها من تبی به اسم Users ندارم
ممنون از راهنماییتون

لقمان آوند

شما باید با یوزر root وارد بشید که دسترسی داشته باشید

mohamad mohamadi

سلام من اصلا نفهمیدم 1چیو
مثلا تو پوشه ی www
دارم 1 سایت میسازم و 3تا دیتا بیس تو phpmyadmin میسازم 1کیش مثلا اسمش
H
1کی دیگه P
1کی دیگه S
میخوام سایتمو به P متصل کنم چه کدی بزنم؟

وحید صالحی

خوب شما باید رشته اتصال به دیتابیس رو برای دیتابیسی که نام p هست ست کنید

سلام
چطور میشه تصاویر رو تو دیتابیس ذخیره کرد و از اون استفاده کرد

وحید صالحی

سلام تصاویر برای اینکه از بالا رفتن حجم دیتابیس جلوگیری بشه مستقیما در دیتابیس ذخیره نمیشن بلکه در روت هاست فولدری برای تصاویر ایجاد میشه و تصاویر در اونجا قرار میگیره و فقط آدرس تصویر در دیتابیس ذخیره میشه که توسط همین آدرس هم میشه فراخوانی و ازشون استفاده کرد نحوه آپلود تصاویر و ذخیر اونها هم شما نیاز به کوئری ها و توابعی که مربوط به آپلود تصاویر و کلا فایل ها هست نیاز دارید که در این جا در یکی دو خط نمیشه توضیح داد می تونید از منابع زیر استفاده کنید

لینک 1
لینک 2
لینک 3

محمدمهدی جبارپور

ممنون

سلام
من وقتی می خوام داده های فارسی رو از دیتابیس دریافت کنم بجاش علامت ؟ میاره. دیتابیس رو بر روی utf8-general-ci قرار دادم.

لقمان آوند

اول کدتون این کوءری رو بزنید قبل از کوئری های دیگه
set names utf8

محمدمهدی جبارپور

ممنون

Eagle Seein

سلام استاد من بازم با دیتابیس مشکلپیدا کردم.
من تو یه جدولی پنج تا فیلد به شرح زیر دارم:
id-user_id-to_user_id-projct_id-message
میخوام که یه کاربر نتونه تو یه پروژه دوبار پیام بفرسته. یعنی user_id و project_id باید با همدیگه یونیک بشن. از طرف یگه لازم دارم که id اتواینکرمنت باشه. فرضا:
id=1–user_id=1–project_id=1
دوبار درج نشه اما به محض تغییر user_id یا project_id درج بشه مثلا
id=2–user_id=1–project_id=2
یا
id=3–user_id=2–project_id=1
درج بشه. فیلد ای دی صرفا فقط زیا میشه و از اونجایی که A_I کردنش منجر به کلید شدن اصلیش میشه من یه خوره گیج شدم.
میشه راهنماییم کنین؟

لقمان آوند

قبل از ثبت پیام جدید، موجود بودن سطری با دو ستون user_id و project_id رو با یه سلکت ساده چک کن. اگر نبود پیام رو ثبت کن و اگر قبلا بود به کاربر یه متنی نشون بده که قبلا برا این پروژه پیام داده.
تو مورد دوم هم باز از طرق کد باید اینکار بکنی. البته منظورتو دقیق متوجه نشم و یکم برام مبهمه…

Eagle Seein

سلام استاد ممنون از پاسختون. هدف کلیم اینه که میخوام یه کاربر فقط بتونه یه پیام برای هر پروژه بزاره و نه بیشتر. یعنی راهی نیستش که از دستکاری فیلدای دیتابیس اینکار رو کرد؟ همش از طرف کد باید بررسی بشه؟

لقمان آوند

سلام
راه توصیه شده منطقی و صحیح هست و زیاد استفاده میشه در پروژه های وب.
در عین حاد در خود mysql هم میشه function و procedure نوشت که این موارد رو باهاش کنترل کرد. که نیاز به آشنایی نسبتا حرفه ای شما با این موارد داره.

Eagle Seein

با راهنمایی هاتون یه سرچ متفاوت تر انجام دادم به این پاسخ رسیم که قیقا کاری که لازم داشتم رو انجام داد.

ممنونم استاد

leo vartoomian

با سلام
استاد من موقعی که اطلاعات را میخواهم درون دیتابیس insert کنم بهم ارور زیر را میدهد.
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘1’ at line 1

query :
( ‘insert into tb1(name,family,tel) values (‘$name’,’$family’,’$tel

ستون های دیتابیس :

id’ int auto increment’
name varchar
family varchar
tel varchar

لقمان آوند

کوئری رو درون یه متغیر بریزید و چاپ کنید ببینید اون چیزی که اجرا میشه چی هست …

leo vartoomian

استاد درون متغیر result ریختم و آن را echo کردم عدد 1 چاپ شد. !!

لقمان آوند

سلام
منظورم این بود که خود کوئری (رشته ی کوئری) رو چاپ کنید نه نتیجه اجرای اون رو …

leo vartoomian

استاد ممنون خودم پیدا کردم جوابش را

leo vartoomian

با سلام
استاد چگونه میتونم اطلاعات یک رکورد را که از دیتابیس میخونم داخل textbox قرار بدم؟
یعنی چجوری مشخص کنم اطلاعات این ستون درون textbox مربوطه قرار گیرد.

لقمان آوند

اطلاتی که گرفتی درون یک متغیر بزار و اونو در ویژگی value تگ input مربوطه چاپ کن.

رضا الطافی

سلام جناب آوند خسته نباشید
من آخر نفهمیدم index ها چی هستن و چه فایده ای برای ما دارن ؟ چرا باید ازشون استفاده کنیم ؟ مثلا اگه به ستون id ها یه ایندکس با نام row_id بدیم چه مزیتی میتونه داشته باشه ؟

لقمان آوند

ایندکس مثل فهرست کتاب می مونه. اگر نباشه پیدا کردن یه مبحث خاص تو اون کتاب چقدر سخت و وقت گیره ؟؟؟
دقیقا تو دیتابیسم همینطوره برای اینکه یه داده ها زودتر پیدا شن اول از ایندکسشون استفاده میشه که مستقیما برسن به آدرس داده و نیازه نباشه کل داده ها جستجو بشه!

نیاز به لاگین

برای ارسال دیدگاه و یا پرسیدن سوال خود در این قسمت، باید در سایت لاگین شوید.
1 2