【问题标题】:Why is mysql data not pulling into form despite query finding record, does look up value need to be unique?尽管查询查找记录,为什么mysql数据没有拉入表单,查找值是否需要唯一?
【发布时间】:2014-12-18 11:59:29
【问题描述】:

如果搜索框值与 MYSQL 中的行和属性 Client_Name 匹配,我有以下代码应该从 mysql 数据库中提取数据。

请参阅http://www.recruitingblt.comli.com/add-new-sales-record.html

找到匹配项后,表单会恢复(尝试 James Dean)并且不会自动填充我想要的字段(现在我只是要求 Client_Address、Client_Phone 和 Attn_Email1 进行测试)。这些是mysql表bltrecruiting中的列名。

我在想也许 Client_Name 需要是唯一的,假设我有 Microsoft 公司,并且有不止一行,尽管所有 Microsoft 记录都相同,但查询是否无法通过地址、电话等进行提取?查找值是否需要唯一?

<?php
$regnum = $_GET['regnum']; 
//////////regnum is named box at top of form page (Client Name Box) 

//////Connection which seems to work fine 
$db_host = 'mysql6.000webhost.com';
$db_username = '********';
$db_password = '********';
$db_name = 'a8748341_bltrec';

mysql_connect( $db_host, $db_username, $db_password) or die(mysql_error());
mysql_select_db($db_name); 

////// Check for the Client Name which is a field Client_Name in the database - Should Client_Name be unique? 

$result = mysql_query("SELECT * FROM bltrecruiting WHERE Client_Name='$regnum'") or
die(mysql_error());
$row = mysql_fetch_array( $result );
if (empty($row[Client_Name]))
{
        echo "No previous record of Client: $regnum <br>";
        echo "Please try again <br>" ?>

        <div id=regcon>
            <FORM NAME = "reg" action=database.php>
            <div style=width:150px; float:left; display:inline-block; font-family: Verdana;
            font-size: 12px; padding-left:13px;> Client Name: </div>

            <input type="text" id="textbox" name="regnum" size="20"/>
            <input name="Submit"  type="submit" value="Get Form"/>

            </form>
        </div>
 }
else
{
///////// Get the fields from the database
    $address = $row['Client_Address'];
    $phonenumber = $row['Client_Phone'];
    $name= $row['Attn_Name1'];
    //add your additional fields here


    echo '<script    type="text/javascript"src="http://form.jotform.com/jsform/43438603456356?"Client_Name='.$regnum.'&Client_Address='.$address.'&Client_Phone='.$phonenumber.'&Attn_Name1='.$name.'"></script>';


}
?>
</body>
</html>

【问题讨论】:

  • 运行 error.php 页面时,我得到了这个;注意:未定义的索引:第 9 行 /home/a8748341/public_html/database.php 中的 regnum。这是第 9 行; $regnum = $_GET['regnum']; regnum 是搜索字段的名称......有人帮忙吗?
  • 理想情况下,您确实需要一个唯一的公司名称,但如果您想测试您的脚本,请将“limit 1”添加到您的 mysql 查询中 - 这将只返回 1 行。
  • 你的目标是只返回 1 个结果吗?
  • 嗨@PHPology 是的,只有一个,因为将来可能有很多具有该客户端名称的条目,我只想要一个结果来预填充其余字段,因为一个结果将是所有条目都相同。所以我在$'regnum'之后添加'limit 1'?提前谢谢你
  • @PHPology 我刚刚阅读了关于 LIMIT 1 的手册,这是有道理的,所以我在 $'regnum' 之后将其添加到查询中,但仍然没有,但我认为这是在正确的轨道上,我会继续努力。这是我当前的查询(“SELECT * FROM bltrecruiting WHERE Client_Name='$regnum' LIMIT 1”)

标签: javascript php mysql forms


【解决方案1】:

我注意到您的 empty($row[Client_Name]) 周围没有引号,但我测试了以下代码。即使您可能有超过 1 行,您的 $row 变量也会在其索引中包含第 1 行的数据(您不会通过 mysql_fetch_array 执行 while 循环)。

if (!is_array($row) && empty($row['Client_Name']))
    {
            echo "No previous record of Client: $regnum <br>";
            echo "Please try again <br>";
    ?>

        <div id=regcon>
            <FORM NAME = "reg" action=database.php>
            <div style=width:150px; float:left; display:inline-block; font-family: Verdana;
            font-size: 12px; padding-left:13px;> Client Name: </div>

            <input type="text" id="textbox" name="regnum" size="20"/>
            <input name="Submit"  type="submit" value="Get Form"/>

            </form>
        </div>
<?php
 }
else
{
    ///////// Get the fields from the database
    $address = $row['Client_Address'];
    $phonenumber = $row['Client_Phone'];
    $name= $row['Attn_Name1'];
    //add your additional fields here

    echo '<script type="text/javascript"src="http://form.jotform.com/jsform/43438603456356?"Client_Name='.$regnum.'&Client_Address='.$address.'&Client_Phone='.$phonenumber.'&Attn_Name1='.$name.'"></script>';
}

我在本地做了一个测试,并在 javascript URL 中伪造了一些值——它们应该以那种形式出现吗?

【讨论】:

  • 是的,java URL 中的表单,当我取出 LIMIT 1 并按客户端名称搜索时,它会返回到表单,但不会通过任何数据。当我在查询中有限制 0 或限制 1 时,它找不到记录,有什么想法吗?我已经在 if 数组中添加了,我现在可以看到为什么这很重要。我还取出了字段,因此它只是从数据库 Attn_Email1 中提取一个数据字段以简化要测试的字符串,但仍然没有运气。
  • pastie.org/9788368 @Katie - 试试我所做的。 p.s.这有点盲目所以可能会抛出错误
  • 嗨@PHpology 我已经尝试过你的脚本,完全没有错误,当我搜索数据库中的名称时,它只是恢复为表单但不会通过... .我很困惑!
  • sql打印出来了吗?你跑了吗? print_r($row) 也给了你什么吗?
  • 对不起,你把我弄丢了,我在哪里合并 print_r($row)?它不在我的 php 中运行这个查询??对不起@PHPology
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-03-06
  • 1970-01-01
  • 1970-01-01
  • 2021-04-11
  • 1970-01-01
相关资源
最近更新 更多