Вопросы нуба про php и mysql

Страница 9 из 10 Предыдущий  1, 2, 3, 4, 5, 6, 7, 8, 9, 10  Следующий

Перейти вниз

Re: Вопросы нуба про php и mysql

Сообщение автор raingo в Чт Апр 12, 2018 6:40 pm

да все норм в принципе. Ничего сложного.

raingo
Отдел прокрастинации

Сообщения : 756
Дата регистрации : 2017-12-25

Посмотреть профиль

Вернуться к началу Перейти вниз

Re: Вопросы нуба про php и mysql

Сообщение автор raingo в Пн Апр 16, 2018 10:04 am

вот чего не понял в ларавел, как миграциями откатывать бд и переносить с хоста на хост. Вроде как дают определение, миграции - система контроля версий, но для бд

raingo
Отдел прокрастинации

Сообщения : 756
Дата регистрации : 2017-12-25

Посмотреть профиль

Вернуться к началу Перейти вниз

Re: Вопросы нуба про php и mysql

Сообщение автор Pyro338 в Пн Апр 16, 2018 10:21 am

миграции - это понятие не только в laravel - они сейчас используются в большинстве фреймворков. что это такое - попробую объяснить на пальцах.

у тебя есть проект. проект работает с БД. в бд есть таблицы, у которых есть различные поля различных типов с различными атрибутами. когда ты работаешь на дев сервере, в процессе работы тебе бывает нужно добавить, изменить таблицы, столбцы, их тип и атрибуты. ты можешь это сделать напрямую. ты можешь это сделать через phpmyadmin, но например когда ты будешь переносить это всё в продакшен, то ты легко можешь забыть - где чего ты изменял в структуре БД и всё может закончиться печально. и нужно учитывать, что например на продакшене у тебя уже есть рабочие данные, которые желательно не *нецензурная брань*.

для этого придуманы миграции. что это такое? по сути - это обычный php класс, который описывает - что надо сделать с твоей БД. плюс табличка migrations в БД, которая говорит, какие миграции уже были выполнены.

то есть все изменения в БД ты делаешь не ручками и не через phpmyadmin, а прописываешь в классе миграции. и потом когда ты перосишь все это дело на продакшн, тогда запускаешь в баше комманду

Код:
php artisan migrate

и все те изменения, которые ты делал на деве, делаются на продакшене.

вот русская документация по миграциям http://laravel.su/docs/5.4/migrations
avatar
Pyro338
Админ

Сообщения : 587
Дата регистрации : 2017-12-25
Возраст : 33
Откуда : Ставрополь

Посмотреть профиль http://pyro338.ru/

Вернуться к началу Перейти вниз

Re: Вопросы нуба про php и mysql

Сообщение автор raingo в Пн Апр 16, 2018 10:49 am

офигенно объяснил. Прям как настоящий сенсей. Я как раз думал зачем нужны миграции, если есть жoпоруки и phpadmin. Я думал для миграции бд с хоста на хост.

Чуваки, которые говорят о переносе бд на хост, на самом деле не переносят, а выполняют команды артисана с заново. Теперь кстати понятно, зачем дата в названии.

raingo
Отдел прокрастинации

Сообщения : 756
Дата регистрации : 2017-12-25

Посмотреть профиль

Вернуться к началу Перейти вниз

Re: Вопросы нуба про php и mysql

Сообщение автор raingo в Пн Апр 16, 2018 10:53 am

и новый вопрос, как ты парсишь сайты? Читаю, вроде phpquery несовместим с ларавелом (или совместим через жoпу). Через регулярки?

raingo
Отдел прокрастинации

Сообщения : 756
Дата регистрации : 2017-12-25

Посмотреть профиль

Вернуться к началу Перейти вниз

Re: Вопросы нуба про php и mysql

Сообщение автор Pyro338 в Пн Апр 16, 2018 11:11 am

через CURL. ну в основном я его юзаю конечно для обращения к сторонним апи. парсить сайты... ну это моветон штоле. хз. пхпквери не юзал ни разу - не было необходимости.

ну вот пример использования курла. ну здесь я не совсем парсю страницу - я подменяю значение, якобы введенное в инпут и парсю респонс

Код:

