本帖最后由 changjay 于 2010-06-30 23:59:25 编辑

解决方案 »

  1.   

    不论是JS还是PHP代码,都太乱了,错的也太多。
    你的意思是表达清楚了,但代码和表达的意思就相差很远了。
    下面是改的,不知道是不是你要的。
    按照你发的代码,根本就不需要JS。<?
    require_once("conn.php"); //连接MYSQL
    mysql_select_db("root", $db); //连接数据库
    ?>
    <form name="name" method='POST'>
    <select name=cat1>
    <option value=''>Select name</option>
    <?
    $q=mysql_query("select name1 from table2",$db);
    while($n=mysql_fetch_array($q)){
    echo "<option value=$n[name1]>$n[name1]</option>";
    }
    ?>
    </select> // 下拉框1结束
    <select name=cat2> 
    <option value=''>Select name</option>
    <?
    $q=mysql_query("select name2 from table3",$db);
    while($n=mysql_fetch_array($q)){
    echo "<option value=$n[name2]>$n[name2]</option>";
    }
    ?>
    </select> // 下拉框2结束
    <input type=submit value=submit> //按钮
    </form>
    <?
    $cat1=$_GET["cat1"];
    $cat2=$_GET["cat2"];
    $where = "where 1";
    $cat1!="" && $where .= " and name1 like '%".$cat1."%'";
    $cat2!="" && $where .= " and name2 like '%".$cat2."%'";
    $result = mysql_query ("SELECT * FROM table1 $where",$db);
    while($row = mysql_fetch_array($result))
    { echo  "{$row['name3']}<br\> {$row['name4']}<br\> {$row['name5']}";}
    ?> // name1,name2到table1里匹配输出结果
      

  2.   


    <?
    require_once("conn.php"); //连接MYSQL
    mysql_select_db("root", $db); //连接数据库
    ?>
    <form name="name" action="" method='POST'>
    <select name=cat1>
    <option value=''>Select name</option>
    <?
    $q=mysql_query("select name1 from table2",$db);
    while($n=mysql_fetch_array($q)){
    $selected = $_POST["cat1"]==$n['name1'] ?"selected":"";
    echo "<option value='{$n['name1']}' $selected>{$n['name1']}</option>";
    }
    ?>
    </select> // 下拉框1结束
    <select name=cat2> 
    <option value=''>Select name</option>
    <?
    $q=mysql_query("select name2 from table3",$db);
    while($n=mysql_fetch_array($q)){
    $selected = $_POST["cat2"]==$n['name2'] ?"selected":"";
    echo "<option value='{$n['name2']}' $selected>{$n['name2']}</option>";
    }
    ?>
    </select> // 下拉框2结束
    <input type=submit name="submit" value=submit> //按钮
    </form>
    <?
    if($_POST["submit"]){$_POST["cat1"]
    $cat1=$_POST["cat1"];
    $cat2=$_POST["cat2"];
    $where = "where 1";
    $cat1!="" && $where .= " and name1 like '%".$cat1."%'";
    $cat2!="" && $where .= " and name2 like '%".$cat2."%'";
    $result = mysql_query ("SELECT * FROM table1 $where",$db);
    while($row = mysql_fetch_array($result)){
    echo  "{$row['name3']}<br\> {$row['name4']}<br\> {$row['name5']}<hr/>";
    }
    }
    ?> // name1,name2到table1里匹配输出结果
      

  3.   

    result = mysql_query ("SELECT * FROM table1 WHERE name1,name2 like '%".$key."%'"); ????sql语句是这样写的吗?
      

  4.   

    感谢你的解答,但是我用了你的方法试了,还是出现了问题。
    页面打开后没有报错,但是选择后按SUBMIT键,出现了
    Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in E:\www\search.php on line 36
    // name1,name2到table1里匹配输出结果 table1里name1,name2就是 table2里的name1和table3里的name2里的字,但是table1里的name3,name4,name5可能包含name1与name2的文字,比如name1:侦探,name2:日本,name3:名侦探柯南错误会不会是这个原因?
      

  5.   

    确定是这样写的吗?if($_POST["submit"]){
        $cat1=$_POST["cat1"];
        $cat2=$_POST["cat2"];
        $where = "where 1";
        $cat1!="" && $where .= " and name1 like '%".$cat1."%'";
        $cat2!="" && $where .= " and name2 like '%".$cat2."%'";
        $result = mysql_query("SELECT * FROM table1 $where",$db);
        while($row = mysql_fetch_array($result)){
            echo  "{$row['name3']}<br\> {$row['name4']}<br\> {$row['name5']}<hr/>";
        }
    }前面的都可以,没道理后面的就不行了。
    难道是表名或字段名不对???
      

  6.   


    我把table2,table3全都换成table1,可以测试出结果。
    但是全部代码里用3个不同的表就会出错。全都改成table1以后,我在上面2个下拉框的代码 select 后面加 distinct,下拉框变的很长,但是里面的文字全都不显示了,一片空白……