0

まず、これがばかげた質問である場合はお詫び申し上げます。私は、php/mysql のスキルを習得し始めたばかりです。3 つのドロップダウンでドロップダウン フォームを作成しています。フォームからクエリをトリガーできるようにしたい。パーツ タイプ、メーカー、モデル ヒット サブミットを選択すると、結果の表が表示されます。

フォームに 3 つの配列が入力されており、送信を押すと、選択した各項目のキーをページにエコーできます。

    echo '<form action="dbBrowse.php" method="post">';

    $mak = array (0 => 'Make', 'Ford', 'Freightliner', 'Peterbilt', 'Sterling', 'Mack', 'International', 'Kenworth', 'Volvo');
    $mod = array (0 => 'Model', 'Argosy', 'Midliner');
    $p = array (0 => 'Part', 'Radiator', 'Charge Air Cooler', 'AC');                        



    echo '<select name="drop1">';
    foreach ($p as $key => $value) {
    echo "<option value=\"$key\">
    $value</option>\n";

    }


    echo '</select>';




    echo '<select name="drop2">';
    foreach ($mak as $key => $value) {
    echo "<option value=\"$key\">
    $value</option>\n";



    }

    echo '<select/>';



    echo '<select name="drop3">';
    foreach ($mod as $key => $value)  {
    echo "<option value=\"$key\">
    $value</option>\n";



    }

    echo '<select/>';
    echo '</form>';


            //echo keys of selection
    echo $_POST['drop1'];
    echo "<br />";
    echo $_POST['drop2'];
    echo "<br />";
    echo $_POST['drop3'];
            //these echo something like 1, 1, 3 etc. to my page

私が迷子になっているのは、選択したオプションを取得して、次のようなクエリに挿入しようとしていることです。

     $dropSearch = mysql_query('SELECT * FROM parts WHERE part= "$partTypeVar" . AND  WHERE make = "$makeTypeVar" . AND WHERE model = "$modelTypeVar"');    

            $partTypeVar being the corresponding value to the key that is being returned from the array.        

私はそれを実現する方法を見つけようとして夢中になっています。最終的にはこれをさらに拡張したいと思っていますが、選択した値で mysql ステートメントを作成できるだけで、今は一日が楽しくなります。何が起こる必要があるかという概念は理解していますが、それを達成する方法がわかりません。正しい方向への助けやプッシュは大歓迎です。

4

3 に答える 3

0

私があなたの質問を理解したなら、提出されたとき、あなたは選択された値でデータベースにform行きたいです。query

使用例AND

// Prepare the Query
$query = sprintf(
           "SELECT * FROM parts WHERE part='%s' AND make='%s' AND model='%s'",
           mysql_real_escape_string($_POST['drop1']),
           mysql_real_escape_string($_POST['drop2']),
           mysql_real_escape_string($_POST['drop3'])
         );

// Execute the Query
mysql_query($query);

これにより、これら3つの値に一致するすべての行がテーブルパーツから選択されます。

使用例OR

// Prepare the Query
$query = sprintf(
           "SELECT * FROM parts WHERE part='%s' OR make='%s' OR model='%s'",
           mysql_real_escape_string($_POST['drop1']),
           mysql_real_escape_string($_POST['drop2']),
           mysql_real_escape_string($_POST['drop3'])
         );

// Execute the Query
mysql_query($query);

これにより、これら3つの値のいずれかに一致するすべての行がテーブルパーツから選択されます。

あなたはこれについてもっと読むことができます:

mysql_query

mysql_real_escape_string

MySQL5.6リファレンスマニュアル:: 12関数と演算子:: 12.3演算子

于 2012-06-04T19:58:36.953 に答える
0

まず、を削除する必要があります。SQLクエリのcharの場合、今のところそれを使用する必要はなく、もちろん変数に正しい値を割り当てます。

$partTypeVar = mysql_real_escape_string($_POST['$drop1']);
$makeTypeVar = mysql_real_escape_string($_POST['$drop2']);
$modelTypeVar = mysql_real_escape_string($_POST['$drop3']);

$dropSearch = mysql_query('SELECT * FROM parts WHERE part= "$partTypeVar" AND WHERE make = "$makeTypeVar" AND WHERE model = "$modelTypeVar"');

私はそれがあなたの変数の正しい順序であると仮定しています。

この助けを願っています!

于 2012-06-04T19:58:53.993 に答える
0
<select name="myFilter">
<option value="Chooseafilter" name="default">Choose a filter...</option>
<option value ="Lastname" name="opLastName">Last Name</option>
<option value="Firstname" name="opFirstName">First Name</option>
<select>
<li><!--TEXT SEARCH INPUT--><input type="text" name="search_filter" /></li> 
...
dbconnection();#assume that all connection data is here        
...
$filter = $_POST['myFilter']; #
...

switch($filter)
    {
        case "Lastname":
        $selectedoption = "profile_name";
        break;

        case "Firstname":
        $selectedoption="profile_first_name";
        break;

        case "Chooseafilter":
        $selectedoption = "";
        break;  
    }           

$result = pg_query($db_con, "SELECT * FROM profile WHERE ".$selectedoption." LIKE'%$_POST[search_filter]%'"); 
$row = pg_fetch_assoc($result);  
if (isset($_POST['submit']))
    {   
        while($row = pg_fetch_assoc($result))
        {
        echo"<ul>  
                <form name='update' action='' method='POST'>
                <li>Guest Last Name:</li>
                <li><input type='text' name='profile_name_result' value='$row[profile_name]' /></li>  
                <li>Guest First Name:</li>
                <li><input type='text' name='profile_first_name_result' value='$row[profile_first_name]' /></li>  
                <li><input type='submit' value='Update' name='update'></input></li>
    ...               
于 2013-12-30T18:32:59.717 に答える