دوره مجازی اندروید (جلسه 15): Api Service با Php



visibility  
mode_comment   ۵۳

به نام خدا، دوستان سلام، توی این جلسه می خواهیم با استفاده از xampp و phpstorm یک سایت php ایجاد بکنیم تا میزبان اطلاعات اپ اندرویدی ما باشد.

مطالب مطرح شده در این جلسه عبارتند از :

 

  • معرفی ابزار های xampp و phpstorm
  • ایجاد پروژه جدید در phpstorm
  • نمایش خروجی در مرورگر
  • ایجاد پایگاه داده با استفاده از php
  • ایجاد جدول در php
  • ساختن فرم برای وارد کردن اطلاعات با استفاده از html
  • گرفتن اطلاعات از جدول
  • تبدیل آرایه به json در php
  • معرفی سایت های مفید جهت یادگیری بیشتر
info توجه

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

ثبت نام در آموزش برنامه نویسی اندروید

comment دیدگاه کاربران
Mr abbas replyپاسخ

😀 😀 😀 😀 خیلی خوب بود

سعید شاهینی

سلام، ممنونم عباس جان

جعفر پیشدادی replyپاسخ

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

سعید شاهینی

سلام، ممنونم، بله متاسفانه حق با شماس، به دلیل تغییر برنامه ها این تاخیر ها بوجود اومد که از شما عذرخواهی می کنم

وحید replyپاسخ

سلام
استاد اگر امکانش هست چند تا منبع خوب برای اصول طراحی شی گرایی و design pattern معرفی کنید.
با تشکر

سعید شاهینی

سلام، این مقاله راجع به design pattern های جاوا واقعا کامله و خیلی خوب توضیح داده:

ویدیوهای lynda.com واقعاً بهترین آموزش هایی هستند که تا به حال راجع به مباحث شی گرایی دیدم. اونجا هم یه نگاه بندازید.

وحید

ببخشید آدرس لینک دیزاین پترن جا افتاده.

سعید شاهینی

سلام، نمی دونم چرا لینک ها رو نمایش نمی ده! براتون ایمیل کردم.

مسعود افتخاری replyپاسخ

سلام سعید جان
میخواستم ازت بابت کیفیت بینظیر آموزش ها تشکر کنم ، تعهد و احساس مسئولیتت نسبت به آموزشا و دانشجوا واقعا تحسین برانگیزه
متاسفانه برام مقدور نبود قسمت 15 (PHP & API SERVICE)دوره رو دانلود کنم ، میدونم سرت خیلی شلوغه واسه همینم ممنون میشم اگه سر فرصت یه برسی کنی ببینی مشکل از طرف منه یا شما 😀

سعید شاهینی

سلام مسعود جان. من بررسی کردم مشکلی نبود، کسی هم گزارش خرابی نداده.

ممم ممم replyپاسخ

باسلام واحترام خدمت استاد گرامی !
استاد اگر میشه تصویر برداری از حرکات موس رو درحین آموزش disable نکنید !مثلا در نمایش ابعاد میگید از این جا تا اونجا ولی در فیلم بدست ما رسیده معلوم نیست از کجا تا کجا ونشانگر موس ثابت مونده!
با تشکر از آموزش های خوبتون!

سعید شاهینی

سلام، تصویربرداری رو غیر فعال نکردم، چون frame rate ویدیوها 10 هست، این تصور رو ایجاد می کنه که موس تکون نمی خوره. ممنون از نظرتون. یه جوری این مشکل رو باید حل کنیم.

حمید رضا مصطفی زاده replyپاسخ

سلام و عرض ادب
میخواستم بدونم شما تو این جلسات نحوه API نویسی (سایت آماده است و میخایم اپلیکیشن اون رو بزنیم) رو به طور کامل میگید؟
جلسات خاصی این مطلب رو میگید؟ و اینکه آیا مباحث این قسمت جدا از سایر قسمت های آموزشی هست و میتونیم به صورت جداگانه VIDEO ها رو دنبال کنیم؟ (اگه پاسخ مثبته کدوم جلسات)
تشکر

سعید شاهینی

سلام جناب مصطفی زاده، ما به طور کامل آموزش می دیم که چطور می شه با استفاده از php خام یک سایت راه اندازی کرده، که در آن بتوانیم پست اضافه کنیم و زمانی که اپ درخواست دریافت پست ها رو داشت، پست ها با فرمت Json برای اپ ارسال شوند.
بله توی جلسات 15 و 16 این مطالب رو آموزش می دهیم ولی جدا از سایر قسمت های آموزشی نیست و داخل پروژه اپ سون لرن ازش استفاده می کنیم.

