Can I use a loop to select in MySQL?
$sql="SELECT *
FROM message_contact
WHERE ( user1 = '$name1'
OR user1 = '$name2'
OR user1 = '$name3'
OR user1 = '$name4'
OR user2 = '$name1'
OR user2 = '$name2'
OR user2 = '$name3'
OR user2 = '$name4' )
AND cantact_type = '1'
order by id asc ";
You can rewrite it this way
SELECT *
FROM message_contact
WHERE contact_type = 1
AND ('$name1' IN(user1, user2)
OR '$name2' IN(user1, user2)
OR '$name3' IN(user1, user2)
OR '$name4' IN(user1, user2))
ORDER BY id
You can group the variables of names and use IN clause, Just like
SELECT *
FROM message_contact
WHERE contact_type = 1
AND (user1 IN($name1, $name2, $name3, $name4)
OR (user2 IN($name1, $name2, $name3, $name4)
OR (user3 IN($name1, $name2, $name3, $name4)
OR (user4 IN($name1, $name2, $name3, $name4)
ORDER BY id