通过表字段创建指向特定页面的链接

时间:2015-04-07 14:00:54

标签: javascript php html mysql

我是HTML,PHP,JavaScript等的新手。

我有一个将由数据库上传的表格,其中包含姓名,身份证,电子邮件等字段。

我想在表格中显示一个包含所有人的页面,其中包含指向详细信息页面的链接,该页面将显示此人的所有属性(表格中的字段)。


我使用MySQL,我正在尝试构建一个Admin界面,以便更好地管理用户。

2 个答案:

答案 0 :(得分:0)

您的链接可能与此person.php?id=1243

相似

其中person.php是显示有id = 1243

的人员信息的页面

您可以使用$id = $_GET['id']检索id,然后在mysql查询中使用它:

SELECT * from Person WHERE id = $id; // Don't forget to handle SQL injection

你已经完成了。

编辑:适用于多个字段

链接person.php?id1=1243&id2=5678

检索值$id1 = $_GET['id1']$id2 = $_GET['id2']

MySQL:SELECT * from Person WHERE id IN($id1, $id2);

EDIT2:适用于一系列用户

链接person.php?startId=1&endId=5000

检索值$startId = $_GET['startId']$endId = $_GET['endId']

MySQL:SELECT * from Person WHERE id BETWEEN $startID AND $endId;

@PierreGranger提出的替代

您的链接可能与此person.php?id[]=1243&id[]=5678

相似

其中person.php是显示有id = 1243id = 5678

的人员信息的页面

您可以使用$id = $_GET['id'][0]检索id,然后在mysql查询中使用它:

if ( isset($_GET['id']) && is_array($_GET['id']) ) // Check if parameter is set
{
    $ids = $_GET['id'] ;
    foreach ( $ids as $k => $v )
        if ( ! preg_match('#^[0-9]+$#',$v) ) unset($ids[$k]) ; // Remove if parameters are not identifiers

    if ( sizeof($ids) > 0 ) // If there is still at least 1 id, do your job
    {
        $sql = ' SELECT * from Person WHERE id in (".implode('","',$ids).") ' ;
        $rq = mysql_query($sql) or die('SQL error') ;
        while ( $d = mysql_fetch_assoc($rq) )
        {
            // Do your SQL request and build your table
        }
    }
}

将导致:

SELECT * from Person WHERE id in ("1234","5678") ;

你已经完成了。

答案 1 :(得分:0)

根据Akram的回复,你可以尝试这个。 有两种情况:如果你只有4或5个特殊ID,你可以这样做: page.php?id[]=1&id[]=2&id[]=9

如果你想达到一个范围(id从1到1000): page.php?from=1&to=1000

unset($sql) ;
if ( isset($_GET['id']) && is_array($_GET['id']) ) // Check if parameter is set
{
    $ids = $_GET['id'] ;
    foreach ( $ids as $k => $v )
        if ( ! preg_match('#^[0-9]+$#',$v) ) unset($ids[$k]) ; // Remove if parameters are not identifiers

    if ( sizeof($ids) > 0 ) // If there is still at least 1 id, do your job
    {
        $sql = ' SELECT * from Person WHERE id in ("'.implode('","',$ids).'") ' ;
    }
}
elseif ( isset($_GET['from']) && isset($_GET['to']) )
{
    if ( preg_match('#^[0-9]+$#',$_GET['from']) && preg_match('#^[0-9]+$#',$_GET['to']) )
    {
        $sql = ' SELECT * from Person WHERE id between "'.$_GET['from'].'" and "'.$_GET['to'].'"' ;
    }
}

if ( isset($sql) )
{
    $rq = mysql_query($sql) or die('SQL error') ;
    while ( $d = mysql_fetch_assoc($rq) )
    {
        // Do your SQL request and build your table
    }
}