У меня только начальная стадия изучения, поэтому прошу сильно не ругаться. Нужна помощь в следующем моменте. Есть php-страница с результатами sql-запроса в виде таблицы, примерно такого вида: Имя | Номер Вася | 2215456 Дима | 66623232 Имя - это ссылка на новый пустой файл, например get_info.php Как правильно сделать, что бы при нажатии на Вася передавалось get_info.php?2215456, Дима - get_info.php?66623232 и т.д. - т.е. что бы у каждого имени была страница со своим id, которую я буду заполнять очередным sql-запросом индивидуально. Заранее спасибо за подробные ответы.
А в чём проблема? Я, правда, всё же бы сделал, чтоб у параметра было имя типа get_info.php?n=66623232, тогда будет доступно через переменную $_GET['n'] Но можно и так, как ты нарисовал. Тогда надо разобрать $_SERVER["REQUEST_URI"] с помощью parse_url
$_GET['n'], если я верно понимаю, можно получить из адресной строки браузера. А у меня на выходе html-страница с кучей столбцов и из нее необходимо получить уже уникальную ссылку на каждого пользователя. get_info.php?n=xxxxxxxx меня вполне устроит, но я не могу понять как забрать из второй ячейки таблицы идентификатор пользователя.
Его надо не из ячейки забирать, а из адреса запроса (когда перейдут по ссылке с этим адресом). Как «забирать», вы сами выше написали: $_GET['n'] (только надо проверять, есть ли такой параметр). «Забираете», естественно, в файле-обработчике get_info.php --- Добавлено --- Есть вариант и попроще: https://gency.ru/comment/125
Прошу Вас, объясните пошагово мои следующие действия для получения уникальной ссылки для каждой записи. Моя страница index.php c таким кодом: $sqlSelect1 = "SELECT Table1.fio as fio, Table1.number as number FROM Table1"; $result = mysqli_query($connect,$sqlSelect1) or die (mysqli_error($mysqli)); for ($data = []; $row = mysqli_fetch_assoc($result); $data[] = $row); // $result = mysqli_query($data, $row); $result = ''; foreach ($data as $elem){ $result.='<tr>'; $result.=<td>'<a href="get_info.php?id=">'.$elem['fio'].</td>'; $result.='<td>'.$elem['number'].'</td>'; $result.='</tr>'; } echo$result; ?> В итоге в браузере я вижу всех людей, выбранных селектом в виде: Вася | 2215456 Дима | 66623232 В строке моего кода страницы index.php $result.=<td>'<a href="get_info.php?id=">'.$elem['fio'].</td>'; я пытаюсь сделать уникальную ссылку для каждого сотрудника. т.е. при нажатии должен будет подгружаться файл get_info.php с кодом каждого человека из таблицы. Как сделать эту ссылку? Как получить и прописать id конкретно в моем случае?
href="get_info.php?id=" кто подскажет, тому ложкой по одному месту --- Добавлено --- Чувак, тебя ТС игнорит.
@MouseZver я не игнорю, я туплю. $result.=<td>'<a href="get_info.php?id='.$elem['tab_n'].'">'.$elem['fio'].</td>'; Вот, кажется должно быть так.
Да, только откр. кавычка не после <td>, а перед --- Добавлено --- Вместо «накапливания» результата можно прямо в шаблоне сделать цикл. PHP: <?php foreach ($data as $item): ?> <tr> <td><a href="get_info.php?id=<?= $item['id'] ?>"><?= $item['name'] ?></a></td> <td><?= $item['id'] ?></td> </tr> <?php endforeach; ?> Хотя зачем светить id в таблице, я не знаю. --- Добавлено --- Адрес в href можно вообще не хардкодить, например: PHP: <a href="<?= pagelink(0, $item['id'], 'users') ?>">
@miketomlin спасибо, буду изучать ваш материал. Там не совсем ID, там уникальный номер каждого человека. Т.е. это не ID из БД, а поле c присвоенным номером, что то типа табельного номера.
Не Я имел в виду, что не совсем понятно, нафига нужна та колонка. Но ТС объяснил. @17dtf32, тогда лучше в адресе использовать этот номер (как вы вроде бы и делаете), чтобы у юзера меньше сознание раздваивалось. В общем это тоже идентификатор. Некоторые даже считают его первостепенным, т.к. он (в основном) используется при взаимодействии сайта с юзером. На «магический» 0 в последнем примере не обращайте внимания. Взял реальный пример, где назначение этого нуля «все» знают.
Очень. На практике был момент такой, что когда ид чела подставляет атрибут в форму и js отрабатывает запросом на сервер, то там любой айди напиши и изменит данные профиля какого-то чела или админа.
Ну тут проблема не то, что айди на фронт пришёл (он всё равно по любому как-то туда обычно должен попасть), а то, что серверный код не проверял, кому можно менять данные профиля, кому нет.