我遇到了MySQL查詢或我的邏輯問題。在某些字段中使用具有多個值的MySQL查詢創建表
我需要使用我的DATABASE中的值創建一個html表。但是在我的桌子的一些領域可以是一個多重價值。我應該如何製作我的桌子?我可以在一個查詢中完成它,還是應該在表完成後執行第二個查詢?
下面是表:
offers:
id | rid | name
------------------------------
1 | 1234 | mary
2 | 1235 | john
3 | 5342 | liam
geo_in_off:
offer_id | geo_id
------------------------------
1 | 1
1 | 2
3 | 3
有些優惠可以有2分地理的。所以我需要一個htm ltable應該是這樣的:
No | rid | name | geo
----------------------------------
1 | 1234 | mary | 1, 2
,但我得到與dublicates表看起來像:
No | rid | name | geo
----------------------------------
1 | 1234 | mary | 1
2 | 1234 | mary | 2
我怎樣才能解決這個問題?
這裏是我的代碼:
require('../config.php');
$sql ="SELECT * FROM `offers` LEFT JOIN `geo_in_off` ON `geo_in_off`.`offer_id` = `offers`.`id` ORDER BY `offers`.`rid`";
$result = mysql_query($sql) or die(mysql_error());
while ($row=mysql_fetch_assoc($result)) {
echo "<tr><td>" . $i . "</td><td class=\"editable\">" . $row['rid'] . "</td><td class=\"editable\">" . $row['name'] . "</td><td>" .$row['geo_id'] . "</td></tr>" ;
$i++;
}
這裏是config.php文件:
$db_name = "dbname";
$db_user = "user";
$db_pass = "pass";
$db_connect = mysql_connect('localhost', $db_user, $db_pass);
$selected = mysql_select_db($db_name, $db_connect);
@mysql_query('set character_set_results="utf8"');
@mysql_query('set collation_connection="utf8_general_ci"');
@mysql_query('set character_set_client="utf8"');
您需要實現什麼作爲一個_Control break_。基本上,您將當前記錄的相關字段與最後一個記錄的相關字段進行比較,並根據它們是否相同,決定做什麼。或者,您可以先將數據放入數組中,然後按照自己的喜好進行排列,使用rid作爲鍵,然後遍歷該數組以輸出所需的HTML表。 – CBroe