If your table has a primary ID, then you can use this inside your application to point it to the correct record. I'm going to assume a few things just so I can give a better example of what you have to do, but you should be able to apply it to whatever design you have.
Basically, when you're generating the HTML for the address, edit, delete, etc, you must attach the primary key to the URL:
while ($array = mysqli_fetch_array($result))
{
// print out name and address stuff
print ("<a href=\"edit.php?id=" . $array['primaryIdColumn'] . "\">Edit</a>");
print ("<a href=\"delete.php?id=" . $array['primaryIdColumn'] . "\">Delete</a>");
}
So, when edit.php or delete.php gets run, the "id" variable (which is different for each entry) is passed to the script (via the $_GET array).
In edit.php (or delete.php), the first few lines of code should look like this
// verify that the record exists
// you should filter $_GET['id'] to make sure it's in the correct form
$query = "SELECT * FROM contacts WHERE primaryIdColumn='" . $_GET['id'] . "'";
$result = mysqli_query($link, $query);
if (mysqli_num_rows($result) < 1) { header("Location: contact_list.php"); }
$contactInfo = mysqli_fetch_array($result);
The contact information will be in $contactInfo and can be then appropriately edited in edit.php.