Вопросы нуба про php и mysql
Участников: 3
Страница 9 из 10
Страница 9 из 10 • 1, 2, 3, 4, 5, 6, 7, 8, 9, 10
Re: Вопросы нуба про php и mysql
да все норм в принципе. Ничего сложного.
raingo- Отдел прокрастинации
- Сообщения : 756
Дата регистрации : 2017-12-25
Re: Вопросы нуба про php и mysql
вот чего не понял в ларавел, как миграциями откатывать бд и переносить с хоста на хост. Вроде как дают определение, миграции - система контроля версий, но для бд
raingo- Отдел прокрастинации
- Сообщения : 756
Дата регистрации : 2017-12-25
Re: Вопросы нуба про php и mysql
миграции - это понятие не только в laravel - они сейчас используются в большинстве фреймворков. что это такое - попробую объяснить на пальцах.
у тебя есть проект. проект работает с БД. в бд есть таблицы, у которых есть различные поля различных типов с различными атрибутами. когда ты работаешь на дев сервере, в процессе работы тебе бывает нужно добавить, изменить таблицы, столбцы, их тип и атрибуты. ты можешь это сделать напрямую. ты можешь это сделать через phpmyadmin, но например когда ты будешь переносить это всё в продакшен, то ты легко можешь забыть - где чего ты изменял в структуре БД и всё может закончиться печально. и нужно учитывать, что например на продакшене у тебя уже есть рабочие данные, которые желательно не *нецензурная брань*.
для этого придуманы миграции. что это такое? по сути - это обычный php класс, который описывает - что надо сделать с твоей БД. плюс табличка migrations в БД, которая говорит, какие миграции уже были выполнены.
то есть все изменения в БД ты делаешь не ручками и не через phpmyadmin, а прописываешь в классе миграции. и потом когда ты перосишь все это дело на продакшн, тогда запускаешь в баше комманду
и все те изменения, которые ты делал на деве, делаются на продакшене.
вот русская документация по миграциям http://laravel.su/docs/5.4/migrations
у тебя есть проект. проект работает с БД. в бд есть таблицы, у которых есть различные поля различных типов с различными атрибутами. когда ты работаешь на дев сервере, в процессе работы тебе бывает нужно добавить, изменить таблицы, столбцы, их тип и атрибуты. ты можешь это сделать напрямую. ты можешь это сделать через phpmyadmin, но например когда ты будешь переносить это всё в продакшен, то ты легко можешь забыть - где чего ты изменял в структуре БД и всё может закончиться печально. и нужно учитывать, что например на продакшене у тебя уже есть рабочие данные, которые желательно не *нецензурная брань*.
для этого придуманы миграции. что это такое? по сути - это обычный php класс, который описывает - что надо сделать с твоей БД. плюс табличка migrations в БД, которая говорит, какие миграции уже были выполнены.
то есть все изменения в БД ты делаешь не ручками и не через phpmyadmin, а прописываешь в классе миграции. и потом когда ты перосишь все это дело на продакшн, тогда запускаешь в баше комманду
- Код:
php artisan migrate
и все те изменения, которые ты делал на деве, делаются на продакшене.
вот русская документация по миграциям http://laravel.su/docs/5.4/migrations
Re: Вопросы нуба про php и mysql
офигенно объяснил. Прям как настоящий сенсей. Я как раз думал зачем нужны миграции, если есть жoпоруки и phpadmin. Я думал для миграции бд с хоста на хост.
Чуваки, которые говорят о переносе бд на хост, на самом деле не переносят, а выполняют команды артисана с заново. Теперь кстати понятно, зачем дата в названии.
Чуваки, которые говорят о переносе бд на хост, на самом деле не переносят, а выполняют команды артисана с заново. Теперь кстати понятно, зачем дата в названии.
raingo- Отдел прокрастинации
- Сообщения : 756
Дата регистрации : 2017-12-25
Re: Вопросы нуба про php и mysql
и новый вопрос, как ты парсишь сайты? Читаю, вроде phpquery несовместим с ларавелом (или совместим через жoпу). Через регулярки?
raingo- Отдел прокрастинации
- Сообщения : 756
Дата регистрации : 2017-12-25
Re: Вопросы нуба про php и mysql
через 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/>');
}
}
Re: Вопросы нуба про php и mysql
А вот curl_init() эта функция вызывает что? А то я что-то не вижу в коде описания для её вызова и она просто присваивается переменной $connection. И $cardnumber откуда параметр получает?
Ты сам его писал или скопировал где-то?
Ты сам его писал или скопировал где-то?
Dessan- Юный падаван
- Сообщения : 426
Дата регистрации : 2017-12-25
Re: Вопросы нуба про php и mysql
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);
}
}
сам писал
Re: Вопросы нуба про php и mysql
Нет, как работают функции я уже благодаря вам знаю, спасибо. Я вообще спрашивал, что туда передаётся - число, слово, символ, то есть какой параметр мне нужно передать, чтоб всё это правильно работало. Из примера я вижу, что подставляются числа в цикле от 803710 до 899999. И с чего такие цифры?...Почему не взять от 0 например?
Dessan- Юный падаван
- Сообщения : 426
Дата регистрации : 2017-12-25
Re: Вопросы нуба про php и mysql
ну возьми ноль. только респонса не получишь никакого. бин-коды представляют собой цифровую последовательность, состоящую из 6 цифр
Re: Вопросы нуба про php и mysql
ты специально так пишешь, что у меня всё больше и больше вопросов становится? хоть скажи что почитать, чтоб понять почему там отсчёт с 803710, а то гугл о бин кодах выдаёт только в контексте банковских карт.
Dessan- Юный падаван
- Сообщения : 426
Дата регистрации : 2017-12-25
Re: Вопросы нуба про php и mysql
я объяснял как работает CURL. это частный случай его использования. да, это мне нужно для банковских карт, потому что я пишу проект по кредитованию. с 803710 отсчет начинается потому что до все бины до этого я уже загнал себе в БД.
смысл не в том - для чего его использовать - использовать его можно хоть для банковских карточек, хоть для ловли покемонов. смысл в том, что он позволяет парсить то, что находится на удаленных урлах
смысл не в том - для чего его использовать - использовать его можно хоть для банковских карточек, хоть для ловли покемонов. смысл в том, что он позволяет парсить то, что находится на удаленных урлах
Re: Вопросы нуба про php и mysql
Pyro338 пишет: с 803710 отсчет начинается потому что до все бины до этого я уже загнал себе в БД.
Спасибо, этого достаточно было бы вообще изначально)вопросов нет
Dessan- Юный падаван
- Сообщения : 426
Дата регистрации : 2017-12-25
Re: Вопросы нуба про php и mysql
по миграциям. вот щас мне нужно сделать новую таблицу и CRUID к ней. что я делаю:
1)
вот у нас создалась новая миграция
пишем в функции up
3)в баше выполняем комманду php artisan migrate. вуаля - у нас создалась табличка с банками. теперь нужно создать для нее модель. модель можно создать так же из баша коммандой
это поля, которые можно будет заполнять массовым заполнением. например с помощью eloquent хелпера Banks::create($request->all());
ну и дальше создаем под это все дело контроллер и вьюху. интересно? дальше рассказывать?
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
- Код:
<?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());
ну и дальше создаем под это все дело контроллер и вьюху. интересно? дальше рассказывать?
Re: Вопросы нуба про php и mysql
нифига себе, рассказывай конечно
Dessan- Юный падаван
- Сообщения : 426
Дата регистрации : 2017-12-25
Re: Вопросы нуба про php и mysql
создаем контроллер командой
код контроллера
что непонятно - спрашивайте - разъясню
- Код:
php artisan make:controller BanksController --resource
код контроллера
- Код:
<?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');
}
}
что непонятно - спрашивайте - разъясню
Re: Вопросы нуба про php и mysql
в routes/web.php прописываем роут Route::resource('/banks', 'BanksController');
начинаем делать вьюхи. resources/views/banks/index.blade.php
начинаем делать вьюхи. 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
Re: Вопросы нуба про php и mysql
это все?
Dessan- Юный падаван
- Сообщения : 426
Дата регистрации : 2017-12-25
Re: Вопросы нуба про php и mysql
добавляем куда нибудь в index.blade.php кнопочку
создаем вьюху для создания записи: resources/views/banks/create.blade.php
создаем форму resources/views/banks/partials/form.blade
форму я создал отдельно потому что она же будет использоваться при редактировании записи
- Код:
<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="Сохранить">
форму я создал отдельно потому что она же будет использоваться при редактировании записи
Re: Вопросы нуба про php и mysql
создаем вьюху для редактирования записи 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
Re: Вопросы нуба про php и mysql
создаем вьюху для просмотра записи resources/views/banks/show.blade.php
ну собственно и все - полноценный CRUD готов!
чуть попозже расскажу как я буду парсить екселевский файл, чтобы забить эту таблицу данными
- Код:
@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 готов!
чуть попозже расскажу как я буду парсить екселевский файл, чтобы забить эту таблицу данными
Re: Вопросы нуба про php и mysql
класс)спасибо
Dessan- Юный падаван
- Сообщения : 426
Дата регистрации : 2017-12-25
Re: Вопросы нуба про php и mysql
ты выкладывай то что не попадает под подписку о неразглашении)мы только рады будем
Последний раз редактировалось: Dessan (Вт Апр 17, 2018 3:11 pm), всего редактировалось 1 раз(а)
Dessan- Юный падаван
- Сообщения : 426
Дата регистрации : 2017-12-25
Страница 9 из 10 • 1, 2, 3, 4, 5, 6, 7, 8, 9, 10
Страница 9 из 10
Права доступа к этому форуму:
Вы не можете отвечать на сообщения