2012-12-03 46 views
0

我只是使用SQL查询从数据库中拉出不同的健身房,现在必须根据下拉结果将其拉入。这是我到目前为止。任何帮助将非常感激。如何根据下拉菜单结果从数据库中提取信息

<?php 

require_once('connect.php'); //connecting to my database 

mysql_select_db("gyms", $connect); 

$result = mysql_query("SELECT * FROM gym WHERE id='1'"); //each gym has an "id" field of 1-5 

while($row = mysql_fetch_array($result)) 
{ 
echo $row['name']; //all different attributes in the gym database 
echo $row['type']; 
echo $row['price']; 
echo $row['hours']; 
echo $row['parking']; 
echo $row['facilities']; 
} 

?> 

回答

0

下拉字段需要是表单的一部分。

if (!isset($_POST['gyms'])) { 
echo '<form action="same.php" method="post"> 
    <select name="gyms"> 
     <option value="1">Gym 1</option> 
     <option value="2">Gym 2</option> 
    </select> 
</form>'; 
} else { 

    $id = $_POST['gyms']; 
    // DO NOT forget to sanitize the value of $id before plugging it in 
    // NEVER trust user input. Always assume it's a hacker. 
    $result = mysql_query("SELECT * FROM gym WHERE id=$id"); 
    $row = mysql_fetch_array($result) 
    // $row should contain the results from the database for the given gym 
    var_dump($row); 
} 

顺便说一句,我强烈建议使用PDO而不是mysql _ *()函数。下面是一些相关链接:

+0

这是一个没有返回输出一些reason..i说, “$ ID = $ _ POST [ '健身房'];”有一个未定义的索引? –

+0

确保您在提交表单之前没有尝试访问索引。换句话说,将PHP从'$ id = $ _POST ['gyms'];通过从数据库中分配变量结果得到一个if语句,比如'if(isset($ _ POST ['submit']) )' – imkingdavid

+0

我用更完整的代码示例更新了我的问题。如果您想在选择健身房后始终显示下拉菜单,您可以将if()部分向下移至else所在的位置(移除else),并移除isset()调用的否定。另外,请注意最后关于PDO的评论。 – imkingdavid

相关问题