hamidreza khajeh replyپاسخ

سلام استاد خسته نباشید
زمپ من نمیتونه سرور آپاچی رو اجرا کنه ! اینم ارورش

مشکل از کجاست؟!

سعید شاهینی

سلام، این مشکل دلیلش نبودن فایل api-ms-win-crt-runtime-l1-1-0.dll است. باید کامپوننت Universal C Runtime رو از update center، پیدا کنید و آپدیتش کنید تا مشکل حل بشه.

Rabbit94 replyپاسخ

سلام و خسته نباشید
استاد چجوری اطلاعات رو وارد کنیم که تو phpmyadmin فارسی نشون بده؟
من دیتابیسم رو اینطوری ساختم ولی بازم اطلاعات رو تو جدول phpmyadmin درست نشون نمیده!

این درحالی است که اگر از phpmyadmin، همون کوئری رو بزنم اطلاعات به صورت صحیح نشان داده میشه
با تشکر

سعید شاهینی

سلام از داخل phpmyadmin روش encoding جدول رو روی utf 8 بگذارید

Rabbit94

عذر میخام استاد من نتونستم پیدا کنم این امکانو… میشه راهنمایی کنید؟
ممنون از وقتی که می گذارید

سعید شاهینی
hamed_z2001 replyپاسخ

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

سعید شاهینی

سلام٬ بله می دونم در این زمینه تعداد درخواست ها خیلی زیاد بوده و اتفاقا برنامه ای دارم که در آینده در این زمینه دوره برگزار کنم چون خودم هم خیلی کار کردم .

hamed_z2001

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

سعید شاهینی

حقیقتش منبع آموزشی برای این مورد تا حالا ندیدم که معرفی کنم ولی برنامه ی آموزشی بعدی من حتما در این مورد خواهد بود و تا تابستان نهایتا حاضر می شه.

hamed_z2001

واقعا حرکت قشنگی نبود دوستان سون لرنی , فقط دیدتون, دید مالی باشه … آقای شاهینی میدونم و مطمینم , همونطور که توی ویدیو اشاره کردید میخاستید آموزش وردپرسشو بدید,ولی با مخالفت از طرف مدیران مثل اینکه مواجه شدید و احیانا بهتون گفتند که اینکارو نکنید تا بتونن بعدا یک دوره مجزا و البته کسب درآمد بیشتری داشته باشند از این طریق .. از سایت بزرگ سون لرن واقعا بعیده که دید اصلی و کلیشو بخواد بر مبنای مالی بگذاره .. امیدوارم انتقاد من رو پذیرا باشید و کمی هم هوای کاربرانتون رو داشته باشیید ❗

سعید شاهینی

نه دلیلش مالی نبود اتفاقا. دلیلش این بود که گفتیم اگه php خام باشه٬ همه می تونن ازش استفاده کنن. درسته که تعداد کسانی که از وردپرس استفاده می کنند زیاده٬ اما دلیل تصمیم ما بیشتر این بود که php خام رو هم کسانی که وردپرس کارن٬ هم کسانی که laravel کار کردن و هم php کارها می تونن ازش بهره بگیرند و Concept رو بهتر درک کنند.

mamad55 replyپاسخ

سلام استاد شاهینی عزیز
دوره فوق العاده عالی هستش و واقعا ازتون ممنونم ، فقط یه سوال داشتم من می خواستم یک اپلیکیشن مترجم متن آنلاین بنویسم ، از چه api میتونم استفاده کنم ؟؟؟ هرچی میگردم چیزی پیدا نمیکنم . api گوگل هم که پولیه. چیکار کنم ؟؟؟

این اپلیکیشن های مترجم متن توی استور بازار از چه api استفاده کردند ؟؟؟؟

سعید شاهینی

سلام، ممنونم از لطفتون. حقیقتش در این زمینه اطلاعی ندارم ولی داخل اینترنت سرچ کنید حتما هست.

Mohammad Amiri replyپاسخ

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

<?php
/**
 * Created by PhpStorm.
 * User: Mohammad
 * Date: 2018/05/22
 * Time: 7:39 PM
 */
include "DatabaseManager.php";
$databaseManager=new DatabaseManager();
$databaseManager->createdatabase();




