質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

XAMPP

XAMPP(ザンプ)は、ウェブアプリケーションの実行に必要なフリーソフトウェアをパッケージングしたApacheディストリビューションです。 XAMPPひとつインストールするだけで、Apache、MySQL、PHP、Perlなどのソフトウェアと、 phpMyAdminなどの管理ツール、SQLiteなどのソフトウェアやライブラリモジュールなどを利用することが可能です。

Laravel 5

Laravel 5は、PHPフレームワークLaravelの最新バージョンで、2014年11月に発表予定です。ディレクトリ構造がが現行版より大幅に変更されるほか、メソッドインジェクションやFormRequestの利用が可能になります。

Q&A

解決済

2回答

471閲覧

Laravel初心者です。

borabora

総合スコア11

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

XAMPP

XAMPP(ザンプ)は、ウェブアプリケーションの実行に必要なフリーソフトウェアをパッケージングしたApacheディストリビューションです。 XAMPPひとつインストールするだけで、Apache、MySQL、PHP、Perlなどのソフトウェアと、 phpMyAdminなどの管理ツール、SQLiteなどのソフトウェアやライブラリモジュールなどを利用することが可能です。

Laravel 5

Laravel 5は、PHPフレームワークLaravelの最新バージョンで、2014年11月に発表予定です。ディレクトリ構造がが現行版より大幅に変更されるほか、メソッドインジェクションやFormRequestの利用が可能になります。

0グッド

1クリップ

投稿2018/01/12 07:49

タイトルにある通りlaravel初心者です。参考書を買いその通りに進めているのですが、参考書通りにログイン画面を作り、/helloにアクセスしたところ、SQLSTATE[42S22]:Column not found:1054 Unknown column " in 'order clause' (SQL:select*from 'people' where 'age' > 20 order by "asc limit7 offset0)というエラーが出てしまいます。原因も解決策もわからず、初心者のため困っています。解決策と原因を教えていただきたいです。

コントローラのソースコード(参考書そのままです。)

<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use Illuminate\Http\Response; use Illuminate\Support\Facades\Input; use App\Http\Requests\HelloRequest; use Illuminate\Support\Facades\DB; use Validator; use Illuminate\Support\Facades\Session; use Illuminate\Support\Facades\Auth; use App\Person; class HelloController extends Controller { public function getAuth(Request $request) { $param = ['message' => 'ログインして下さい。']; return view('hello.auth', $param); } public function postAuth(Request $request) { $email = $request->email; $password = $request->password; if (Auth::attempt(['email' => $email, 'password' => $password])) { $msg = 'ログインしました。(' . Auth::user()->name . ')'; } else { $msg = 'ログインに失敗しました。'; } return view('hello.auth', ['message' => $msg]); } public function index(Request $request) { $user = Auth::user(); $sort = $request->sort; $items = Person::orderBy($sort, 'asc') ->simplePaginate(6); $param = ['items' => $items, 'sort' => $sort, 'user' => $user]; return view('hello.index', $param); } public function post(Request $request) { $items = DB::select('select * from people'); return view('hello.index', ['items' => $items]); } public function show(Request $request) { $page = $request->page; $items = DB::table('people') ->offset($page * 3) ->limit(3) ->get(); return view('hello.show', ['items' => $items]); } public function add(Request $request) { return view('hello.add'); } public function create(Request $request) { $param = [ 'name' => $request->name, 'mail' => $request->mail, 'age' => $request->age, ]; DB::table('people')->insert($param); //DB::insert('insert into people (name, mail, age) values (:name, :mail, :age)', $param); return redirect('/hello'); } public function edit(Request $request) { $item = DB::table('people') ->where('id', $request->id)->first(); return view('hello.edit', ['form' => $item]); } public function update(Request $request) { $param = [ 'name' => $request->name, 'mail' => $request->mail, 'age' => $request->age, ]; DB::table('people') ->where('id', $request->id) ->update($param); //DB::update('update people set name =:name, mail = :mail, age = :age where id = :id', $param); return redirect('/hello'); } public function del(Request $request) { $item = DB::table('people') ->where('id', $request->id)->first(); return view('hello.del', ['form' => $item]); } public function remove(Request $request) { DB::table('people') ->where('id', $request->id)->delete(); return redirect('/hello'); } }

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

$sort = $request->sort;

$items = Person::orderBy($sort, 'asc')

おそらく$sortが空なのでは?
order by 句に空のカラム名でソートをしているように見えます。
たとえばこうでしょうか?

PHP

1$sort = $request->sort; 2if($sort!=="") $items = Person::orderBy($sort, 'asc')

投稿2018/01/12 08:07

yambejp

総合スコア114572

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

borabora

2018/01/13 13:53

回答ありがとうございます。 例の通りにしてみたんですけどうまくいかないです... 何が何だかわからない状態です。 知識不足で申し訳ないです。
guest

0

まずは…
ソースコードは```(バッククォート3)つで囲いましょう。

エラー内容を見ると、order by に''がありますね。その為、カラムが見つからない、というエラーが出ているようです。

$sort = $request->sort; $items = Person::orderBy($sort, 'asc')

あたりが怪しいので、$sortがきちんとviewから渡されているかどうか、確認してみてください。

投稿2018/01/12 08:03

motuo

総合スコア3027

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

borabora

2018/01/13 13:54

回答ありがとうございます。 知識不足なのでもう少し勉強しようと思います。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問