首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从db调用时,在窗体中传递选定内容的信息

从db调用时,在窗体中传递选定内容的信息
EN

Stack Overflow用户
提问于 2012-07-17 13:59:38
回答 2查看 108关注 0票数 0

我正在做一个项目,无论我做什么,我似乎都做不到这一点。

我有3个表在数据库,年,manufacturer_id和模型

我想显示的基础上,由用户提出的要求和模型。也就是说,如果用户选择Make作为福特,然后选择year作为1942,那么Model应该返回该年生产的所有车型的列表。但是它不起作用,有人能告诉我哪里出了问题吗?

我的数据库表设置如下。

制造商2列id (唯一)和制造商

年份2列id (唯一)和年份

模型4列id (它是唯一的)、year (对应于年份id表)、manufacturer_id (对应于制造商id表)和模型。

我使用的代码如下所示。

代码语言:javascript
复制
 <tr>
<td align="right" label for='formyear'>Year: </td>
<td><select name="formyear">
<?php 
$sql="SELECT id,year FROM year";
$result =mysql_query($sql);
while ($data=mysql_fetch_assoc($result)){
?>
<option value ="<?php echo $data['id'] ?>" ><?php echo $data['year'] ?></option>
<?php } ?>
</select></td>
</tr>
<tr>
<td align="right" label for='formmake'>Make: </td>
<td><select name="formmake" id="formmake" onchange="return populateModel(this.value);">
<?php 
$sql="SELECT id,manufacturer FROM manufacturer";
$result =mysql_query($sql);
while ($data=mysql_fetch_assoc($result)){
?>
<option value ="<?php echo $data['id'] ?>" ><?php echo $data['manufacturer'] ?></option>
<?php } ?>
</select>
</td>
</tr>
<tr>
<td align="right" label for='formmodel'>Model: </td>
<td><select name="formmodel" id="formmodel">
<?php 
$sql="SELECT id,manufacturer_id,model FROM model WHERE year='1'";
$result =mysql_query($sql);
while ($data=mysql_fetch_assoc($result)){
?>
<option value ="<?php echo $data['id'] ?>" ><?php echo $data['model'] ?></option>
                                <?php } ?>

                                </select>

我好像把这事搞得一团糟。我想要感谢所有关注这篇文章的人的帮助。

EN

回答 2

Stack Overflow用户

发布于 2012-07-17 14:19:14

如果您是认真的,请使用PDO。

话虽如此,我还是会把年份放在模型表中。是的,对于给定的模型,您将有多个条目,但是对于年份有一个单独的表,这意味着您必须将该年份与所有相关模型相关联,显然每个模型的年份都不同。只需添加一个年份字段,在make ID上添加INNER JOIN

我不是一个汽车爱好者,但可能比年份的车型更少,在这种情况下,将车型Id添加到年表中的条目会更少。

如果您正在使用年份表做其他事情,例如用户提交信息的表单……在模型表中使用年份ID并内部连接这三个表。

不过这一点还是一样的。您有多个模型表行,每年一个

票数 0
EN

Stack Overflow用户

发布于 2012-07-18 14:06:44

对于年份和制造商下拉列表,在更改时,获取在javascript函数中选择的年份和制造商的值(如果未设置,则假定为空)。

然后,为了获取相关的列,您可以向php文件发送一个ajax调用,并将上面的值作为参数。在php文件中,您可以只根据发送数据检查模型:

代码语言:javascript
复制
$year=(isset($_REQUEST['year']) && $_REQUEST['year']!='')?$_REQUEST['year']:'';
$mfr_id=(isset($_REQUEST['mfr_id']) && $_REQUEST['mfr_id']!='')?$_REQUEST['mfr_id']:'';

$sql="SELECT id,model FROM model";
if($year!='')
{
    $sql.=" WHERE year=".$year;
    if($mfr_id!='')
        $sql.=" and manufacturer_id=".$mfr_id;
}
else
{
    if($mfr_id!='')
        $sql.=" WHERE manufacturer_id=".$mfr_id;
}
$result =mysql_query($sql);

结果集中的行将根据您的条件进行筛选。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11516793

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档