public function thiefBin($cardnumber){
        //Инициализирует сеанс
        $connection = curl_init();
        //Устанавливаем адрес для подключения
        curl_setopt($connection, CURLOPT_URL, "https://psm7.com/bin/worker.php");
        //Указываем, что мы будем вызывать методом POST
        curl_setopt($connection, CURLOPT_POST, 1);
        //Передаем параметры методом POST
        curl_setopt($connection, CURLOPT_POSTFIELDS, "bin-input=$cardnumber");
        //Говорим, что нам необходим результат
        curl_setopt($connection, CURLOPT_RETURNTRANSFER, 1);
        //Выполняем запрос с сохранением результата в переменную
        $result=curl_exec($connection);
        //Завершает сеанс
        curl_close($connection);
        //Выводим на экран
        echo($result.'<br/>');
        Log::info($cardnumber);
        Log::info($result);
        $result_array = json_decode($result, true);
        if(isset($result_array['bin'])){
            echo ($cardnumber.' got it<br/>');
            $this->store($result_array);
        }else{
            echo ($cardnumber.' failed<br/>');
        }
    }

avatar
Pyro338
Админ

Сообщения : 587
Дата регистрации : 2017-12-25
Возраст : 33
Откуда : Ставрополь

Посмотреть профиль http://pyro338.ru/

Вернуться к началу Перейти вниз

Re: Вопросы нуба про php и mysql

Сообщение автор Dessan в Пн Апр 16, 2018 12:54 pm

А вот curl_init() эта функция вызывает что? А то я что-то не вижу в коде описания для её вызова и она просто присваивается переменной $connection. И $cardnumber откуда параметр получает?

Ты сам его писал или скопировал где-то?

Dessan
Юный падаван

Сообщения : 426
Дата регистрации : 2017-12-25

Посмотреть профиль

Вернуться к началу Перейти вниз

Re: Вопросы нуба про php и mysql

Сообщение автор Pyro338 в Пн Апр 16, 2018 12:59 pm

curl_init
(PHP 4 >= 4.0.2, PHP 5)

curl_init -- Инициализирует сеанс CURL
Описание
resource curl_init ( [string url] )

curl_init() создает новый сеанс CURL и возвращает дескриптор, который используется с функциями curl_setopt(), curl_exec() и curl_close(). Если передан необязательный аргумент url, опция CURLOPT_URL будет автоматически установлена в значение этого аргумента. Если этот аргумент не передан, необходимо использовать функцию curl_setopt().

$cardnumber получает откуда тебе хочется. ты в любом месте программы вызываешь функцию thiefBin с нужным тебе значением этого параметра и получаешь соответствующий этому параметру результат. например

Код:

public function getBins(){
        for($i = 803710; $i < 900000; $i++){
            $this->thiefBin($i);
        }
    }

сам писал
avatar
Pyro338
Админ

Сообщения : 587
Дата регистрации : 2017-12-25
Возраст : 33
Откуда : Ставрополь

Посмотреть профиль http://pyro338.ru/

Вернуться к началу Перейти вниз

Re: Вопросы нуба про php и mysql

Сообщение автор Dessan в Пн Апр 16, 2018 1:29 pm

Нет, как работают функции я уже благодаря вам знаю, спасибо. Я вообще спрашивал, что туда передаётся - число, слово, символ, то есть какой параметр мне нужно передать, чтоб всё это правильно работало. Из примера я вижу, что подставляются числа в цикле от 803710 до 899999. И с чего такие цифры?...Почему не взять от 0 например?

Dessan
Юный падаван

Сообщения : 426
Дата регистрации : 2017-12-25

Посмотреть профиль

Вернуться к началу Перейти вниз

Re: Вопросы нуба про php и mysql

Сообщение автор Pyro338 в Пн Апр 16, 2018 1:33 pm

ну возьми ноль. только респонса не получишь никакого. бин-коды представляют собой цифровую последовательность, состоящую из 6 цифр
avatar
Pyro338
Админ

Сообщения : 587
Дата регистрации : 2017-12-25
Возраст : 33
Откуда : Ставрополь

Посмотреть профиль http://pyro338.ru/

Вернуться к началу Перейти вниз

Re: Вопросы нуба про php и mysql

Сообщение автор Dessan в Пн Апр 16, 2018 1:41 pm

