我有2个问题,但它们几乎相关。
第一个问题:
我有4个名为早餐,午餐,晚餐和其他的不同表格,但它们具有相同的列名,例如脂肪,卡路里和铁。
添加它们的最佳方式是什么,并在Textview上将它们显示为每个(脂肪,卡路里和铁)
例如
Total Fat is (111)
Total Calories is (222)
Total Iron is (333)
第二个问题
如果我想要显示不同表的列的所有数据,怎么样? 如何在sqlite中显示来自不同表的列fat的所有值?
例如,我在我的sqlite数据库
上有这个breakfast table lunch table dinner table others table
Fat column Fat column Fat column Fat column
1 3 6 9
2 4 7 10
3 5 8 11
我希望在textview上显示类似这样的内容
Fats
1
2
3
4
5
6
7
8
9
10
11
答案 0 :(得分:2)
我会创建一个表并添加一个名为timeOfDay
的列在数据库助手处理程序类
中ArrayList<Integer> fats = db.getFats(1);
int fatTotal = 0;
for(Integer fat : fats){
//output string for this particular fat reading
fatTotal += fat;
}
//output string of sum sort for totalFat
要在活动中显示信息
{{1}}
答案 1 :(得分:0)
我有4个不同的桌子,分别是早餐,午餐,晚餐等,但它们有相同的列名,如Fat,Calories和Iron
让不同的表具有相同的列应该是您的主要问题,而不是如何组合单独的表。 (因为JOIN
和跨表扫描很昂贵)
你应该这样做
CREATE TABLE IF NOT EXISTS meals (
_id PRIMARY KEY AUTOINCREMENT,
meal_time VARCHAR(20),
fat INTEGER,
calories INTEGER,
iron INTEGER,
time_eaten DEFAULT current_timestamp
)
参考默认值 - Can I create a datetime column with default value in sqlite3?
然后,您INSERT
meal_time = 'dinner'
的值为WHERE meal_time = 'dinner'
并选择SELECT fat from meals ORDER BY meal_time;
。
那时,你的第二个问题是微不足道的......
WHERE
如果您想要特定的晚餐,午餐,早餐选项,请添加function testconnection() {
global $dbhost, $dbuser, $dbpassword, $dbname;
error_reporting(E_ERROR);
$conn = mysqli_connect($dbhost, $dbuser, $dbpassword);
/* check connection */
if (mysqli_connect_errno()) {
return "connfailed " . mysqli_connect_error();
}
$dbconn = mysql_select_db($dbname);
if(!$dbcon) {
return "dbconnfailed " . mysqli_error($dbconn);
}
}
,如图所示。