2013-02-09 4 views
1

Я новичок в php и хочу узнать об этом коде. У меня есть одно раскрывающееся меню и одна кнопка. Я хочу искать в базе данных sql то, что я выбираю в те выпадающее меню. Что такое синтаксис sql для элемента поиска в базе данных sql с помощью выпадающего меню. По умолчанию я пишу ->SELECT * FROM helpline.Использование значения в выпадающем меню для поиска базы данных sql

Должно быть ->SELECT * FROM helpline WHERE MISC = %**item in drop down menu**%.

Это мой базы данных = Служба поддержки

Table = helpline 

NAME | DATE | MISC | 
John | 02/01/2011 | Item 1 | 
Mark | 03/01/2011 | Item 2 | 

Это мой код

<form id="form1" name="form1" method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>" > 
<label for="namelist"></label> 
<select name="namelist" id="namelist"> 
<option selected="selected" disabled="disabled">PLEASE CHOOSE ONE ITEM:-</option> 
<option>Item 1</option> 
<option>Item 2</option> 
</select> 
<input type="submit" name="show" id="show" value="Submit" /> 
<?php 
mysql_select_db("helpdesk",mysql_connect("localhost","root",""))or die (mysql_error()); 
$query = "SELECT * FROM helpline"; */ This line should select what I choose in drop down menu /* 
$result = mysql_query($query); 
while ($row = mysql_fetch_array($result)){ 
?> 
<table border="0" cellpadding="6" cellspacing="6" class="curve"> 
<thead> 
<tr> 
<th> <div align="right"><span class="font">NAME</span></div></th> 
<th> <div align="right"><span class="font">DATE</span></div></th> 
</tr> 
</thead> 
<tbody> 
<tr> 
<th><div align="left"><span class="font"><?php echo $row['name']; ?></span></div></th> 
<td><div align="left"><span class="font"><?php echo $row['date']; ?></strong></span></div></td> 
</tr> 
</tbody> 
&nbsp; 
<?php 
} 
?> 
</table> 
</form> 

Итак, необходимо отобразить все элементы базы данных SQL в соответствии с тем, что я выбираю в выпадающем меню при щелчке кнопка.

+1

пожалуйста. Стоп. С помощью. 'Mysql_'. функции. – Kermit

+0

Я предполагаю, что вы хотите загрузить эти данные без перезагрузки страницы, что подходящим способом будет использование ajax, и я бы рекомендовал использовать фреймворк, потому что один аякс может быть сложным для незнакомого глаза. Хорошим началом было бы использование jQuery – Breezer

ответ

1

Вы можете получить доступ к своим опубликованным данным формы через ассоциативный массив php $_POST[], как описано в PHP's Online Manual. Из этого вы можете выбрать namelist и передать значение вашему SQL.


$query = "SELECT * FROM helpline"; 
if(isset($_POST['namelist'])){ 
    $dropdown_val = $_POST['namelist']; 
    $query .= " WHERE MISC = '$dropdown_val'"; 
} 

Но вы действительно должны использовать Ajax для этого и jQuery будет отличным Javascript рамки, чтобы помочь вам сделать это. Кроме того, функции mysql_ * устаревают с PHP 5.5.0 и будут удалены в будущем. Вместо этого следует использовать расширение MySQLi или PDO_MySQL.

+0

, похоже, для него ошибка - Неопределенный 'namelist' – Alieym

1

Без обновления страницы Вы можете сделать это, как этот

<script> 
    $(document).ready(function(){ 
     $("#namelist").change(function(){ 
      var data = $(this).val(); 
      $.ajax({ 
       type:'POST', 
       data:'search_value='+data, 
       url:'search_process.php', 
       success:function(data){ 
        $("#result").html(data); 
       }    
      });   
     }); 

    }); 


</script> 

HTML, часть

<select name="namelist" id="namelist"> 
<option selected="selected" disabled="disabled">PLEASE CHOOSE ONE ITEM:-</option> 
<option>Item 1</option> 
<option>Item 2</option> 
</select> 
<input type="button" name="show" id="show" value="Submit" /> 

<div id="result"></div> 

search_process.php Page

<?php 

// DATABASE CONNECTIVITY 

if(isset($_POST['search_value'])) { 
    $val = $_POST['search_value']; 


    $query = mysql_query("SELECT * FROM helpline WHERE MISC LIKE %$val%"); 

    // NOW RUN YOUR QUERY 

    $result = '<table border="0" cellpadding="6" cellspacing="6" class="curve">'; 
    $result .= '<thead>'; 
    $result .= '<tr>'; 
    $result .= '<th> <div align="right"><span class="font">NAME</span></div></th>'; 
    $result .= '<th> <div align="right"><span class="font">DATE</span></div></th>'; 
    $result .= '</tr>'; 
    $result .= '</thead>'; 
while($row = mysql_fetch_array($query)){ 

    $result .= '<tr>'; 
    $result .= '<th><div align="left"><span class="font">'.$row['name'].'</span></div></th>'; 
    $result .= '<td><div align="left"><span class="font">'.$row['date'].'</strong></span></div></td>'; 
    $result .= '</tr>'; 

} 
    $result .= '</table>'; 
    echo $result; 
} 
?> 

Надеется, что это дает представлению

1

ваш выбрать параметры не имеют значения атрибута

your dropdown 
<select name="namelist" id="namelist"> 
<option selected="selected" disabled="disabled">PLEASE CHOOSE ONE ITEM:-</option> 
<option>Item 1</option> 
<option>Item 2</option> 
</select> 

change it : 
<select name="namelist" id="namelist"> 
<option selected="selected" disabled="disabled" value="">PLEASE CHOOSE ONE ITEM:-</option> 
<option value="Item 1">Item 1</option> 
<option value="Item 2">Item 2</option> 
</select> 

после отправить значение получить от $ _POST [ ""] списке имен

Смежные вопросы