ты специально так пишешь, что у меня всё больше и больше вопросов становится? хоть скажи что почитать, чтоб понять почему там отсчёт с 803710, а то гугл о бин кодах выдаёт только в контексте банковских карт.

Dessan
Юный падаван

Сообщения : 426
Дата регистрации : 2017-12-25

Посмотреть профиль

Вернуться к началу Перейти вниз

Re: Вопросы нуба про php и mysql

Сообщение автор Pyro338 в Пн Апр 16, 2018 1:46 pm

я объяснял как работает CURL. это частный случай его использования. да, это мне нужно для банковских карт, потому что я пишу проект по кредитованию. с 803710 отсчет начинается потому что до все бины до этого я уже загнал себе в БД.

смысл не в том - для чего его использовать - использовать его можно хоть для банковских карточек, хоть для ловли покемонов. смысл в том, что он позволяет парсить то, что находится на удаленных урлах
avatar
Pyro338
Админ

Сообщения : 587
Дата регистрации : 2017-12-25
Возраст : 33
Откуда : Ставрополь

Посмотреть профиль http://pyro338.ru/

Вернуться к началу Перейти вниз

Re: Вопросы нуба про php и mysql

Сообщение автор Dessan в Пн Апр 16, 2018 1:48 pm

Pyro338 пишет: с 803710 отсчет начинается потому что до все бины до этого я уже загнал себе в БД.


Спасибо, этого достаточно было бы вообще изначально)вопросов нет

Dessan
Юный падаван

Сообщения : 426
Дата регистрации : 2017-12-25

Посмотреть профиль

Вернуться к началу Перейти вниз

Re: Вопросы нуба про php и mysql

Сообщение автор Pyro338 в Вт Апр 17, 2018 12:48 pm

по миграциям. вот щас мне нужно сделать новую таблицу и CRUID к ней. что я делаю:

1)

вот у нас создалась новая миграция




пишем в функции up

Код:

public function up()
    {
        Schema::create('banks', function (Blueprint $table) {
            $table->increments('id');
            $table->integer('place');
            $table->integer('reg_number');
            $table->string('name');
            $table->string('city');
            $table->string('place_active');
            $table->float('credits');
            $table->string('license')->nullable();
            $table->string('license_status')->nullable();
            $table->string('contacts')->nullable();
            $table->string('comments')->nullable();
            $table->timestamps();
        });
    }

3)в баше выполняем комманду php artisan migrate. вуаля - у нас создалась табличка с банками. теперь нужно создать для нее модель. модель можно создать так же из баша коммандой
Код:
php artisan make:model Banks
, а можно например ручками а папке App. в модели пишем:

Код:

<?php

namespace App;
use Illuminate\Database\Eloquent\Model;


class Banks extends Model
{
    protected $fillable = [
        'place', 'reg_number', 'name', 'city', 'place_active', 'credits', 'license', 'license_status', 'contacts', 'comments'
    ];
}

это поля, которые можно будет заполнять массовым заполнением. например с помощью eloquent хелпера Banks::create($request->all());

ну и дальше создаем под это все дело контроллер и вьюху. интересно? дальше рассказывать?
avatar
Pyro338
Админ

Сообщения : 587
Дата регистрации : 2017-12-25
Возраст : 33
Откуда : Ставрополь

Посмотреть профиль http://pyro338.ru/

Вернуться к началу Перейти вниз

Re: Вопросы нуба про php и mysql

Сообщение автор Dessan в Вт Апр 17, 2018 1:05 pm

нифига себе, рассказывай конечно

Dessan
Юный падаван

Сообщения : 426
Дата регистрации : 2017-12-25

Посмотреть профиль

Вернуться к началу Перейти вниз

Re: Вопросы нуба про php и mysql

Сообщение автор Pyro338 в Вт Апр 17, 2018 1:08 pm

создаем контроллер командой
Код:
php artisan make:controller BanksController --resource
или ручками в папке App/Controllers создаем файл BanksController.php

код контроллера

Код:

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Banks;

class BanksController extends Controller
{
    /**
    * Display a listing of the resource.
    *
    * @return \Illuminate\Http\Response
    */
    public function index()
    {
        return view(
            'banks.index',
            [
                'banks' => Banks::paginate(50)
            ]
        );
    }

