2015-05-16 4 views
0

Я пытаюсь сделать выбор из таблицы на основе значения post в поле выбора HTML. Я вообще не получаю никаких результатов, я не понимаю, что такое сообщение. Заявление работает на свое, но не будет, когда я использую форму для ее заполнения. Это всего лишь мой тест. Я добавлю другие варианты в раскрывающийся список.PHP mySQL select via html select

<?php 
if(isset($_POST['value'])) { 
if($_POST['value'] == 'Militaria') { 
    $query = "SELECT * FROM listings WHERE category1=Militaria"; 
} 
else { 
    // query to get all records 
    $query = "SELECT * FROM listings"; 
} 
} 
$sql = mysql_query($query); 
while ($row = mysql_fetch_array($query)){ 
    echo 'Description:' . $row['description']; 
} 
mysql_close($con);  
?> 

Вот HTML формы я использую, может кто-нибудь сказать мне, где я буду неправильно, я должен делать это по-другому и т.д., я новичок в PHP? Благодаря!!

<form action='<?php echo $_SERVER['PHP_SELF']; ?>' method='post' name='form_filter' > 
<select name="value"> 
    <option value="all">All</option> 
    <option value="Militaria">Militaria</option> 
</select> 
<br /> 
<input type='submit' value = 'Filter'> 
</form> 
+0

попробовать 'var_dump ($ _ POST)' и посмотреть, если есть значения в $ _POST – Lal

+0

Добавить одиночную кавычку рядом ... category1 = 'Милитария' –

ответ

2

mysql_fetch_array() должен получить resorce в качестве параметра. Попробуйте mysql_fetch_array($sql).

0

Цитата вокруг 'Милитария' и mysql_fetch_array ($ SQL)

<?php 

     if(isset($_POST['value'])) { 
      if($_POST['value'] == 'Militaria') { 
       $query = "SELECT * FROM listings WHERE category1='Militaria'"; 
      } 
      else { 
       // query to get all records 
       $query = "SELECT * FROM listings"; 
      } 

      $sql = mysql_query($sql); 
      while ($row = mysql_fetch_array($sql)){ 
       echo 'Description:' . $row['description']; 
      } 
      mysql_close($con); 
     } 
    ?> 

    <form action='<?php echo $_SERVER['PHP_SELF']; ?>' method='post' name='form_filter' > 
    <select name="value"> 
     <option value="all">All</option> 
     <option value="Militaria">Militaria</option> 
    </select> 
    <br /> 
    <input type='submit' value = 'Filter'> 
    </form> 
0

У вас есть две ошибки в коде PHP.

1-ая: цитата о Милитарии. Запрос должен быть указан:

2nd: mysql_fetch_array принимает результат выполненного запроса в качестве параметра. Должно быть, $row = mysql_fetch_array($sql)

Окончательный код:

<?php 
if(isset($_POST['value'])) { 
if($_POST['value'] == 'Militaria') { 
    $query = "SELECT * FROM listings WHERE category1 = 'Militaria'"; 
} 
else { 
    // query to get all records 
    $query = "SELECT * FROM listings"; 
} 
} 
$sql = mysql_query($query); 
while ($row = mysql_fetch_array($sql)){ 
    echo 'Description:' . $row['description']; 
} 
mysql_close($con);  
?>