我是HTML,PHP,JavaScript等的新手。
我有一个将由数据库上传的表格,其中包含姓名,身份证,电子邮件等字段。
我想在表格中显示一个包含所有人的页面,其中包含指向详细信息页面的链接,该页面将显示此人的所有属性(表格中的字段)。
我使用MySQL,我正在尝试构建一个Admin界面,以便更好地管理用户。
答案 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 = 1243
和id = 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
}
}