Как уже отмечалось, вам нужно предложение WHERE
, и, поскольку вы отметили, что в вашей пользовательской таблице есть только 3 столбца, вам нужно будет либо добавить автоматически увеличивающийся столбец (с именем uid
или id
или * 1004).* ... и т. д.), а затем передайте этот идентификатор в свой оператор sql из формы ИЛИ (не так хорошо, но будет работать), если ваши адреса электронной почты уникальны, вы можете использовать их в качестве идентификатора.Если пользователь может использовать один и тот же адрес электронной почты в вашей пользовательской таблице более одного раза, вам нужно создать новый столбец.В любом случае, я бы порекомендовал сделать столбец id
, но чтобы он заработал, вы можете попробовать что-то вроде:
Пример PHP, основанный на вашем
<?php if(!empty($_POST['email'])):
# Trim the input, to remove spaces/tabs
$email = trim($_POST['email']);
# Make sure this is an email address
if(!filter_var($email, FILTER_VALIDATE_EMAIL)):
# You don't have to die, but I am doing for quickness/ease
die('Invalid email.');
else:
$query = $pdo->prepare("SELECT * FROM users WHERE email = ?");
$query->execute([$email]);
while($row = $query->fetch(PDO::FETCH_ASSOC)): ?>
<p>FIRST: <?php echo $row['first_name'] ?></p>
<p>LAST: <?php echo $row['last_name'] ?></p>
<p>EMAIL: <?php echo $row['email'] ?></p>
<?php endwhile ?>
<?php endif ?>
<?php else: ?>
<p>Type in the email you are searching for.</p>
<form method="post" action="#">
<input type="text" name="email" placeholder="Email address" />
<input type="submit" value="Select" />
</form>
<?php endif ?>
Если выЕсли у вас есть идентификатор, и выведите список пользователей, вы можете указать их идентификатор как запрос, чтобы использовать WHERE
on:
<a href="/?action=edit&id=<?php echo $row['id'] ?>">EDIT <?php echo $row['first_name'].' '.$row['last_name'] ?></a>