使用php和mysql下拉列表数据不匹配

时间:2014-01-22 09:54:51

标签: php mysql

首先,谢谢你们帮我解决这个小问题。

直接讨论这些事情,但首先我一直在谷歌上搜索这个剧本,当然还有这个论坛。

我的数据库:

(1)。 tbl_barang>

id_barang id_kategori id_klasifikasi nama_barang

(2)。 tbl_kategori>

id_kategori nama_kategori

(3)。 tbl_klasifikasi>

id_klasifikasi nama_klasifikasi

这是我的脚本>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Untitled Document</title>
<script language="javascript" type="text/javascript">
    function showBarang(katid) {
        document.frm.submit();
    }
</script>
</head>
<body>
<form action="" method="post" name="frm" id="frm">
<table width="500" border="0">

<!--Kategori-->
  <tr>
    <td width="119">Kategori</td>
    <td width="371">
       <select name="id_kategori" id="id_kategori" onChange="showBarang(this.value);">
       <option value="">--Select--</option>
       <?php
        $sql1="select * from tbl_kategori";
       $sql_row1=mysql_query($sql1);
       while($sql_res1=mysql_fetch_assoc($sql_row1))
       {
       ?>
       <option value="<?php echo $sql_res1["id_kategori"]; ?>" <?php if($sql_res1["id_kategori"]==$_REQUEST["id_kategori"]) { echo "Selected"; } ?>><?php echo $sql_res1["nama_kategori"]; ?></option>
        <?php
        }
        ?>
       </select>
       </td>
  </tr>
 <!-- Klasifikasi -->
 <tr>
    <td>Klasifikasi</td>
    <td id="td_company">
       <select name="id_klasifikasi" id="id_klasifikasi" onChange="showBarang(this.value);">
       <option value="">--Select--</option>
       <?php
        $sql1="select * from tbl_klasifikasi";
       $sql_row1=mysql_query($sql1);
       while($sql_res1=mysql_fetch_assoc($sql_row1))
       {
       ?>
       <option value="<?php echo $sql_res1["id_klasifikasi"]; ?>" <?php if($sql_res1["id_klasifikasi"]==$_REQUEST["id_klasifikasi"]) { echo "Selected"; } ?>><?php echo $sql_res1["nama_klasifikasi"]; ?></option>
        <?php
        }
        ?>
    </select>
       </td>
  </tr>
  <tr>
    <td>Nama Barang</td>
    <td id="td_company">
       <select name="id_barang" id="id_barang">

       <option value="">--Select--</option>
       <?php
       $sql="select * from tbl_barang where id_kategori and id_klasifikasi='$_REQUEST[id_kategori] && [id_klasifikasi]'";
       $sql_row=mysql_query($sql);
       while($sql_res=mysql_fetch_assoc($sql_row))
       {
       ?>
       <option value="<?php echo $sql_res["id_barang"]; ?>"><?php echo $sql_res["nama_barang"]; ?></option>
       <?php
       }
       ?>
    </select>
       </td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
  </tr>
</table>
</form>
</body>
</html>

问题是,当我们选择kategori并选择klasifikasi时,数据'nama_barang'应显示在第三个下拉列表中。但这一切都很混乱,我不知道如何从不同的表中请求两个id并从一个表'tbl_barang'中显示它。

简短的问题是,我不知道如何显示来自tbl_barang的数据&gt; 'nama_barang'与'tbl_kategori'和'tbl_klasifikasi'有相关的id。

非常感谢你们,如果有人在这里帮助我,已经有三天了,我就被困住了。

谢谢你,最诚挚的问候,

克里斯

1 个答案:

答案 0 :(得分:0)

我认为你试图在不同的表之间做join

下一步是你的sql语法:

$sql="select * from tbl_barang where id_kategori and id_klasifikasi='$_REQUEST[id_kategori] && [id_klasifikasi]'";

试试这个:

$sql="select * from tbl_barang where id_kategori = ".$_REQUEST[id_kategori]." and id_klasifikasi = ".$_REQUEST[id_klasifikasi].";";

当这些ID存储为数字时,不要使用引号来包装它们。

希望它有所帮助。你的问题并不是很清楚。