2015-04-07 2 views
0

Я очень новичок в HTML, PHP, JavaScript и т.д.Создание ссылки на конкретную страницу с помощью таблицы поля

У меня есть таблица, которая будет закачанный по базе данных, с полями, такие как имя, идентификационный код, электронный и т. д.

Я хотел бы показать страницу со всеми людьми в таблице со ссылкой на страницу сведений, в которой будут показаны все атрибуты (поле в таблице) человека.


Я использую MySQL, и я пытаюсь создать интерфейс администратора для лучшего управления пользователями.

+2

Покажите нам некоторое усилие кода. Тогда мы будем помогать в этом. –

+0

Очистка языка. –

+0

Я все еще пытаюсь создать код. На данный момент у меня есть только таблица HTML, готовая получить информацию из БД. –

ответ

0

Ваша ссылка может быть, как это person.php?id=1243

Где person.php страница, на которой вы отображения информации о личности с id = 1243

Вы можете получить идентификатор с помощью $id = $_GET['id'], а затем использовать его на mysql запрос:

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

И все готово.

EDIT: Для нескольких полей

Ссылка 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], а затем использовать его в запросе 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 
     } 
    } 
} 

Wich приведет:

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

И вы сделали.

+0

Будет ли это работать для нескольких полей ?! User1, User2 и т. Д. –

+0

Да, конечно, см. Мое редактирование. –

+0

Это работает очень хорошо с небольшим количеством полей, просто протестировало его, спасибо! Теперь, есть ли способ сделать это автономным? Где я могу случайно выбрать пользователя из таблицы (идентификатор может варьироваться от 1 до 5000+) и получить те же результаты ?! Заранее спасибо .. –

0

Основываясь на ответе Акрама, вы можете попробовать этот. Существует 2 случая: если у вас есть только 4 или 5 конкретных идентификаторов, вы можете сделать это: 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 
    } 
} 
Смежные вопросы