Php 如何将特定记录从resultset发布到其他页面

Php 如何将特定记录从resultset发布到其他页面,php,html,post,get,resultset,Php,Html,Post,Get,Resultset,我是一个PHP新手,我已经迷上了这个 我有一个数据库和一个简单的搜索表单。我可以毫无问题地使用我想要的条件进行搜索-例如,我以“Alex”的名字填写,我可以在我的结果集中看到5条符合此条件的记录。到目前为止还不错 问题是:我需要创建一个链接/按钮-无论什么-并发布/获取我将选择的特定记录的值。当结果集只包含找到的一条记录时,我没有问题-一切正常。但是,只要resultset返回超过1条记录,Post/Get方法就会获取最后一条记录的数据 让我告诉你我在这里做什么。。。以下是我正在检索的数据:

我是一个PHP新手,我已经迷上了这个

我有一个数据库和一个简单的搜索表单。我可以毫无问题地使用我想要的条件进行搜索-例如,我以“Alex”的名字填写,我可以在我的结果集中看到5条符合此条件的记录。到目前为止还不错

问题是:我需要创建一个链接/按钮-无论什么-并发布/获取我将选择的特定记录的值。当结果集只包含找到的一条记录时,我没有问题-一切正常。但是,只要resultset返回超过1条记录,Post/Get方法就会获取最后一条记录的数据

让我告诉你我在这里做什么。。。以下是我正在检索的数据:

    while ($row= mysql_fetch_array($result)) {

    $my_id = $row["ID"];
    $my_name = $row["name"];
    $my_profession = $row["profession"];

    echo "<div align='center'><tr>
     <td><div align='center' style='color:white;'><font size='2' face='Arial'>$my_id</div></td></font>
     <td><div align='center' style='color:white;'><font size='2' face='Arial'>$my_name</div></td></font>
     <td><div align='center' style='color:white;'><font size='2' face='Arial'>$my_profession</div></td></font>
     <td><div align='center' style='color:white;'><font size='2' face='Arial'><form action='person_info.php' method='POST'><input type='hidden' name='PersonID' value='$my_id' /><input type='hidden' name='PersonName' value='$my_name' /><input type='hidden' name='PersonProfession' value='$my_profession' /><input type='submit' value='Show' /></div></td></font>

    .....
while($row=mysql\u fetch\u array($result)){
$my_id=$row[“id”];
$my_name=$row[“name”];
$my_profession=$row[“profession”];
回声“
$my_id
$my_name
$我的职业
.....
下面是person_info.php的代码:

    $my_id = $_POST["PersonID"];
    $my_name = $_POST["PersonName"];
    $my_profession = $_POST["PersonProfession"];

    echo "
    <div align='center'><font size='4' face='Georgia' style='color:red';><b>$my_id, $my_name,  $my_profession</b></font></div>
$my_id=$\u POST[“PersonID”];
$my_name=$\u POST[“PersonName”];
$my_profession=$\u POST[“PersonProfession”];
回声“
$我的身份证,$我的名字,$我的职业
如果只涉及一条记录,一切都很好。如果有多条记录,我会得到最后一条记录的详细信息。例如,从结果集:

1.亚历克斯失业 亚历克斯·卡彭特 亚历克斯·加德纳

…最终将发布的记录是“3亚历克斯·加德纳”

有什么想法吗


提前感谢!

personID、personname和PersonProffion是否始终是输入的名称?看起来您的值基于当前拉入的数据库条目,但如果您没有使用唯一的名称,则会导致问题

如果您对每一组隐藏输入使用相同的名称,那么当您使用Post或Get传递它们时,无法区分它们,您的名称字段应该是唯一的,最后一个条目是唯一经过的条目,因为当添加每个条目时,它基本上覆盖了过去的条目

让我知道如果这对你有效,我希望你能找到答案

编辑:

让每个条目进入一个唯一页面的最简单方法是使用GET(如Paul Weber所述)多个表单进行后期工作,但它很快就会变得混乱:

        while ($row= mysql_fetch_array($result)) {

        $my_id = $row["ID"];
        $my_name = $row["name"];
        $my_profession = $row["profession"];

        echo'<a href="somepage.php?personid='.$my_id.'&personname='.$my_name.'&personprofession='.$my_profession.'">Name Your Link</a>';

        }
while($row=mysql\u fetch\u array($result)){
$my_id=$row[“id”];
$my_name=$row[“name”];
$my_profession=$row[“profession”];
回声';
}

上面的代码将创建一个链接,该链接以get形式传递所需信息,然后您可以在somepage上将其拉出。php它也比表单更干净。

personID、personname和PersonProffion始终是输入的名称吗?看起来您的值基于当前拉入的数据库条目,但如果您是未使用会导致问题的唯一名称

如果您对每一组隐藏输入使用相同的名称,那么当您使用Post或Get传递它们时,无法区分它们,您的名称字段应该是唯一的,最后一个条目是唯一经过的条目,因为当添加每个条目时,它基本上覆盖了过去的条目

让我知道如果这对你有效,我希望你能找到答案

编辑:

让每个条目进入一个唯一页面的最简单方法是使用GET(如Paul Weber所述)多个表单进行后期工作,但它很快就会变得混乱:

        while ($row= mysql_fetch_array($result)) {

        $my_id = $row["ID"];
        $my_name = $row["name"];
        $my_profession = $row["profession"];

        echo'<a href="somepage.php?personid='.$my_id.'&personname='.$my_name.'&personprofession='.$my_profession.'">Name Your Link</a>';

        }
while($row=mysql\u fetch\u array($result)){
$my_id=$row[“id”];
$my_name=$row[“name”];
$my_profession=$row[“profession”];
回声';
}

上面的代码将创建一个链接,以获取所需的信息,然后在somepage上将其拉出。php它也比表单干净得多。

如果这是您正在使用的确切代码,看起来您并不是在关闭表单。因此,当您单击“提交”按钮时,它将捕获所有数据,然后覆盖每一次都会重复,直到最后一次

抛出一个:

</form>


如果这是您正在使用的确切代码,它看起来不像您正在关闭表单。因此,当您单击“提交”按钮时,它会捕获所有数据,然后每次都覆盖它,直到到达最后一个

抛出一个:

</form>


如果可以使用get,只需将参数附加到Url即可传递参数

所以你可以走了

<a href="save.php?PersonName=$name&Profession=$profession...">Save</a>

如果不能使用Get,您可以将表单分开,在所有输入元素周围创建一个表单标记,以便只提交当前范围内的元素。这意味着您将为每一行创建一个新表单


或者使用JQuery发布帖子。

如果可以使用get,只需将参数附加到Url即可传递参数

所以你可以走了

<a href="save.php?PersonName=$name&Profession=$profession...">Save</a>

如果不能使用Get,您可以将表单分开,在所有输入元素周围创建一个表单标记,以便只提交当前范围内的元素。这意味着您将为每一行创建一个新表单


或者使用JQuery发布帖子。

这似乎是最简单的解决方案。我甚至没有注意到包含了起始表单标记。上帝……我完全是一个傻瓜:p它就像一个符咒!非常感谢Matt:d这似乎是最简单的解决方案。我甚至没有注意到包含了起始表单标记。上帝……我是c完全没有B:P它像一个符咒一样工作!非常感谢马特:谢谢你们,它工作了!非常感谢你们的时间:D对早些时候的混乱感到担忧希望我没有给你们发一个坏消息我一开始误解了你们在做什么。但我很高兴它现在工作了。谢谢你们,它工作了!非常感谢你们的帮助