<?php
/**
 * Created by PhpStorm.
 * User: Mohammad
 * Date: 2018/05/22
 * Time: 7:42 PM
 */

class DatabaseManager
{
   const DATABASE_NAME="7learn_db";
   function createdatabase(){
       $connection=mysqli_connect("localhost","root","");
       $sqlCommand="CREATE DATABASE".DatabaseManager::DATABASE_NAME;
      if (mysqli_query($connection,$sqlCommand)){
          echo "yes";
      }else{
          echo "no";
      }
   }
}
سعید شاهینی

خط زیر رو جایگزین echo ‘no’ بکنید:

echo("Error description: " . mysqli_error($con));

و توضیحات رو برام بفرستید تا بتونم راهنماییتون کنم

Mohammad Amiri replyپاسخ

سلام استاد.من تا اخر جلسه 16انجام دادم طبق اموزش ولی وقتی برنامه اندرویدی را اجرا میکنم داخل شبیه ساز فقط صفحه سفید باز میشه.
خط بالا را اضافه کردم و داخل مرورگر باز کردم که ارورهای :
مربوط به homepage :
Error description: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ‘DATABASE7learn_db’ at line 1
Warning: mysqli_connect(): (HY000/1049): Unknown database ‘7learn_db’ in C:\xampp\htdocs\7learn\DatabaseManager.php on line 23
Warning: mysqli_query() expects parameter 1 to be mysqli, boolean given in C:\xampp\htdocs\7learn\DatabaseManager.php on line 29
پایین این ارورها مواردی که درhtmlساختیم نمایش داده میشود.
مربوط به getposts:
Warning: mysqli_connect(): (HY000/1049): Unknown database ‘7learn_db’ in C:\xampp\htdocs\7learn\DatabaseManager.php on line 46
Fatal error: Uncaught Error: Call to a member function query() on boolean in C:\xampp\htdocs\7learn\DatabaseManager.php:48 Stack trace: #0 C:\xampp\htdocs\7learn\GetPosts.php(11): DatabaseManager->getPosts() #1 {main} thrown in C:\xampp\htdocs\7learn\DatabaseManager.php on line 48
وقتی هم داخل phpstorm پروژه را run میکنم اخطار را زیر نمایش میدهد:
.Error running ‘7learn’: Interpreter is not specified or invalid
استاد کلا پایگاه داده 7learn در phpmyadmin نمایش داده نمیشود.
استاد داخل اموزش فرمودید برای گرفتن دیتا برای ادرس url ای پی کارت شبکه مخصوص به خود را باید بزنیم .از کجا باید ای پی کارت شبکه خودم را بفهمم؟
داخل گوگل ip adress نوشتم یک your public ip adress داد که همان را زدم.

<?php
/**
 * Created by PhpStorm.
 * User: Mohammad
 * Date: 2018/05/22
 * Time: 7:42 PM
 */

class DatabaseManager
{
   const DATABASE_NAME="7learn_db";
   function createDatabase()
   {
       $connection=mysqli_connect("localhost","root","");
       $sqlCommand="CREATE DATABASE" . DatabaseManager::DATABASE_NAME;
      if (mysqli_query($connection,$sqlCommand)){
          echo "yes";
      }else{
          echo("Error description: " . mysqli_error($connection));
      }
   }
   function createPostsTable(){
       $connection=mysqli_connect("localhost","root","",DatabaseManager::DATABASE_NAME);
       $sqlCommand="CREATE TABLE posts(id INTEGER PRIMARY KEY AUTO_INCREMENT,
                                      title TEXT,
                                      content TEXT,
                                      image_url TEXT,
                                      date DATE )";
       if (mysqli_query($connection,$sqlCommand)){
           echo " table yes";
       }else{
           echo "table no";
       }
   }
   function addPost($title,$content,$imageUrl,$date){
       $connection=mysqli_connect("localhost","root","",DatabaseManager::DATABASE_NAME);
       $sqlCommand="INSERT INTO posts(title,content,image_url,date ) VALUES (‘$title’,’$content’,’$imageUrl’,’$date’)";
       if (mysqli_query($connection,$sqlCommand)){
           echo "yes post";
       }else{
           echo "no post";
       }

   }
   function getPosts(){
       $connection=mysqli_connect("localhost","root","",DatabaseManager::DATABASE_NAME);
       $sqlQuery="SELECT * FROM posts";
       $result=$connection->query($sqlQuery);
       $postsArray=array();

       if($result->num_rows>0){
           for ($i=0;$i<$result->num_rows;$i++){
               $postsArray[$i]=$result->fetch_assoc();

           }

       }
       echo json_encode($postsArray);
   }
}
سعید شاهینی

