У меня есть 3 таблицы базы данных. 1 имеет детали, 1 имеет функции и 1 имеет часы. Таблица функций и часов имеет идентификатор и идентификатор из таблицы подробностей. То, что я пытаюсь сделать, это создать 1 массив с 3 массивами в нем, один для деталей, 1 для функций и 1 в течение нескольких часов. Вот мой код:Почему мои результаты MySQL неожиданно повторяются?
$query = mysqli_query($connection, "
SELECT `modelHomes`.`id`, 'testname' as `name`, `modelHomes`.`sqft`,
'123 Fake St' as `address`, '555-5555' as `phone`, `modelHomes`.`galleryid`,
`modelHomes`.`virtualtourid`, `modelHomeFeatures`.`text` as `feature`,
`modelHomeHours`.`text` as `hour`
FROM `modelHomes`
INNER JOIN `modelHomeFeatures` ON `modelHomeFeatures`.`modelhomeid` = `modelHomes`.`id`
INNER JOIN `modelHomeHours` ON `modelHomeHours`.`modelhomeid` = `modelHomes`.`id`
");
$results = array();
while($row = mysqli_fetch_assoc($query)){
$results[] = $row;
}
return $results;
возвращает это:
Array ([0] => Array ([id] => 1 [name] => testname [sqft] => 2501 [address] => 123 Fake St [phone] => 555-5555 [galleryid] => 9 [virtualtourid] => 1 [feature] => 4 Bedrooms [hour] => Mon-Thurs 1pm-6pm) [1] => Array ([id] => 1 [name] => testname [sqft] => 2501 [address] => 123 Fake St [phone] => 555-5555 [galleryid] => 9 [virtualtourid] => 1 [feature] => 4 Bedrooms [hour] => Friday 12pm-5pm) [2] => Array ([id] => 1 [name] => testname [sqft] => 2501 [address] => 123 Fake St [phone] => 555-5555 [galleryid] => 9 [virtualtourid] => 1 [feature] => 4 Bedrooms [hour] => Sat-Sun 12pm-5pm) [3] => Array ([id] => 1 [name] => testname [sqft] => 2501 [address] => 123 Fake St [phone] => 555-5555 [galleryid] => 9 [virtualtourid] => 1 [feature] => 2 Sided Gas Fireplace [hour] => Mon-Thurs 1pm-6pm) [4] => Array ([id] => 1 [name] => testname [sqft] => 2501 [address] => 123 Fake St [phone] => 555-5555 [galleryid] => 9 [virtualtourid] => 1 [feature] => 2 Sided Gas Fireplace [hour] => Friday 12pm-5pm) [5] => Array ([id] => 1 [name] => testname [sqft] => 2501 [address] => 123 Fake St [phone] => 555-5555 [galleryid] => 9 [virtualtourid] => 1 [feature] => 2 Sided Gas Fireplace [hour] => Sat-Sun 12pm-5pm) [6] => Array ([id] => 1 [name] => testname [sqft] => 2501 [address] => 123 Fake St [phone] => 555-5555 [galleryid] => 9 [virtualtourid] => 1 [feature] => All Oak Staircase with Open Risers [hour] => Mon-Thurs 1pm-6pm) [7] => Array ([id] => 1 [name] => testname [sqft] => 2501 [address] => 123 Fake St [phone] => 555-5555 [galleryid] => 9 [virtualtourid] => 1 [feature] => All Oak Staircase with Open Risers [hour] => Friday 12pm-5pm) [8] => Array ([id] => 1 [name] => testname [sqft] => 2501 [address] => 123 Fake St [phone] => 555-5555 [galleryid] => 9 [virtualtourid] => 1 [feature] => All Oak Staircase with Open Risers [hour] => Sat-Sun 12pm-5pm) [9] => Array ([id] => 1 [name] => testname [sqft] => 2501 [address] => 123 Fake St [phone] => 555-5555 [galleryid] => 9 [virtualtourid] => 1 [feature] => Upgraded Hardwood Flooring & Berber Carpet [hour] => Mon-Thurs 1pm-6pm) [10] => Array ([id] => 1 [name] => testname [sqft] => 2501 [address] => 123 Fake St [phone] => 555-5555 [galleryid] => 9 [virtualtourid] => 1 [feature] => Upgraded Hardwood Flooring & Berber Carpet [hour] => Friday 12pm-5pm) [11] => Array ([id] => 1 [name] => testname [sqft] => 2501 [address] => 123 Fake St [phone] => 555-5555 [galleryid] => 9 [virtualtourid] => 1 [feature] => Upgraded Hardwood Flooring & Berber Carpet [hour] => Sat-Sun 12pm-5pm) [12] => Array ([id] => 1 [name] => testname [sqft] => 2501 [address] => 123 Fake St [phone] => 555-5555 [galleryid] => 9 [virtualtourid] => 1 [feature] => Upgraded Ceramic Backsplash [hour] => Mon-Thurs 1pm-6pm) [13] => Array ([id] => 1 [name] => testname [sqft] => 2501 [address] => 123 Fake St [phone] => 555-5555 [galleryid] => 9 [virtualtourid] => 1 [feature] => Upgraded Ceramic Backsplash [hour] => Friday 12pm-5pm) [14] => Array ([id] => 1 [name] => testname [sqft] => 2501 [address] => 123 Fake St [phone] => 555-5555 [galleryid] => 9 [virtualtourid] => 1 [feature] => Upgraded Ceramic Backsplash [hour] => Sat-Sun 12pm-5pm) [15] => Array ([id] => 1 [name] => testname [sqft] => 2501 [address] => 123 Fake St [phone] => 555-5555 [galleryid] => 9 [virtualtourid] => 1 [feature] => 9' Main Floor Ceilings [hour] => Mon-Thurs 1pm-6pm) [16] => Array ([id] => 1 [name] => testname [sqft] => 2501 [address] => 123 Fake St [phone] => 555-5555 [galleryid] => 9 [virtualtourid] => 1 [feature] => 9' Main Floor Ceilings [hour] => Friday 12pm-5pm) [17] => Array ([id] => 1 [name] => testname [sqft] => 2501 [address] => 123 Fake St [phone] => 555-5555 [galleryid] => 9 [virtualtourid] => 1 [feature] => 9' Main Floor Ceilings [hour] => Sat-Sun 12pm-5pm) [18] => Array ([id] => 1 [name] => testname [sqft] => 2501 [address] => 123 Fake St [phone] => 555-5555 [galleryid] => 9 [virtualtourid] => 1 [feature] => Fruit Cellar Under Porch [hour] => Mon-Thurs 1pm-6pm) [19] => Array ([id] => 1 [name] => testname [sqft] => 2501 [address] => 123 Fake St [phone] => 555-5555 [galleryid] => 9 [virtualtourid] => 1 [feature] => Fruit Cellar Under Porch [hour] => Friday 12pm-5pm) [20] => Array ([id] => 1 [name] => testname [sqft] => 2501 [address] => 123 Fake St [phone] => 555-5555 [galleryid] => 9 [virtualtourid] => 1 [feature] => Fruit Cellar Under Porch [hour] => Sat-Sun 12pm-5pm) [21] => Array ([id] => 1 [name] => testname [sqft] => 2501 [address] => 123 Fake St [phone] => 555-5555 [galleryid] => 9 [virtualtourid] => 1 [feature] => Upgraded Wrap Around Porch [hour] => Mon-Thurs 1pm-6pm) [22] => Array ([id] => 1 [name] => testname [sqft] => 2501 [address] => 123 Fake St [phone] => 555-5555 [galleryid] => 9 [virtualtourid] => 1 [feature] => Upgraded Wrap Around Porch [hour] => Friday 12pm-5pm) [23] => Array ([id] => 1 [name] => testname [sqft] => 2501 [address] => 123 Fake St [phone] => 555-5555 [galleryid] => 9 [virtualtourid] => 1 [feature] => Upgraded Wrap Around Porch [hour] => Sat-Sun 12pm-5pm))
Я понятия не имею, почему результаты не устают повторять. Я попытался настроить свой код следующим образом:
$results['hours'][] = $row['hour'];
$results['features'][] = $row['feature'];
$results['details'][] = $row;
, но мои результаты повторяются. Это результат, который я получаю:
Array ([hours] => Array ([0] => Mon-Thurs 1pm-6pm [1] => Friday 12pm-5pm [2] => Sat-Sun 12pm-5pm [3] => Mon-Thurs 1pm-6pm [4] => Friday 12pm-5pm [5] => Sat-Sun 12pm-5pm [6] => Mon-Thurs 1pm-6pm [7] => Friday 12pm-5pm [8] => Sat-Sun 12pm-5pm [9] => Mon-Thurs 1pm-6pm [10] => Friday 12pm-5pm [11] => Sat-Sun 12pm-5pm [12] => Mon-Thurs 1pm-6pm [13] => Friday 12pm-5pm [14] => Sat-Sun 12pm-5pm [15] => Mon-Thurs 1pm-6pm [16] => Friday 12pm-5pm [17] => Sat-Sun 12pm-5pm [18] => Mon-Thurs 1pm-6pm [19] => Friday 12pm-5pm [20] => Sat-Sun 12pm-5pm [21] => Mon-Thurs 1pm-6pm [22] => Friday 12pm-5pm [23] => Sat-Sun 12pm-5pm) [features] => Array ([0] => 4 Bedrooms [1] => 4 Bedrooms [2] => 4 Bedrooms [3] => 2 Sided Gas Fireplace [4] => 2 Sided Gas Fireplace [5] => 2 Sided Gas Fireplace [6] => All Oak Staircase with Open Risers [7] => All Oak Staircase with Open Risers [8] => All Oak Staircase with Open Risers [9] => Upgraded Hardwood Flooring & Berber Carpet [10] => Upgraded Hardwood Flooring & Berber Carpet [11] => Upgraded Hardwood Flooring & Berber Carpet [12] => Upgraded Ceramic Backsplash [13] => Upgraded Ceramic Backsplash [14] => Upgraded Ceramic Backsplash [15] => 9' Main Floor Ceilings [16] => 9' Main Floor Ceilings [17] => 9' Main Floor Ceilings [18] => Fruit Cellar Under Porch [19] => Fruit Cellar Under Porch [20] => Fruit Cellar Under Porch [21] => Upgraded Wrap Around Porch [22] => Upgraded Wrap Around Porch [23] => Upgraded Wrap Around Porch) [details] => Array ([0] => Array ([id] => 1 [name] => testname [sqft] => 2501 [address] => 123 Fake St [phone] => 555-5555 [galleryid] => 9 [virtualtourid] => 1 [feature] => 4 Bedrooms [hour] => Mon-Thurs 1pm-6pm) [1] => Array ([id] => 1 [name] => testname [sqft] => 2501 [address] => 123 Fake St [phone] => 555-5555 [galleryid] => 9 [virtualtourid] => 1 [feature] => 4 Bedrooms [hour] => Friday 12pm-5pm) [2] => Array ([id] => 1 [name] => testname [sqft] => 2501 [address] => 123 Fake St [phone] => 555-5555 [galleryid] => 9 [virtualtourid] => 1 [feature] => 4 Bedrooms [hour] => Sat-Sun 12pm-5pm) [3] => Array ([id] => 1 [name] => testname [sqft] => 2501 [address] => 123 Fake St [phone] => 555-5555 [galleryid] => 9 [virtualtourid] => 1 [feature] => 2 Sided Gas Fireplace [hour] => Mon-Thurs 1pm-6pm) [4] => Array ([id] => 1 [name] => testname [sqft] => 2501 [address] => 123 Fake St [phone] => 555-5555 [galleryid] => 9 [virtualtourid] => 1 [feature] => 2 Sided Gas Fireplace [hour] => Friday 12pm-5pm) [5] => Array ([id] => 1 [name] => testname [sqft] => 2501 [address] => 123 Fake St [phone] => 555-5555 [galleryid] => 9 [virtualtourid] => 1 [feature] => 2 Sided Gas Fireplace [hour] => Sat-Sun 12pm-5pm) [6] => Array ([id] => 1 [name] => testname [sqft] => 2501 [address] => 123 Fake St [phone] => 555-5555 [galleryid] => 9 [virtualtourid] => 1 [feature] => All Oak Staircase with Open Risers [hour] => Mon-Thurs 1pm-6pm) [7] => Array ([id] => 1 [name] => testname [sqft] => 2501 [address] => 123 Fake St [phone] => 555-5555 [galleryid] => 9 [virtualtourid] => 1 [feature] => All Oak Staircase with Open Risers [hour] => Friday 12pm-5pm) [8] => Array ([id] => 1 [name] => testname [sqft] => 2501 [address] => 123 Fake St [phone] => 555-5555 [galleryid] => 9 [virtualtourid] => 1 [feature] => All Oak Staircase with Open Risers [hour] => Sat-Sun 12pm-5pm) [9] => Array ([id] => 1 [name] => testname [sqft] => 2501 [address] => 123 Fake St [phone] => 555-5555 [galleryid] => 9 [virtualtourid] => 1 [feature] => Upgraded Hardwood Flooring & Berber Carpet [hour] => Mon-Thurs 1pm-6pm) [10] => Array ([id] => 1 [name] => testname [sqft] => 2501 [address] => 123 Fake St [phone] => 555-5555 [galleryid] => 9 [virtualtourid] => 1 [feature] => Upgraded Hardwood Flooring & Berber Carpet [hour] => Friday 12pm-5pm) [11] => Array ([id] => 1 [name] => testname [sqft] => 2501 [address] => 123 Fake St [phone] => 555-5555 [galleryid] => 9 [virtualtourid] => 1 [feature] => Upgraded Hardwood Flooring & Berber Carpet [hour] => Sat-Sun 12pm-5pm) [12] => Array ([id] => 1 [name] => testname [sqft] => 2501 [address] => 123 Fake St [phone] => 555-5555 [galleryid] => 9 [virtualtourid] => 1 [feature] => Upgraded Ceramic Backsplash [hour] => Mon-Thurs 1pm-6pm) [13] => Array ([id] => 1 [name] => testname [sqft] => 2501 [address] => 123 Fake St [phone] => 555-5555 [galleryid] => 9 [virtualtourid] => 1 [feature] => Upgraded Ceramic Backsplash [hour] => Friday 12pm-5pm) [14] => Array ([id] => 1 [name] => testname [sqft] => 2501 [address] => 123 Fake St [phone] => 555-5555 [galleryid] => 9 [virtualtourid] => 1 [feature] => Upgraded Ceramic Backsplash [hour] => Sat-Sun 12pm-5pm) [15] => Array ([id] => 1 [name] => testname [sqft] => 2501 [address] => 123 Fake St [phone] => 555-5555 [galleryid] => 9 [virtualtourid] => 1 [feature] => 9' Main Floor Ceilings [hour] => Mon-Thurs 1pm-6pm) [16] => Array ([id] => 1 [name] => testname [sqft] => 2501 [address] => 123 Fake St [phone] => 555-5555 [galleryid] => 9 [virtualtourid] => 1 [feature] => 9' Main Floor Ceilings [hour] => Friday 12pm-5pm) [17] => Array ([id] => 1 [name] => testname [sqft] => 2501 [address] => 123 Fake St [phone] => 555-5555 [galleryid] => 9 [virtualtourid] => 1 [feature] => 9' Main Floor Ceilings [hour] => Sat-Sun 12pm-5pm) [18] => Array ([id] => 1 [name] => testname [sqft] => 2501 [address] => 123 Fake St [phone] => 555-5555 [galleryid] => 9 [virtualtourid] => 1 [feature] => Fruit Cellar Under Porch [hour] => Mon-Thurs 1pm-6pm) [19] => Array ([id] => 1 [name] => testname [sqft] => 2501 [address] => 123 Fake St [phone] => 555-5555 [galleryid] => 9 [virtualtourid] => 1 [feature] => Fruit Cellar Under Porch [hour] => Friday 12pm-5pm) [20] => Array ([id] => 1 [name] => testname [sqft] => 2501 [address] => 123 Fake St [phone] => 555-5555 [galleryid] => 9 [virtualtourid] => 1 [feature] => Fruit Cellar Under Porch [hour] => Sat-Sun 12pm-5pm) [21] => Array ([id] => 1 [name] => testname [sqft] => 2501 [address] => 123 Fake St [phone] => 555-5555 [galleryid] => 9 [virtualtourid] => 1 [feature] => Upgraded Wrap Around Porch [hour] => Mon-Thurs 1pm-6pm) [22] => Array ([id] => 1 [name] => testname [sqft] => 2501 [address] => 123 Fake St [phone] => 555-5555 [galleryid] => 9 [virtualtourid] => 1 [feature] => Upgraded Wrap Around Porch [hour] => Friday 12pm-5pm) [23] => Array ([id] => 1 [name] => testname [sqft] => 2501 [address] => 123 Fake St [phone] => 555-5555 [galleryid] => 9 [virtualtourid] => 1 [feature] => Upgraded Wrap Around Porch [hour] => Sat-Sun 12pm-5pm)))
Как получить результаты в 3 массива внутри 1 массива без повторения данных?
Таковы результаты, которые я получаю, когда я ввожу запрос в PhpMyAdmin:
То, что я ищу, 1 массив с идентификатором, имя, футы, адрес, телефон, galleryid и virtualtourid, 1 с функциями (без повторов) и 1 массив с часами (без повторов).
результаты повторяющейся потому, что ваш запрос возвращает повторяющиеся результаты. Нет никакого способа, чтобы этот код вносил обманы в массив, если только у результатов не было обмана. Вы запустили этот запрос вручную и посмотрели, какие результаты? –
yes Я запустил этот запрос в phpmyadmin, и мои результаты в моем вопросе в виде изображения. – user3723240
Если вы правильно отформатировали дамп массива, вы увидите, что они ** НЕ ** повторяются.значения 'hour' меняются, точно так же, как и в вашем screencap. –