2012-05-11 2 views
0

私は検索フォームを持っており、検索結果ページが読み込まれると、ユーザーが結果を絞り込むことを可能にするいくつかのジャンプメニューが一番上にあります。PHPで文字列が一致している、時にはうまくいきません、何が欠けていますか?

ジャンプメニューには、選択した検索条件が投稿されたフォームから表示されます。

しかし、「ポート」ジャンプメニューで、ブリストルまたはエジンバラを選択した場合、結果ページに着くと、ポートメニューには選択されたものとして表示されません。これは、他のすべて...

ためにここでクルーズの検索ボックスから、私の検索を選択し、コード

<select name="port" id="port"> 
<option selected value="%">All Ports...</option> 
<option value="Bristol Avonmouth">Bristol Avonmouth</option> 
<option value="Edinburgh Leith">Edinburgh Leith</option> 
<option value="Glasgow Greenock">Greenock</option> 
<option value="Hull">Hull</option> 
<option value="Liverpool">Liverpool</option> 
<option value="London, Tilbury">London Tilbury</option> 
<option value="Newcastle">Newcastle</option> 
</select> 

だと、ここで結果ページにジャンプメニューコード私がきた

<div id="cac"> 
    <h3>Sailing from...</h3> 
    <p>&nbsp;</p> 
    <p> 
    <select name="jumpMenu3" id="jumpMenu3" onchange="MM_jumpMenu('parent',this,0)"> 
    <option value="">Select a port</option> 
    <?php 
    $ports = array(); 
    mysql_data_seek($cruises, 0); 
    while ($row_cruises = mysql_fetch_assoc($cruises)) { 
    if (!in_array($row_cruises['fromport'], $ports)) { 
     $ports[] = $row_cruises['fromport']; 
    ?> 
    <option value="index.php?subj=2&destination=<?php echo urlencode($row_cruises['destination']);?>&departs=<?php echo date('Ym',strtotime($row_cruises['departs']));?>&port=<?php echo urlencode($row_cruises['fromport']);?>"<?php if ($_GET['port'] == $row_cruises['fromport'] OR $_POST['port'] == $row_cruises['fromport']) {echo "selected=\"selected\"";}?>><?php echo $row_cruises['fromport']; ?></option> 
    <?php } ; 
    } 
    if(mysql_num_rows($cruises) > 0) { 
     mysql_data_seek($cruises, 0); 
     $row_cruises = mysql_fetch_assoc($cruises); 
    } 
    ?> 
    </select> 

ですんスペル、大文字、小文字、スペースなど、データベース内のポートそのものをチェックしました。

多分、私は類似またはワイルドカード比較演算子が必要ですか?

DOH DOH DOHそれを修正

- ポートがアップになり、ポートテーブルに対してではない、それはクルーズテーブルに出発ポートのために書かれたものを反対だし、間違って入力されているいくつかのクルーズがあります。.. 。

リッチ:)

+2

古き良きmysql_ *関数を使って新しいコードを書くのを止めてください。それらはもはや維持されず、コミュニティは[非推奨プロセス](http://goo.gl/KJveJ)を開始しました。代わりに、[準備完了声明](http://goo.gl/vn8zQ)について学び、[PDO](http://php.net/pdo)または[MySQLi](http://php.net/)を使用する必要があります。 mysqli)。あなたが決定できない場合、[この記事](http://goo.gl/3gqF9)が選択に役立ちます。あなたが覚えていれば、[こちらはPDO関連の良いチュートリアルです](http://goo.gl/vFWnC)。 – vascowhite

+0

ありがとうPDO/MySQLiで読んでいただきありがとうございます:)私はちょうどそれをもう一度読んで、私のコードに何が間違っているのか分かりました。作品は驚くべき質問を投稿する – Rich

+0

PDOに行くと、見た目よりもずっと簡単です。 – vascowhite

答えて

0

交換してみてください:

if ($_GET['port'] == urlencode($row_cruises['fromport']) OR $_POST['port'] == urlencode($row_cruises['fromport']))

if ($_GET['port'] == $row_cruises['fromport'] OR $_POST['port'] == $row_cruises['fromport'])
+0

また良いアイデア! – Rich

関連する問題