    /**
    * Show the form for creating a new resource.
    *
    * @return \Illuminate\Http\Response
    */
    public function create()
    {
        return view(
            'banks.create',
            [
                'bank' => []
            ]
        );
    }

    /**
    * Store a newly created resource in storage.
    *
    * @param  \Illuminate\Http\Request $request
    *
    * @return \Illuminate\Http\Response
    */
    public function store(Request $request)
    {
        Banks::create($request->all());

        return redirect()->route('banks.index');
    }

    /**
    * Display the specified resource.
    *
    * @param  int $id
    *
    * @return \Illuminate\Http\Response
    */
    public function show($id)
    {
        return view(
            'banks.show',
            [
                'bank' => Banks::where('id', $id)->first()
            ]
        );
    }

    /**
    * Show the form for editing the specified resource.
    *
    * @param  int $id
    *
    * @return \Illuminate\Http\Response
    */
    public function edit($id)
    {
        return view(
            'banks.edit',
            [
                'bank' => Banks::where('id', $id)->first()
            ]
        );
    }

    /**
    * Update the specified resource in storage.
    *
    * @param  \Illuminate\Http\Request $request
    * @param  int                      $id
    *
    * @return \Illuminate\Http\Response
    */
    public function update(Request $request, $id)
    {
        $bank = Banks::where('id', $id)->first();
        $bank->update($request->all());

        return redirect()->route('banks.index');
    }

    /**
    * Remove the specified resource from storage.
    *
    * @param  int $id
    *
    * @return \Illuminate\Http\Response
    */
    public function destroy($id)
    {
        $bank = Banks::where('id', $id)->first();
        $bank->delete();

        return redirect()->route('banks.index');
    }
}


что непонятно - спрашивайте - разъясню
avatar
Pyro338
Админ

Сообщения : 587
Дата регистрации : 2017-12-25
Возраст : 33
Откуда : Ставрополь

Посмотреть профиль http://pyro338.ru/

Вернуться к началу Перейти вниз

Re: Вопросы нуба про php и mysql

Сообщение автор Pyro338 в Вт Апр 17, 2018 1:29 pm

в routes/web.php прописываем роут Route::resource('/banks', 'BanksController');

начинаем делать вьюхи. resources/views/banks/index.blade.php

Код:

@extends('layouts.app')

@section('content')
    <div class="container">
        <div class="row justify-content-center">
            <div class="col-md-12">
                <h1>Банки</h1>
                <table class="table table-striped">
                    <thead>
                    <tr>
                        <th>Место на 01.08.2016</th>
                        <th>Рег. номер</th>
                        <th>Наименование банка</th>
                        <th>Город</th>
                        <th>Место по активам на 01.08.2016</th>
                        <th>Кредиты физ. лицам, всего на 01.08.2016, млн. руб.</th>
                        <th>Лицензия</th>
                        <th>Статус лицензии</th>
                        <th>Адрес. Контакты</th>
                        <th>Комментарии</th>
                    </tr>
                    </thead>
                    <tbody>
                    @forelse($banks as $bank)
                        <tr>
                            <td>{{$bank->place}}</td>
                            <td>{{$bank->reg_number}}</td>
                            <td><a href="{{route('banks.show', $bank->id)}}">{{$bank->name}}</a></td>
                            <td>{{$bank->city}}</td>
                            <td>{{$bank->place_active}}</td>
                            <td>{{$bank->credits}}</td>
                            <td>{{$bank->license}}</td>
                            <td>{{$bank->license_status}}</td>
                            <td>{{$bank->contacts}}</td>
                            <td>{{$bank->comments}}</td>
                            <td>
                                <form onsubmit="if(confirm('Удалить?')){return true} else{return false}"
                                      action="{{route('banks.destroy', $bank->id)}}" method="post">
                                    <input type="hidden" name="_method" value="DELETE">
                                    {{csrf_field()}}
                                    <a class="btn btn-default" href="{{route('banks.edit', $bank->id)}}">
                                        <i class="fa fa-edit"></i>
                                    </a>
                                    <button type="submit" class="btn"><i class="fa fa-trash-o"></i></button>
                                </form>
                            </td>
                        </tr>
                    @empty
                        <tr>
                            <td colspan="10" class="text-center"><h2>Данные отсутствуют</h2></td>
                        </tr>
                    @endforelse
                    </tbody>
                    <tfoot>
                    <tr>
                        <td colspan="4">
                            <ul class="pagination pull-right">
                                {{$banks->links()}}
                            </ul>
                        </td>
                    </tr>
                    </tfoot>
                </table>
            </div>
        </div>
    </div>
