从php中的sql数据库中检索id值,该值不是最后插入的

时间:2013-01-21 14:19:57

标签: php mysql sql

我有一个专为足球运动员设计的数据库,因此请将表格包含以下字段:

  • PERSON_ID
  • 将First_Name
  • NICNAME
  • 地址行
  • Contact_Number
  • Date_of_birth
  • 邮编

我需要为玩家提取Person_ID而不实际输入身份证号码,因为玩家不会知道他们的个人号码,而且只能由系统使用。

我输入了用于在输入特定值时选择播放器的My sql代码:

SELECT `Person_ID` FROM `person` WHERE `First_Name` = 'A Name' and `Surname` = 'Another Name'

然而,当放入函数时,这在php中不会很好地返回。我目前拥有的功能如下所示(php)

function showid($fname, $sname, $d) {
    $sql = "SELECT `Person_ID` FROM `person` WHERE `First_Name` = '$fname' and `Surname` = '$sname'";
    $result = mysqli_query($d, $sql);
    if (!$result)
        print ("$sql failed".mysqli_error($d));
    else {
        print ("$fname $sname is selected<br>");
    }
}

$name$sname是用户输入的值,然后他们就可以转移到其他团队或更新其帐户等,但我需要选择ID以便进一步的功能和查询可以完全发挥作用。

1 个答案:

答案 0 :(得分:-1)

如果要获取所选播放器的ID,请使用fetch_array函数

http://php.net/manual/en/mysqli-result.fetch-array.php

function showid($fname, $sname, $d) {
    $sql = "SELECT `Person_ID` FROM `person` WHERE `First_Name` = '$fname' and `Surname` = '$sname'";
    $result = mysqli_query($d, $sql);
    if (!$result)
        print ("$sql failed".mysqli_error($d));
    else {
        print ("$fname $sname is selected<br>");
    }

    $row = $result->fetch_array(MYSQLI_ASSOC);
    echo "Your ID is" . $row['Person_ID'];
}

这当然假设只有一个结果(否则我们必须循环)所以你可能想检查$ result-&gt; num_rows等于1并且如果它不是则返回错误(假设你不使用UNIQUE)你的数据库)