2016-11-01 2 views
-1

入力したユーザー名の一致をデータベースで検索し、その姓と名を表示する単純なフォームを作成しました。エラーの表示に問題があります。入力されたユーザー名がデータベースのユーザー名と一致しない場合は、nullまたは何も表示されていないはずです。 else文でnullをエコーし​​ようとしましたが、エラーメッセージが表示されます。データベースに一致するデータがないときにエラーをエコーする

<?php 

$db = new PDO('mysql:host=127.0.0.1;dbname=sample;charset=utf8', 'root', ''); 

if(isset($_POST['search'])) { 
    $search = $_POST['search']; 

    $query = $db->prepare("SELECT * FROM search WHERE username=:username"); 
    $query->execute(['username' => $search]); 

    $row = $query->fetch(PDO::FETCH_OBJ); 

    if(count($row)) { 
     echo $row->firstname . ' ' . $row->lastname; 
    } else { 
     echo null; 
    } 
} 


これを示すことになっていません。 enter image description here

+0

'エコーします$ row-> firstnameのような何かを行う必要があります。 ''。 $ row-> lastname; 'は14行目ですか?あなたは 'フェッチ'を条件づけしようとしましたか? – chris85

+0

どうすればいいですか? – JTrixx16

+0

はすでに問題を修正しています... – JTrixx16

答えて

0

あなたは

if(count($row) > 0) { 
    echo $row->firstname . ' ' . $row->lastname; 
} else { 
    echo null; 
} 
+0

が機能しませんでした。それでも、エラーメッセージ – JTrixx16

+0

が表示されます。まず、オブジェクト$行が空であるかどうかを確認します。 Do print_r($ row); –

+0

は既に問題を修正しました – JTrixx16

関連する問題