У меня есть функция поиска на моем веб-сайте, которая объединяет все таблицы с использованием функции UNION, и все работает отлично, за исключением того факта, что это статический оператор. В настоящее время это выглядит как код ниже. У меня есть еще одна таблица в базе данных, называемая список конференций, в которой указаны имена всех конференций. В будущем я, возможно, захочу добавить больше конференций в таблицу списка конференций, но мне не нужно заходить в приведенный ниже код и добавлять таблицу. Есть ли способ извлечь данные из таблицы списка конференций и вставить их в конференцию SELECT * FROM.
<?php
if($search_type == "Last Name"){
$raw_results_query = "(SELECT * FROM AtlanticCoastConference
WHERE (`lname` LIKE '%".$query."%'))
UNION
(SELECT * FROM CoastalCollegiateSwimmingAssociation
WHERE (`lname` LIKE '%".$query."%'))
UNION
(SELECT * FROM NCAADivisionII
WHERE (`lname` LIKE '%".$query."%'))
UNION
(SELECT * FROM NCAADivisionI
WHERE (`lname` LIKE '%".$query."%'))
UNION
(SELECT * FROM PacificCollegiateConference
WHERE (`lname` LIKE '%".$query."%'))
UNION
(SELECT * FROM PAC12
WHERE (`lname` LIKE '%".$query."%'))
UNION
(SELECT * FROM BIG12
WHERE (`lname` LIKE '%".$query."%'))
UNION
(SELECT * FROM BigEast
WHERE (`lname` LIKE '%".$query."%'))
UNION
(SELECT * FROM MountainWest
WHERE (`lname` LIKE '%".$query."%'))
UNION
(SELECT * FROM ColonialAthleticConference
WHERE (`lname` LIKE '%".$query."%'))
UNION
(SELECT * FROM LittleEastConference
WHERE (`lname` LIKE '%".$query."%'))
UNION
(SELECT * FROM GreaterNewEnglandConference
WHERE (`lname` LIKE '%".$query."%'))
UNION
(SELECT * FROM NEWMAC
WHERE (`lname` LIKE '%".$query."%'))
UNION
(SELECT * FROM NESCAC
WHERE (`lname` LIKE '%".$query."%'))
UNION
(SELECT * FROM Atlantic10Conference
WHERE (`lname` LIKE '%".$query."%'))
UNION
(SELECT * FROM ConferenceUSA
WHERE (`lname` LIKE '%".$query."%'))
UNION
(SELECT * FROM MetroAtlanticAthleticConference
WHERE (`lname` LIKE '%".$query."%'))
UNION
(SELECT * FROM Northeast10Conference
WHERE (`lname` LIKE '%".$query."%'))
UNION
(SELECT * FROM MissouriValleyConference
WHERE (`lname` LIKE '%".$query."%'))
UNION
(SELECT * FROM MAC
WHERE (`lname` LIKE '%".$query."%'))
UNION
(SELECT * FROM MetroConference
WHERE (`lname` LIKE '%".$query."%'))
UNION
(SELECT * FROM MichiganIntercollegiateAthleticAssociation
WHERE (`lname` LIKE '%".$query."%'))
UNION
(SELECT * FROM NorthernSunConference
WHERE (`lname` LIKE '%".$query."%'))
UNION
(SELECT * FROM Empire8Conference
WHERE (`lname` LIKE '%".$query."%'))
UNION
(SELECT * FROM NorthCentralConference
WHERE (`lname` LIKE '%".$query."%'))
UNION
(SELECT * FROM PatriotLeague
WHERE (`lname` LIKE '%".$query."%'))
UNION
(SELECT * FROM CoastalAthleticSwimAssociation
WHERE (`lname` LIKE '%".$query."%'))
UNION
(SELECT * FROM UniversityAthleticAssociation
WHERE (`lname` LIKE '%".$query."%'))
UNION
(SELECT * FROM NorthCoastAthleticConference
WHERE (`lname` LIKE '%".$query."%'))
UNION
(SELECT * FROM SunbeltConference
WHERE (`lname` LIKE '%".$query."%'))
UNION
(SELECT * FROM MissouriValleyConference
WHERE (`lname` LIKE '%".$query."%'))
UNION
(SELECT * FROM NorthCoastConference
WHERE (`lname` LIKE '%".$query."%'))
UNION
(SELECT * FROM SUNYACConference
WHERE (`lname` LIKE '%".$query."%'))
UNION
(SELECT * FROM NCAADivisionIII
WHERE (`lname` LIKE '%".$query."%'))
UNION
(SELECT * FROM BIG10
WHERE (`lname` LIKE '%".$query."%'))
UNION
(SELECT * FROM SoutheasternConference
WHERE (`lname` LIKE '%".$query."%'))
UNION
(SELECT * FROM USADiving
WHERE (`lname` LIKE '%".$query."%'))";
}
Я тоже пробовал это, но это не работает ... я хочу, чтобы все, что я хотел, - это цикл, который сделает UNION всех конференций из таблицы списка конференций.
<?php
$result1=mysqli_query($con,"select * From conferenceList ORDER By id ASC");
echo "$raw_results_query = '";
while($row=mysqli_fetch_array($result1)){
echo "(SELECT * FROM ";
echo "$row[name]";
echo "WHERE (`lname` LIKE '%".$query."%')) UNION";
}
echo "';";
?>