سلام اروری که داده (MySql) مربوط به این میشه که دیتابیس شما رو نمی تونه پیدا کنه، باید اطمینان پیدا کنید که mysql server فعال باشه روی سیستمتون.
برای اینکه ip سیستم رو بدست بیارید:
۱- داخل command prompt بنویسید ipconfig

Mohammad Amiri replyپاسخ

سلام استاد
در مورد فعال بودن mysql server که فرمودید داخل اینترنت جست و جو کردم چیزی دستگیرم نشد . امکانش هست بیشتر توضیح بفرمایید یا اینکه سایتی که اموزش خوبی در مورد زمپ داده معرفی کنید تا مشکلم حل شود.
فایلهایی که شما قرار داده اید را جایگزین میکنم راحت می اید و داخل اپ اطلاعات نمایش داده میشود (بدون هیچ گونه دستکاری در تنظیمات).
ممنون

سعید شاهینی

زمان که Control Panel اپلکیشن xampp رو باز می کنید، باید روی گزینه start کناز mysql server کلیک کنید تا سرویس mysql اجرا بشه. از طرف دیگه باید چک کنید که آیا ارتباط با دیتابیس توی کد برقرار می شه یا نه. اگه نمی شه باید توی اینترنت سرچ کنید و دلیلش رو پیدا کنید چون دلایل مختلفی می تونه داشته باشه

سعید شاهینی
Mohammad Gholamii replyپاسخ

سلام استاد من تو دستور زیر بعد اضافه کردن کتابخانه اون with رو برای من نمیاره کلا چکار باید بکنم

Picasso.with(context).load(post.getPostImageUrl().replace("localhost","192.168.1.104")).into(holder.newsImage);
سعید شاهینی

سلام، در نسخه ی جدید picasso متد with با get جایگزین شده. باید بنویسید:
Picasso.get().load(post.getPostImageUrl().replace(“localhost”,”192.168.1.104″)).into(holder.newsImage);

Mohammad Gholamii

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

سعید شاهینی

خیلی ممنونم، نه دیگه لازم نیست

Mohammad Gholamii replyپاسخ

سلام استاد خسته نباشید من می خوام اطلاعات رو از phpmyadmin هاست بگیرم البته لوکال نیست یه سرور کد زیر رو داخل یه فایل php ذخیره کردم و داخل هاست اپلود کردم
سایت من ورد پرسی و داخل دیتابیس هم فایل هست
دیتابیس هم به این شکل که behzisti_wp345 اسم دیتابیسمه وwpfw_postmeta از جدول های دیتابیسه که اونم داخلش پست هارو ذخیره میکنه برای هر پست هم که یه ای دی داره با چنتا سطر مثل نام و نام خانوادگی حالا وقتی اجرا میکنم این کدو هیچی جز اینا نمیاره [ ]
چیکار کنم

<?php
define(‘DB_USERNAME’, ‘behzisti’);
define(‘DB_PASSWORD’, ‘123456’);//رمز و ای پی اصلی اینا نیستن عوضشون کردم
define(‘DB_HOST’, ‘188.60.29.194’);
define(‘DB_NAME’, ‘behzisti_wp345’);

 $connection = mysqli_connect(DB_HOST,DB_USERNAME,DB_PASSWORD,DB_NAME) ;
 $sql = "select * wpfw_postmeta";
    $result=$connection->query($sql);

    //create an array


        $postsArray=array();
        if ($result->num_rows>0){
            for ($i=0;$i<$result->num_rows;$i++){
                $postsArray[$i]=$result->fetch_assoc();
            }
        }

        echo json_encode($postsArray);
سعید شاهینی

وقتی array خالی برمی گردونه، یعنی هیچ آیتمی داخل table پست متا نیست.

علی خاکساری replyپاسخ

سلام استاد
ممنون از آموزش های عالی که دارید
من تا اینجا که آموزش ها رو دیدم و انجام دادم مشکلی درباره ی اجرای آموزش ها نداشتم

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

اگر راهنما یا سایتی هم در این زمینه سراغ دارید ممنون میشم معرفی کنید

