2011-08-08 20 views
1

私はミニテストPHPのものを構築しています。そして、私は結果を検索することができる必要があります。これは素晴らしいです。しかし、私はこの周りにページングシステムを作るように見えることはできません。ここPHP - MYSQLが検索クエリで選択されていません

$search_result = mysql_query("SELECT * FROM test WHERE idedu_details='".$edu_details."' AND first_name LIKE '%".$search."%' OR surname LIKE '%".$search."%'"); 

は私の完全なコードです:mysqlのクエリが$ edu_detailsに等しいidedu_detailsテーブルのレコードを検索していないという理由だけで、私は一種のしかし、私はこれを行うことができないよう、ページングシステムを作る方法を知っています:

$search_result = mysql_query("SELECT * FROM test WHERE idedu_details='".$edu_details."' AND first_name LIKE '%".$search."%' OR surname LIKE '%".$search."%'"); 

    while($row_search = mysql_fetch_array($search_result)){ 


       $idedu_detail_check = mysql_query("SELECT * FROM test WHERE idtest='".$row_search['idtest']."'") or die(mysql_error()); 
       $row_idedu_check = mysql_fetch_array($idedu_detail_check); 

       if($row_idedu_check['idedu_details'] == $edu_details){ 
       $testid = $row_search['idtest']; 
       $firstName = $row_search['first_name']; 
       $surname = $row_search['surname']; 
       $dob = $row_search['dob']; 
       $date = $row_search['date']; 
       $status = $row_search['status']; 
       $link = "report.php?id=$testid"; 
       $button = '<button onClick="parent.location='. "'".$link."'".'">Analyse</button>'; 

       echo "<tr> 
        <td width='100'>$firstName</td> 
        <td width='100'>$surname</td> 
        <td width='100'>$dob</td> 
        <td width='100'>$date</td> 
        <td width='100'>$status</td> 
        <td width='100'>$button</td> 

        </tr>"; 
       }//end if idedu_detail check 

      }//end while 

     }//end else search != null 

これを回避するにはどうすればよいですか?

編集:私は一般的なページングシステムを作る方法を知っています。しかし、ided_details = $ edu_detailsを調べて、これを中心にページングシステムを構築することは問題を引き起こしています。

+0

なぜ2つのSELECTを実行していますか?私はそれらの2つのクエリを組み合わせることができます。 – nobody

答えて

1

私はあなたが句WHERE に括弧を追加するのを忘れ思う:

$search_result = mysql_query(" 
    SELECT * 
    FROM test 
    WHERE 
     idedu_details='".$edu_details."' AND 
     (first_name LIKE '%".$search."%' OR surname LIKE '%".$search."%') 
"); 

は常にORよりも優先されることに注意してください。

+0

ありがとうございます!これはすぐに働いた!私は今、ページングシステムを動作させました。ありがとうございました。 – ryryan

1

まず、取得する結果に制限を設定する必要があります。第二に、あなたはページを改ページしたり、何かを試したり、あなたができないことを知らせたりすることは何もしていません。 :)

+0

私は別のページのページングシステムを構築しました。しかし、これには、検索と、idedu_details = $ edu_detailsの確認が含まれます。私はその間に結果の数を知る必要があります。 – ryryan

+0

YouTubeで別のチュートリアルがあり、PHPでページを設定する方法はこちらです。 http://www.youtube.com/watch?v=wd4fE5fk-fk – Grigor

1

私は、あなたのSQLクエリがどこでidedu_details!= $ edu_detailsを引っ張っていると言いますか? 2つの論理和の周りの括弧の中に入れてみてください:

$search_result = mysql_query("SELECT * FROM test WHERE idedu_details='".$edu_details."' AND (first_name LIKE '%".$search."%' OR surname LIKE '%".$search."%')"); 
関連する問題