@endsection

avatar
Pyro338
Админ

Сообщения : 587
Дата регистрации : 2017-12-25
Возраст : 33
Откуда : Ставрополь

Посмотреть профиль http://pyro338.ru/

Вернуться к началу Перейти вниз

Re: Вопросы нуба про php и mysql

Сообщение автор Dessan в Вт Апр 17, 2018 1:52 pm

это все?

Dessan
Юный падаван

Сообщения : 426
Дата регистрации : 2017-12-25

Посмотреть профиль

Вернуться к началу Перейти вниз

Re: Вопросы нуба про php и mysql

Сообщение автор Pyro338 в Вт Апр 17, 2018 1:54 pm

ну не спеши ты так. я же одновременно делаю и выкладываю как сделаю
avatar
Pyro338
Админ

Сообщения : 587
Дата регистрации : 2017-12-25
Возраст : 33
Откуда : Ставрополь

Посмотреть профиль http://pyro338.ru/

Вернуться к началу Перейти вниз

Re: Вопросы нуба про php и mysql

Сообщение автор Pyro338 в Вт Апр 17, 2018 1:59 pm

добавляем куда нибудь в index.blade.php кнопочку
Код:
<a href="{{route('banks.create')}}" class="btn btn-primary">Новый банк</a>

создаем вьюху для создания записи: resources/views/banks/create.blade.php

Код:

@extends('layouts.app')

@section('content')
    <div class="container">
        <h1>Создание банка</h1>
        <form action="{{route('banks.store')}}" method="post" class="form-horisontal">
            {{csrf_field()}}
            @include('banks.partials.form')
        </form>
    </div>
@endsection

создаем форму resources/views/banks/partials/form.blade

Код:

<label for="place">Место на 01.08.2016</label>
<input type="number" class="form-control" name="place" value="{{$bank->place or ""}}" required placeholder="Место на 01.08.2016">

<label for="reg_number">Рег. номер</label>
<input type="number" class="form-control" name="reg_number" value="{{$bank->reg_number or ""}}" required placeholder="Рег. номер">

<label for="name">Наименование банка</label>
<input type="text" class="form-control" name="name" value="{{$bank->name or ""}}" required placeholder="Наименование банка">

<label for="city">Город</label>
<input type="text" class="form-control" name="city" value="{{$bank->city or ""}}" required placeholder="Город">

<label for="place_active">Место по активам на 01.08.2016</label>
<input type="text" class="form-control" name="place_active" value="{{$bank->place_active or ""}}" required placeholder="Место по активам на 01.08.2016">

<label for="credits">Кредиты физ. лицам, всего на 01.08.2016, млн. руб.</label>
<input type="text" class="form-control" name="credits" value="{{$bank->credits or ""}}" required placeholder="Кредиты физ. лицам, всего на 01.08.2016, млн. руб.">

<label for="license">Лицензия</label>
<input type="text" class="form-control" name="license" value="{{$bank->license or ""}}" placeholder="Лицензия">

<label for="license_status">Статус лицензии</label>
<input type="text" class="form-control" name="license_status" value="{{$bank->license_status or ""}}" placeholder="Статус лицензии">

<label for="contacts">Адрес. Контакты</label>
<input type="text" class="form-control" name="contacts" value="{{$bank->contacts or ""}}" placeholder="Адрес. Контакты">

<label for="comments">Комментарии</label>
<input type="text" class="form-control" name="comments" value="{{$bank->comments or ""}}" placeholder="Комментарии">

<hr>

<input type="submit" class="btn btn-primary" name="submit" value="Сохранить">

форму я создал отдельно потому что она же будет использоваться при редактировании записи
avatar
Pyro338
Админ

Сообщения : 587
Дата регистрации : 2017-12-25
Возраст : 33
Откуда : Ставрополь

Посмотреть профиль http://pyro338.ru/

Вернуться к началу Перейти вниз

Re: Вопросы нуба про php и mysql