سعید شاهینی

سلام، وقت بخیر برای دانلود آموزش دادیم ولی برای آپلود خیر. نرم افزاری مثل dropBox خیلی پیچیدگی زیادی داره و شما به تنهایی که نمی تونی اون رو پیاده سازی کنی! در ضمن آپلود و دانلود در این نوع اپ خیلی باید بهینه باشه و عملا شما باید سرویس آپلود و دانلود بسیار بهینه تر برای اپلیکیشن خود بنویسید

سیدسبحان صانعی replyپاسخ

با سلام من تا دقیقه بیست این جلسه رادیدم
اما وقتی(echo(“Error description: ” . mysqli_error($connection)); را مینویسم
این پیغام رادریافت میکنم:
Error description:You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ‘createdatabase7learn_db’ at line 1
دقیقا باید چیکار کنم؟؟؟
با تشکر

Mahdi Eshghi replyپاسخ

سلام استاد شاهینی
من اون قسمت اخت دیتابیس رو همون طور که در اموزش گفتید انجام دادم و دیتابیس ساخته شد
ولی موقع ساخت table ها ارور میده (ارور منظور قسمت else ایف اجرا میشه و میگه ساخته نشد )
هر کاری کردم درست نشد
چجوری تست کنم مشکل از کجایه؟؟
بعد یه سوال دیگه phpstorm اولیت بار که نصب میشه تنشیمات خاصی نداره برای سرور و دیتابیس ها؟؟

 function createPostTable()
    {
        $connection = mysqli_connect("localhost", "root", "", DatabaseManager::DATABASE_NAME);
        $sqlcommand = "CREATE TABLE possts (id INTEGER PRIMARY KEY AUTO_INCREMENT,
                     title MESSAGE_TEXT ,
                     content MESSAGE_TEXT ,
                     image_Url MESSAGE_TEXT ,
                     date DATE)";
        if (mysqli_query($connection, $sqlcommand)) {
            echo " tabale ok";
        } else {
            echo " tabale no";
        }
    }
سعید شاهینی

با استفاده از این دستور می تونید خطای mysql رو چاپ کنید :

echo("Error description: " . mysqli_error($con));

حسین غلامی replyپاسخ

سلام استاد شاهینی
من قسمت اول داخل creating database دیتا بیس ساخته نمیشه و همچین اروری رو روی کروم نشون میده
Error description: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ‘DATABASE7learn_db’ at line 1
متشکر

سعید شاهینی

خودش توضیح داده که کلمه ی DATABASE رو چسبوندید به اسم دیتابیس. باید به این شکل باشه DATABASE 7learn_db

Saeed Hoseini replyپاسخ

سلام خسته نباشید.استاد من تا دقیقه ی هجده گوش کردم ولی متاسفانه اون اروری که شما در else نوشتید رو چاپ می کنه وcreate successfullyرو چاپ نمی کنه.همه چیز رو مثل شما نوشتم.قسمتmysqlهم در زمپ وصل هست.مشکل کجاست؟

سعید شاهینی

با قرار دادن این تیکه کد می تونید متن ارور رو پیدا کنید و ببینید مشکل چی هست:


echo("Error description: " . mysqli_error($con));

imanyar

سلام اقای شاهینی وقت بخیر
منم همین ارور رو دارم…
کد رو زدم ارور ها رو چاپ کنه.. این ارور رو میده
Error description: Incorrect date value: ‘2018 09 23’ for column ‘date’ at row 1

Saeed Hoseini replyپاسخ

استاد ببخشید شما اون ارور undefined indexکه دریافت کردید رو گفتیدسیو کردید برنامه رو بعد درست شد.من این کارو انجام دادم ولی نشد و باز هم اون ارور رو داد خیلی تحقیق کردم راجع به اون اما انجام نشد.علاوه براینا وقتی که روی دکمه کلیک میکنم یه صفحه ی خالی باز و بعدش به اون ارور میاد.اگر میشه کمک کنید.

Amirhossein Shahhosseini replyپاسخ

سلام استاد وقتی جیسان رو از php میگیرم چون فیلد های جدول دیتابیسم فارسی بصورت علامت سوال ؟؟؟؟؟؟ نشون میده مشکل کجاست؟

ارسال نظرات

کاربر گرامی، امکان ارسال نظر و پشتیبانی برای دوره های مجازی فقط برای دانشجویان این دوره امکان پذیر می باشد.