2016-05-09 14 views
-1

現在、次のコードは個々のサイト運営者のフィルタを表示します。つまり、DCを選択すると、DCタイトルのみが表示されます。php mysqlドロップダウン値の選択

現在のコードからは、ドロップダウンメニューからすべてのパブリッシャを表示することができないという問題があります。

<div id="main"> 
    <form method="post" action=""> 
    <div id="search_query" > 
    <select name="make" size="0"> 
     <option value="all">All Publishers</option> 
     <option value="DC">DC</option> 
     <option value="Marvel">Marvel</option> 
     <option value="Image">Image</option> 
    </select> 

    <input type="submit" name="submit" value="submit"> 

    </div> 
</form> 
<div id="main_container"> 
<?php 
$db_con = mysql_connect('127.0.0.1','root','root'); 
if (!$db_con) { 
    die('Could not connect: ' . mysql_error()); 
} 
mysql_select_db('work', $db_con); 
if(isset($_POST['submit'])) 
{ 
    $make = mysql_real_escape_string($_POST['make']); 
    $sql = sprintf("SELECT * FROM products WHERE publisher= '$make' "); 

    $result = mysql_query($sql); 

    echo "<table width= 970 border=1> 
    <tr> 
    <th width='120' scope='col'>Title</th> 
    <th width='170' scope='col'>Publisher</th> 
    <th width='185' scope='col'>Price</th> 
    <th width='126' scope='col'>Desc</th> 
    </tr>"; 
    while($row = mysql_fetch_array($result)) 
    { 
    echo "<tr>"; 
    echo "<td>".$row['title']."</td>"; 
    echo "<td>". $row['publisher'] . "</td>"; 
    echo "<td>". $row['price'] ."</td>"; 
    echo "<td>". $row['desc'] ."</td>"; 
    echo "</tr>"; 
    } 
    echo "</table>"; 
} 
else 
{ 
    $sql = sprintf("SELECT * FROM products"); 
    $result = mysql_query($sql); 

    echo "<table width= 970 border=1> 
    <tr> 
    <th width='120' scope='col'>Title</th> 
    <th width='170' scope='col'>Publisher</th> 
    <th width='185' scope='col'>Price</th> 
    <th width='126' scope='col'>Desc</th> 
</tr>"; 
while($row = mysql_fetch_array($result)) 
{ 
    echo "<tr>"; 
    echo "<td>".$row['title']. "</td>"; 
    echo "<td>". $row['publisher'] . "</td>"; 
    echo "<td>". $row['price'] ."</td>"; 
    echo "<td>". $row['desc'] ."</td>"; 
    echo "</tr>"; 
} 
echo "</table>"; 
} 

mysql_close($db_con); 
?> 
+0

'depreacatedされる' mysql_ *、 'mysqli_ * OR PDO' – Nehal

答えて

0

クエリでは、publisher = $ makeは$ make = "all"を検索しています。 データベーステーブルには、おそらくpublisher = "make"というレコードがありません。

私はここで他の条件ならば追加するようにお勧めしたい:

if (isset($_POST['submit'])) { 

    $make = mysql_real_escape_string($_POST['make']); 

    if ($make != "all") { 
     $sql = sprintf("SELECT * FROM products WHERE publisher= '$make' "); 
    } else { 
     $sql = sprintf("SELECT * FROM products"); 
    } 

    /* Other code */ 
} 
+0

を使用してみてください、あなたに感謝します。フィルターからのすべての値が今動作します。ドロップダウンから値を選択するまで、ページに何もロードされていない唯一のものが画面に出力されます。 –

関連する問題