使用PHP显示MySql结果(下拉菜单)

使用PHP显示MySql结果(下拉菜单),php,mysql,Php,Mysql,我已经创建了一个数据库,显示了一个投资组合的图像,该投资组合也有分类(围栏和装饰、衬里、停车场等)。。我试图创建一个下拉菜单,只显示选定的类别,默认为“所有”图像。。这是我的代码,目前似乎无法正常工作 <?php define('DB_NAME', 'wlarter_portfolio'); define('DB_USER', 'wlarter_user'); define('DB_PASSWORD', 'pw'); define('DB_HOST', 'localhost'); $l

我已经创建了一个数据库,显示了一个投资组合的图像,该投资组合也有分类(围栏和装饰、衬里、停车场等)。。我试图创建一个下拉菜单,只显示选定的类别,默认为“所有”图像。。这是我的代码,目前似乎无法正常工作

<?php

define('DB_NAME', 'wlarter_portfolio');
define('DB_USER', 'wlarter_user');
define('DB_PASSWORD', 'pw');
define('DB_HOST', 'localhost');

$link = mysql_connect(DB_HOST, DB_USER, DB_PASSWORD);

if (!$link) {
    die('Could not connect: ' . mysql_error());
}

$db_selected = mysql_select_db(DB_NAME, $link);

if (!$db_selected) {
    die('Can\'t use ' . DB_NAME . ': ' . mysql_error());
}

$results= mysql_query("SELECT * FROM images") 
    or  die(mysql_error());

?>

<?php
while ($row = mysql_fetch_assoc($results)) { ?>

<div class="box-portfolio"> <?php echo $row['Img']; ?> </div>

<?php 
}; 
?>

<?php
   $category = isset($_GET['category']) && is_numeric($_GET['category']) ? $_GET['category'] : 1; // where 1 is a default category to show!
?>
<select onchange="if(this.value != '') document.location = '/portfolio.php?category=<?php echo $category; ?>&order_by=' + this.value">
  <option value="">Choose an option</option>
  <option value="Fencing & Decking"<?php if(isset($_GET['order_by']) && $_GET['order_by'] == 'Fencing & Decking') echo ' selected="selected"'; ?>>Fencing & Decking</option>
  <option value="Lining"<?php if(isset($_GET['order_by']) && $_GET['order_by'] == 'Lining') echo ' selected="selected"'; ?>>Lining</option>
</select>


您需要重写查询。使用此代码:

$qry = "SELECT * FROM images ";
if(isset($_GET['category']) && is_numeric($_GET['category'])){
   $qry .=  "where category = ".$_GET['category'];
}
$results= mysql_query($qry) or  die(mysql_error());

假设您的表中有category_id列。您可以替换第74行isset($\u GET['category'])和&is\u numeric($\u GET['category'])上的名称wh

Error{通过替换查询,我现在从下拉菜单中选择时收到一个错误。'您的SQL语法有错误;请查看与您的MySQL服务器版本对应的手册,以了解在第1行的'where category=1'附近使用的正确语法'我很抱歉,我是一个新手php@user3505895对不起,我弄错了,我再次编辑了代码plz现在检查。似乎已经修复了错误,但是在选择类别时结果没有显示出来,这可能是我的错误,但是列名是“category”,所以应该可以正常工作?@user3505895 hmm应该可以正常工作该列中的值取决于此。您可以通过两种方式完成:单独使用PHP和使用AJAX。在第一种方式中,您将我需要重新加载你的页面才能将
POST
值传递给查询,而在第二个页面中,它是使用javascript完成的,这样页面就不会被重新加载。昆汀-我将研究一下@ICanHasCheezburger-你推荐使用哪种?你能帮我实现这一点吗?