Сообщение автор Pyro338 в Вт Апр 17, 2018 2:03 pm

создаем вьюху для редактирования записи resources/view/banks/edit.blade

Код:

@extends('layouts.app')

@section('content')
    <div class="container">
        <h1>Редактирование банка</h1>
        <form action="{{route('banks.update', $bank->id)}}" method="post" class="form-horisontal">
            {{csrf_field()}}
            <input type="hidden" name="_method" value="put">
            @include('banks.partials.form')
        </form>
    </div>
@endsection
avatar
Pyro338
Админ

Сообщения : 587
Дата регистрации : 2017-12-25
Возраст : 33
Откуда : Ставрополь

Посмотреть профиль http://pyro338.ru/

Вернуться к началу Перейти вниз

Re: Вопросы нуба про php и mysql

Сообщение автор Pyro338 в Вт Апр 17, 2018 2:14 pm

создаем вьюху для просмотра записи resources/views/banks/show.blade.php

Код:

@extends('layouts.app')

@section('content')
    <div class="container">
        <h1>Банк: {{$bank->name}}</h1>
        <div class="text-left">
            <table class="table">
                <tbody>
                <tr>
                    <th>Место на 01.08.2016</th>
                    <td>{{$bank->place}}</td>
                </tr>
                <tr>
                    <th>Рег. номер</th>
                    <td>{{$bank->reg_number}}</td>
                </tr>
                <tr>
                    <th>Город</th>
                    <td>{{$bank->city}}</td>
                </tr>
                <tr>
                    <th>Место по активам на 01.08.2016</th>
                    <td>{{$bank->place_active}}</td>
                </tr>
                <tr>
                    <th>Кредиты физ. лицам, всего на 01.08.2016, млн. руб.</th>
                    <td>{{$bank->credits}}</td>
                </tr>
                <tr>
                    <th>Лицензия</th>
                    <td>{{$bank->license}}</td>
                </tr>
                <tr>
                    <th>Статус лицензии</th>
                    <td>{{$bank->license_status}}</td>
                </tr>
                <tr>
                    <th>Адрес. Контакты</th>
                    <td>{{$bank->contacts}}</td>
                </tr>
                <tr>
                    <th>Комментарии</th>
                    <td>{{$bank->comments}}</td>
                </tr>
                </tbody>
            </table>
        </div>
    </div>
@endsection

ну собственно и все - полноценный CRUD готов!

чуть попозже расскажу как я буду парсить екселевский файл, чтобы забить эту таблицу данными
avatar
Pyro338
Админ

Сообщения : 587
Дата регистрации : 2017-12-25
Возраст : 33
Откуда : Ставрополь

Посмотреть профиль http://pyro338.ru/

Вернуться к началу Перейти вниз

Re: Вопросы нуба про php и mysql

Сообщение автор Dessan в Вт Апр 17, 2018 2:24 pm

класс)спасибо

Dessan
Юный падаван

Сообщения : 426
Дата регистрации : 2017-12-25

Посмотреть профиль

Вернуться к началу Перейти вниз

Re: Вопросы нуба про php и mysql

Сообщение автор Pyro338 в Вт Апр 17, 2018 2:27 pm

наздоровье!
avatar
Pyro338
Админ

Сообщения : 587
Дата регистрации : 2017-12-25
Возраст : 33
Откуда : Ставрополь

Посмотреть профиль http://pyro338.ru/

Вернуться к началу Перейти вниз

Re: Вопросы нуба про php и mysql

Сообщение автор Dessan в Вт Апр 17, 2018 2:39 pm

ты выкладывай то что не попадает под подписку о неразглашении)мы только рады будем


Последний раз редактировалось: Dessan (Вт Апр 17, 2018 3:11 pm), всего редактировалось 1 раз(а)

Dessan
Юный падаван

Сообщения : 426
Дата регистрации : 2017-12-25

Посмотреть профиль

Вернуться к началу Перейти вниз

Re: Вопросы нуба про php и mysql

Сообщение автор Спонсируемый контент


Спонсируемый контент


Вернуться к началу Перейти вниз

Страница 9 из 10 Предыдущий  1, 2, 3, 4, 5, 6, 7, 8, 9, 10  Следующий

Вернуться к началу


 
Права доступа к этому форуму:
Вы не можете отвечать на сообщения