如何使用已发布的数字ID从数据库中获取类别的值

时间:2014-05-21 04:28:57

标签: php

首先,请原谅我使用PHP非常环保。我是牙医的招聘人员 我有一份表格,我的候选人在网上填写。

我创建了4个mysql表,其中包含纪律,类型买家,过渡时间和毕业年份的信息。这允许我更改选项一次,而不是在我的网站上的多个页面上执行此操作。

您可以在http://www.missouridentalpracticeforsale.com/indexnewbjs.php

看到该表单

提交表单时,我让它正常工作,将数据库转储到我创建的数据库表中。但是,我每次获得新的潜在客户时都会收到一封电子邮件,而且对于在这些表中创建的字段,我只获取ID值,我需要获取与ID相关的内容。

实施例。而不是因为纪律而得牙医,我得到的值为1      我没有得到正规牙医买家类型的买家,而是获得#3

这是我的索引页面和表单提交页面的代码

---------- 2个字段的代码的小部分:Discipline和Type Buyer --------------

<tr>
<td>Discipline:</td>
<td><select name="disc" class="tableappointdata" id="disc">
<?php $discpfs_sql = 'SELECT id, disc FROM discpfs WHERE id >= 0'; $discpfs_res =       sql_query($discpfs_sql,$leads_db); while($discpfs = mysql_fetch_array($discpfs_res)){ echo '<option value="' . $discpfs['id'] . '">' . $discpfs['disc'] . '</option>'; } ?>
                      </select>                      </td>
                    </tr>
                    <tr>
                      <td>Type Buyer:</td>
                      <td><select name="typebuy" class="tableappointdata" id="typebuy">
                        <?php $typebuy_sql = 'SELECT id, typebuy FROM typebuy WHERE id >= 0'; $typebuy_res = mysql_query($typebuy_sql,$leads_db); while($typebuy = mysql_fetch_array($typebuy_res)){ echo '<option value="' . $typebuy['id'] . '">' . $typebuy['typebuy'] . '</option>'; } ?>
                      </select>                      </td>
                    </tr>

-------------------------------Form Submittal Code------------------------------------

            $msg  .= 'Name: ' . $_POST['first_name'] . ' ' . $_POST['last_name'] . '<br   />' . "\r\n";
        $msg  .= 'Discipline: ' . $_POST ['disc']  . '<br />' . "\r\n";
        $msg  .= 'Type Buyer: ' . $_POST['typebuy']  . '<br />' . "\r\n";
        $msg  .= 'Transition Time: ' . $_POST['transtime']  . '<br />' . "\r\n";
        $msg  .= 'Practice Type Desired: ' . $_POST['desire']  . '<br />' . "\r\n";
        $msg  .= 'Practice Size Wanted: ' . $_POST['practsize']  . '<br />' . "\r\n";
        $msg  .= 'Number of Ops: ' . $_POST['numberops']  . '<br />' . "\r\n";
        $msg  .= 'Graduation Year: ' . $_POST['grad']  . '<br />' . "\r\n";
        $msg  .= 'City: ' . $_POST['city']  . '<br />' . "\r\n";
        $msg  .= 'State: ' . $_POST['state']  . '<br />' . "\r\n";
        $msg  .= 'Zip: ' . $_POST['zip']  . '<br />' . "\r\n";

我知道这可能是一个非常简单的解决办法,但我会疯狂地试图找出如何显示单词,而不是我电子邮件中表格中相应的ID号。

非常感谢任何帮助。

由于

2 个答案:

答案 0 :(得分:0)

这是错误。

echo '<option value="' . $discpfs['id'] . '">' . $discpfs['disc'] . '</option>';

您正在选择选项中显示实际内容,但表单的POST方法发送的是“value”字段,即$ discpfs ['id']。

您有2个选项,如果您在提交表单后未使用ID,则可以在“值”字段中发送实际内容

echo '<option value="' . $discpfs['disc'] . '">' . $discpfs['disc'] . '</option>';

但是如果您使用id,则可以使用id创建另一个查询,并使用查询检索的值构建字符串$ msg。

使用如下查询:

$discpfs_sql = 'SELECT id, disc FROM discpfs WHERE id ='. $_POST['disc'];

答案 1 :(得分:-1)

请改用此代码。

    $disc_id=$_POST ['disc'];
    $discpfs_sql = mysql_query("SELECT disc FROM discpfs WHERE id = '$disc_id'");
    $disc=mysql_fetch_array($discpfs_sql);
    $type_id=$_POST ['typebuy'];
    $typebuy_sql = mysql_query("SELECT typebuy FROM typebuy WHERE id = '$type_id'");
    $typebuy=mysql_fetch_array($typebuy_sql);
    $msg  .= 'Name: ' . $_POST['first_name'] . ' ' . $_POST['last_name'] . '<br   />' . "\r\n";
    $msg  .= 'Discipline: ' . $disc['disc']  . '<br />' . "\r\n";
    $msg  .= 'Type Buyer: ' . $typebuy['typebuy']  . '<br />' . "\r\n";
    $msg  .= 'Transition Time: ' . $_POST['transtime']  . '<br />' . "\r\n";
    $msg  .= 'Practice Type Desired: ' . $_POST['desire']  . '<br />' . "\r\n";
    $msg  .= 'Practice Size Wanted: ' . $_POST['practsize']  . '<br />' . "\r\n";
    $msg  .= 'Number of Ops: ' . $_POST['numberops']  . '<br />' . "\r\n";
    $msg  .= 'Graduation Year: ' . $_POST['grad']  . '<br />' . "\r\n";
    $msg  .= 'City: ' . $_POST['city']  . '<br />' . "\r\n";
    $msg  .= 'State: ' . $_POST['state']  . '<br />' . "\r\n";
    $msg  .= 'Zip: ' . $_POST['zip']  . '<br />' . "\r\n";