#php #sql #laravel
#php #sql #laravel
Вопрос:
Эй, ребята, я здесь немного запутался. Я начинающий разработчик и не уверен, куда идти дальше. Мой опыт в основном состоит из HTML, CSS и JS, но сейчас я пытаюсь изучить PHP, SQL и, по сути, создать «каталог запчастей» для компании.
У меня есть файл Excel, который использует компания, который я преобразовал в CSV, а затем импортировал в базу данных MYSQL. Базовым соглашением является категория, подкатегория и производитель. Так, например, шины, грузовые шины, компания X. После жесткого кодирования страницы, чтобы получить правильный дизайн, я теперь пытаюсь перейти на Laravel и создать более разнообразное приложение. Но по сути, то, что я пытаюсь сделать, это заставить пользователя щелкнуть категорию, подкатегорию или производителя, а затем отобразить все эти элементы с помощью фильтрации SQL.
Итак, хотя я не рассматриваю конкретные рекомендации по кодированию, я был бы рад, если бы кто-нибудь, пожалуйста, показал мне, с чего вообще начать. Поиск в Google не был для меня очень полезным, поскольку многое из того, что я нахожу, связано с созданием новых элементов, редактированием существующих элементов, что мне вообще не нужно делать. Мне просто нужно отображать элементы из базы данных на странице, когда пользователь нажимает на этот конкретный столбец.
Я просмотрел несколько статей, включая разбивку на страницы и REST API, но даже это немного выше моего понимания на данный момент, поэтому я больше ищу нежный толчок в правильном направлении, куда идти, чтобы начать это делать. Я изучил основы Laravel, научился настраивать Laravel, заполнять таблицу пользователей, написать пару циклов @foreach и выяснить, как представления / модели работают в некоторой степени, но я в основном новичок в этом отношении.
Это PHP, который я написал до Laravel, чтобы жестко запрограммировать его, чтобы просто отображать что-либо от производителя под названием Trucklite. Я написал функцию JS для изменения основного изображения, также нажав на миниатюру, но я не буду утруждать себя публикацией этого.
$conn = new mysqli($servername, $username, $password, $dbname);
$keyword = "Trucklite";
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$sql="SELECT part_number, item_description FROM parts WHERE
item_description LIKE '%{$keyword}%' LIMIT 40";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
echo "<div class='catalogue-card'>".
"<div class='catalogue-card-description'>".
$row["item_description"].
"</div>".
"<div class='catalogue-card-inner'>".
"<br /><br />".
"<a id='image-link' href='/img/".
$row['part_number'].
" A.jpeg'".
" data-fancybox='gallery'><img class='full' id='".
// $row["part_number"].
"full-image".
"'".
"style='height:200px;' src='/img/".
$row["part_number"].
" A.jpeg'></a>".
"<br /><br />".
"<img class='thumb' style='height: 50px;' src='/img/".
$row['part_number'].
" A.jpeg'>".
"<img class='thumb' style='height: 50px;' src='/img/".
$row["part_number"].
" B.jpeg'>".
"<img class='thumb' style='height: 50px;' src='/img/".
$row["part_number"].
" C.jpeg'>".
"<img class='thumb' style='height: 50px;' src='/img/".
$row["part_number"].
" D.jpeg'>".
"<br /><br />".
"<span>Part #: </span>".
$row["part_number"].
"<br/><br />".
"</div>".
"</div>";
}
} else {
echo "0 results";
}
Так что, конечно, это действительно не элегантный способ продемонстрировать это визуально, но не намного больше. Любая помощь была бы оценена, и простите меня, если я невежественен, но я действительно чувствую разочарование и не уверен, что делать дальше.
Ответ №1:
Laravel использует Eloquent ORM, поэтому вам не нужно бороться со всем этим подключением к БД. Чтобы настроить laravel с вашей базой данных, вы должны исправить свой файл .env
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=yourDB
DB_USERNAME=root
DB_PASSWORD=root
Следующий шаг — создать вашу модель
php artisan make:model Part
После его создания вы можете использовать все необходимые данные через eloquent.
В вашем примере вы можете сделать так. файл Part.php (модель)
добавьте сюда несколько кодов
public static function getParts($part)
{
$data = Part::where('item_description', like, '%'.$part.'%')->take(40)->get();
return $data;
}
И в вашем контроллере просто добавьте вверху
use AppPart;
И вы можете вызвать свою функцию и отобразить данные
public function ShowParts($part)
{
$data = Part::getParts($part);
return view('your_view', compact('data'));
}
Также внесите некоторые изменения в свой файл маршрута
web.php
Route::get('/getpart/{part}', 'Controller@ShowParts');
После создайте файл просмотра и используйте свои данные через @foreach
@foreach($data as $row)
<div>{{$row->part_number}}</div>
@endforeach
Надеюсь, это поможет вам